[pjsip] Error in pjsip_tpmgr_receive_packet with SIP over TCPusing keep-alive
bennylp at pjsip.org
Fri Feb 15 05:47:36 EST 2008
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.
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,
More information about the pjsip