[reSIProcate] Socket creation callback from ares_process.c
Paul Kurmas
pkurmas at mutualink.net
Thu Nov 5 13:44:24 CST 2009
>From ares_process.c function open_udp_socket, there's a call made to the
socket creation callback function registered with the SipStack object.
This code reads:
if(channel->socket_function)
{
channel->socket_function(s, 1, __FILE__, __LINE__);
}
The second argument is supposed to be the transport type... but "1" is
NOT the transport type for UDP. Per ...\rutil\TransportType.hxx, UDP is
TransportType enumeration value 3. Can anyone speak to the history of
this code & whether there's a reason it's not using the proper
enumeration definition?
A secondary question - short of looking at the file/line to figure the
caller there is no way to identify the usage of the socket. We can't
count on the socket being bind()ed to a specific local port. We're
using the callback to apply a TOS setting appropriate for SIP traffic,
but that value just isn't appropriate for a DNS lookup. Perhaps the
callbacks from the DNS code should use either (a) a different callback
function, (b) a different argument for the transport type, or (c)
another argument entirely for a usage (e.g. SIP, DNS, whatever).
Any thoughts?
PK
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.resiprocate.org/pipermail/resiprocate-devel/attachments/20091105/8f303e12/attachment.htm>
More information about the resiprocate-devel
mailing list