Opened 15 years ago

Closed 15 years ago

Last modified 15 years ago

#1010 closed defect (fixed)

SIP TCP transport client not being reused on MacOS platforms (thanks Emil Sturniolo for the report)

Reported by: nanang Owned by: nanang
Priority: normal Milestone: release-1.5.5
Component: pjlib Version: trunk
Keywords: Cc:
Backport to 1.x milestone: Backported:


Seems that this is caused by transport manager failure in looking up existing transport in transport hash table. As the the sockaddr (address of remote target) is used as the key in transport hash table, any inconsistencies in sockaddr structure may cause PJSIP to fail to find matching transport.

Found that some new APIs don't set sin_len member of sockaddr to zero. By convention, this sin_len member must be set to zero by PJLIB.

This symptom may also occur on any platforms that has sin_len member in sockaddr, e.g: BSD family.

Change History (3)

comment:1 Changed 15 years ago by nanang

In r3044:

  • Fixed bug in some APIs of address resolver and IP helper to reset sin_len member of sockaddr.
  • Added purity test of sin_len member checking in PJLIB unit test (pjlib_test).
  • Fixed bug in pj_getaddrinfo() when address family param set to PJ_AF_UNSPEC (assertion raised as it called pj_sockaddr_get_addr() with PJ_AF_UNSPEC too).

comment:2 Changed 15 years ago by nanang

  • Resolution set to fixed
  • Status changed from new to closed

comment:3 Changed 15 years ago by ismangil

  • Milestone changed from release-1.6 to release-1.5.5
Note: See TracTickets for help on using tickets.