Dear Sirs,
I have found a stable Access violation while H.323 have heavy load
(about 20 short calls per second).
I have analized the code in debugger, and there is the result:
Sometimes the function OpalMediaFormat::FindOption returns
value which is not corresponding to the passed "name" parameter.
For example, name="Needs Jitter" (bool), and the result is
"Clock Rate" (int). Then Access violation occurs.
I have found the simple solution, it isn't very correct,
but it works:
OpalMediaOption * OpalMediaFormat::FindOption(const PString & name) const
{
PWaitAndSignal m(media_format_mutex);
OpalMediaOptionString search(name, false);
PINDEX index = options.GetValuesIndex(search);
if (index == P_MAX_INDEX)
return NULL;
// begin of Ilya fix
OpalMediaOption * op = &options[index];
int i = 0;
while ((op->GetName() != name) && (i < 50))
{
OpalMediaOptionString search(name, false);
PINDEX index = options.GetValuesIndex(search);
if (index == P_MAX_INDEX)
return NULL;
op = &options[index];
i++;
}
if (op->GetName() != name)
return NULL;
return op;
// end of Ilya fix
}
--
Ilya Pleshchinskii,
Moscow,
Russia
ilya@xxxxxxxxxxxxxxx
------------------------------------------------------------------------
Check the FAQ before asking! - http://www.openh323.org/~openh323/fom.cgi
The OpenH323 Project mailing list, using Mailman. To unsubscribe or
change your subscription options, goto
http://www.openh323.org/mailman/listinfo/openh323
Maintained by Quicknet Technologies, Inc - http://www.quicknet.net
------------------------------------------------------------------------
[Open H.323]
[IETF SIP]
[Gnu Gatekeeper]
[Asterisk PBX]
[Fedora Linux]
[Gimp]
[Yosemite News]
[Yosemite Photos]
[Yosemite Campsites]
[ISDN Cause Codes]