|
@@ -263,6 +263,9 @@ __inline char* parse_via_param( char* p, char* end, int* pstate,
|
|
state=HIDDEN1;
|
|
state=HIDDEN1;
|
|
param->name.s=tmp;
|
|
param->name.s=tmp;
|
|
break;
|
|
break;
|
|
|
|
+ case BRANCH5:
|
|
|
|
+ state=FIN_BRANCH;
|
|
|
|
+ break;
|
|
case GEN_PARAM:
|
|
case GEN_PARAM:
|
|
break;
|
|
break;
|
|
case F_CR:
|
|
case F_CR:
|
|
@@ -809,7 +812,6 @@ char* parse_via(char* buffer, char* end, struct via_body *vb)
|
|
char* tmp_param;
|
|
char* tmp_param;
|
|
struct via_param* param;
|
|
struct via_param* param;
|
|
|
|
|
|
-
|
|
|
|
parse_again:
|
|
parse_again:
|
|
vb->error=VIA_PARSE_ERROR;
|
|
vb->error=VIA_PARSE_ERROR;
|
|
/* parse start of via ( SIP/2.0/UDP )*/
|
|
/* parse start of via ( SIP/2.0/UDP )*/
|
|
@@ -1586,12 +1588,6 @@ main_via:
|
|
memset(param,0, sizeof(struct via_param));
|
|
memset(param,0, sizeof(struct via_param));
|
|
tmp=parse_via_param(tmp, end, &state, &saved_state,
|
|
tmp=parse_via_param(tmp, end, &state, &saved_state,
|
|
param);
|
|
param);
|
|
- /*add param to the list*/
|
|
|
|
- if (vb->last_param) vb->last_param->next=param;
|
|
|
|
- else vb->param_lst=param;
|
|
|
|
- vb->last_param=param;
|
|
|
|
- if (param->type==PARAM_BRANCH)
|
|
|
|
- vb->branch=param;
|
|
|
|
|
|
|
|
switch(state){
|
|
switch(state){
|
|
case L_PARAM:
|
|
case L_PARAM:
|
|
@@ -1616,6 +1612,12 @@ main_via:
|
|
*tmp, state);
|
|
*tmp, state);
|
|
goto error;
|
|
goto error;
|
|
}
|
|
}
|
|
|
|
+ /*add param to the list*/
|
|
|
|
+ if (vb->last_param) vb->last_param->next=param;
|
|
|
|
+ else vb->param_lst=param;
|
|
|
|
+ vb->last_param=param;
|
|
|
|
+ if (param->type==PARAM_BRANCH)
|
|
|
|
+ vb->branch=param;
|
|
break;
|
|
break;
|
|
case P_PARAM:
|
|
case P_PARAM:
|
|
break;
|
|
break;
|
|
@@ -1706,6 +1708,7 @@ endofpacket:
|
|
}
|
|
}
|
|
return tmp;
|
|
return tmp;
|
|
nextvia:
|
|
nextvia:
|
|
|
|
+ DBG("parse_via: next_via\n");
|
|
vb->error=VIA_PARSE_OK;
|
|
vb->error=VIA_PARSE_OK;
|
|
vb->bsize=tmp-buffer;
|
|
vb->bsize=tmp-buffer;
|
|
if (vb->port_str.s){
|
|
if (vb->port_str.s){
|