[pjsip] Error in pjsip_tpmgr_receive_packet with SIP over TCPusing keep-alive

Benny Prijono bennylp at pjsip.org
Fri Feb 15 05:47:36 EST 2008


Hi Helmut,

ah I see. I recalled that the parser should be able to skip leading
newlines, and it does (see int_parse_msg()), but I forgot about
pjsip_find_msg(). Let me fix this and come back to you asap.

thanks,
 -benny

On 2/15/08, Helmut Wolf <HelmutWolf1 at gmx.de> wrote:
> Hi Benny,
>
>  That's no problem. I see how many support requests are sended to you...
>
>  The configuration is pjsip to pjsip so keep-alive packet contains CRLF. It seems the problem is in pjsip_find_msg(). At the
>  beginning (Line 772 in sip_parser.c):
>
>  /* Find the end of header area by finding an empty line. */
>  pos = pj_ansi_strstr(buf, "\n\r\n");
>
>  If one keep-alive exist there is no problem ("\n\r\n" is found at the end of SIP msg, not in keep-alive "\r\n"). But when more than
>  one keep-alive exist than the problem occurs ("\n\r\n" is found in keep-alive "\r\n\r\n..."). Herewith no SIP header can be found
>  and PJSIP_EMISSINGHDR is returned.
>
>  If I correct understand the buffer does always begin with keep-alive or a SIP msg. If the msg is incomplete the first positions of
>  the buffer does not change. On next incoming packet it will be attached. Isn't it a solution to remove CRLF if found at the first
>  position in the buffer?
>
>  Best regards,
>  Helmut




More information about the pjsip mailing list