On Wed, Dec 17, 2008 at 12:10:18PM -0500, Michael Jerris wrote:
On Dec 17, 2008, at 2:40 AM, Jason White wrote:
The code in bind6only_check in libs/sofia-sip/libsofia-sip-ua/tport/ tport.c looks correct to me, but I can't find where the result is tested (it's in mr_bindv6only). When bind6only_check() is called in tport_bind_server(), the return value isn't tested, and I'm having difficulty finding where it is used
I realized after posting that if the IPv4 port is bound by another process, then the attempt to bind to the IPv4 port in bind6only_check() should return -1, and hence the result of bind6only_check() will be 0, even if the os allows the IPv6 and IPv4 ports to be bound independently of each other. This looks like a potential bug, but I haven't investigated properly to be sure, and I'm extremely busy just now (as well as not being very experienced at this).
If this is in fact a bug, could you please report it to the sofia-sip bugtracker. Patches are very helpful there.
If anyone else has a chance to look at it before I do, please let me know. Otherwise, I'll check it out when I have time to build a version of FreeSWITCH with debug symbols and run it under gdb.