|
@@ -96,21 +96,28 @@ char* parse_first_line(char* buffer, unsigned int len, struct msg_start* fl)
|
|
|
fl->flags|=FLINE_FLAG_PROTO_SIP;
|
|
|
fl->u.reply.version.len=SIP_VERSION_LEN;
|
|
|
tmp=buffer+SIP_VERSION_LEN;
|
|
|
- } else if (http_reply_parse != 0 &&
|
|
|
- (*tmp=='H' || *tmp=='h') &&
|
|
|
+ } else if (http_reply_parse != 0 && (*tmp=='H' || *tmp=='h')) {
|
|
|
/* 'HTTP/1.' */
|
|
|
- strncasecmp( tmp+1, HTTP_VERSION+1, HTTP_VERSION_LEN-1)==0 &&
|
|
|
- /* [0|1] */
|
|
|
- ((*(tmp+HTTP_VERSION_LEN)=='0') || (*(tmp+HTTP_VERSION_LEN)=='1')) &&
|
|
|
- (*(tmp+HTTP_VERSION_LEN+1)==' ') ){
|
|
|
- /* ugly hack to be able to route http replies
|
|
|
- * Note: - the http reply must have a via
|
|
|
- * - the message is marked as SIP_REPLY (ugly)
|
|
|
- */
|
|
|
- fl->type=SIP_REPLY;
|
|
|
- fl->flags|=FLINE_FLAG_PROTO_HTTP;
|
|
|
- fl->u.reply.version.len=HTTP_VERSION_LEN+1 /*include last digit*/;
|
|
|
- tmp=buffer+HTTP_VERSION_LEN+1 /* last digit */;
|
|
|
+ if (strncasecmp( tmp+1, HTTP_VERSION+1, HTTP_VERSION_LEN-1)==0 &&
|
|
|
+ /* [0|1] */
|
|
|
+ ((*(tmp+HTTP_VERSION_LEN)=='0') || (*(tmp+HTTP_VERSION_LEN)=='1')) &&
|
|
|
+ (*(tmp+HTTP_VERSION_LEN+1)==' ') ){
|
|
|
+ /* ugly hack to be able to route http replies
|
|
|
+ * Note: - the http reply must have a via
|
|
|
+ * - the message is marked as SIP_REPLY (ugly)
|
|
|
+ */
|
|
|
+ fl->type=SIP_REPLY;
|
|
|
+ fl->flags|=FLINE_FLAG_PROTO_HTTP;
|
|
|
+ fl->u.reply.version.len=HTTP_VERSION_LEN+1 /*include last digit*/;
|
|
|
+ tmp=buffer+HTTP_VERSION_LEN+1 /* last digit */;
|
|
|
+ /* 'HTTP/2' */
|
|
|
+ } else if (strncasecmp( tmp+1, HTTP2_VERSION+1, HTTP2_VERSION_LEN-1)==0 &&
|
|
|
+ (*(tmp+HTTP2_VERSION_LEN)==' ')) {
|
|
|
+ fl->type=SIP_REPLY;
|
|
|
+ fl->flags|=FLINE_FLAG_PROTO_HTTP;
|
|
|
+ fl->u.reply.version.len=HTTP2_VERSION_LEN;
|
|
|
+ tmp=buffer+HTTP2_VERSION_LEN;
|
|
|
+ }
|
|
|
} else IFISMETHOD( INVITE, 'I' )
|
|
|
else IFISMETHOD( CANCEL, 'C')
|
|
|
else IFISMETHOD( ACK, 'A' )
|