|
@@ -934,14 +934,16 @@ int tcp_read_headers(struct tcp_connection *c, int* read_flags)
|
|
if(r->pos - r->start < 10) {
|
|
if(r->pos - r->start < 10) {
|
|
LM_ERR("weird situation when reading MSRP frame"
|
|
LM_ERR("weird situation when reading MSRP frame"
|
|
" - continue reading\n");
|
|
" - continue reading\n");
|
|
|
|
+ /* *p=='\n' */
|
|
|
|
+ r->state=H_MSRP_BODY_LF;
|
|
p++;
|
|
p++;
|
|
- r->state=H_MSRP_BODY;
|
|
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
if(*(p-1)!='\r') {
|
|
if(*(p-1)!='\r') {
|
|
/* not ending in '\r\n' - not end-line */
|
|
/* not ending in '\r\n' - not end-line */
|
|
|
|
+ /* *p=='\n' */
|
|
|
|
+ r->state=H_MSRP_BODY_LF;
|
|
p++;
|
|
p++;
|
|
- r->state=H_MSRP_BODY;
|
|
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
/* locate transaction id in first line
|
|
/* locate transaction id in first line
|
|
@@ -956,16 +958,18 @@ int tcp_read_headers(struct tcp_connection *c, int* read_flags)
|
|
p - 1 /*\r*/ - 1 /* '+'|'#'|'$' */ - mtransid.len,
|
|
p - 1 /*\r*/ - 1 /* '+'|'#'|'$' */ - mtransid.len,
|
|
mtransid.len)!=0) {
|
|
mtransid.len)!=0) {
|
|
/* no match on session id - not end-line */
|
|
/* no match on session id - not end-line */
|
|
|
|
+ /* *p=='\n' */
|
|
|
|
+ r->state=H_MSRP_BODY_LF;
|
|
p++;
|
|
p++;
|
|
- r->state=H_MSRP_BODY;
|
|
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
if(memcmp(p - 1 /*\r*/ - 1 /* '+'|'#'|'$' */ - mtransid.len
|
|
if(memcmp(p - 1 /*\r*/ - 1 /* '+'|'#'|'$' */ - mtransid.len
|
|
- 7 /* 7 x '-' */ - 1 /* '\n' */, "\n-------",
|
|
- 7 /* 7 x '-' */ - 1 /* '\n' */, "\n-------",
|
|
8)!=0) {
|
|
8)!=0) {
|
|
/* no match on "\n-------" - not end-line */
|
|
/* no match on "\n-------" - not end-line */
|
|
|
|
+ /* *p=='\n' */
|
|
|
|
+ r->state=H_MSRP_BODY_LF;
|
|
p++;
|
|
p++;
|
|
- r->state=H_MSRP_BODY;
|
|
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
r->state=H_MSRP_FINISH;
|
|
r->state=H_MSRP_FINISH;
|