Hi Pekka,

Just noticed this in our testing group. Pretty much tells me no one is 
using TCP as a transport.

Back between 1.12.5 and 1.12.6, you removed the

    if (su_setblocking(socket, 0) < 0)
       return *return_reason = "su_setblocking", -1;

 From tport_type_tcp.c and tport_type_sctp.c in the 
tport_tcp_init_secondary() functions.
This causes the TCP sockets to be blocking and the connect() to hang 
until a connection is established or it times out.

For us, running single threaded, causes the stack to hang for 180 
seconds if the registrar is configured improperly, then the retry and 
hang again. Basically causing our application to be unresponsive. Worse 
than a crash for since at least with a crash, we can restart.

I tracked down the patch that did this. Not much help, but here it is:

Changes to libsofia-sip-ua/tport/tport_type_tcp.c:

Thu Feb 22 12:33:47 PST 2007  Pekka Pessi <pekka.pe...@nokia.com>
  * su_addrinfo.c: fixed Solaris addrinfo() which returns 0 in ai_protocol
 
  This caused an assertion failure in tport.c on Solaris.


Any chance you remember why this change to the blocking mode of the TCP 
sockets was made ?

Thanks,

Colin..


------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Sofia-sip-devel mailing list
Sofia-sip-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sofia-sip-devel

Reply via email to