[Users] LCR failure_route appending characters to invite
    Juha Heinanen 
    jh at tutpro.com
       
    Tue Apr 17 14:32:06 CEST 2007
    
    
  
Lyle Thaut writes:
 > I'm having problems when calling next_gw from a failure_route.  It 
 > appears that extra characters are getting appended after the 
 > transport=udp portion of the INVITE.
i found why next_gw() in failure route does not work in 1.2.  in version
1.1 action.c APPEND_BRANCH_T was implemented like this:
	case APPEND_BRANCH_T:
  292 			if ((a->p1_type!=STRING_ST)) {
  293 				LOG(L_CRIT, "BUG: do_action: bad append_branch_t %d\n",
  294 					a->p1_type );
  295 				ret=E_BUG;
  296 				break;
  297 			}
  298 			s.s = a->p1.string;
  299 			s.len = s.s?strlen(s.s):0;
  300 			ret = append_branch( msg, &s, &msg->dst_uri, 0, a->p2.number, 0,
  301 					msg->force_send_socket);
  302 			break;
whereas in 1.2 it has been changed to this:
		case APPEND_BRANCH_T:
  481 			/* WARNING: even if type is STRING_ST, it expects a str !!!*/
  482 			if ((a->elem[0].type!=STRING_ST)) {
  483 				LOG(L_CRIT, "BUG: do_action: bad append_branch_t %d\n",
  484 					a->elem[0].type );
  485 				ret=E_BUG;
  486 				break;
  487 			}
  488 			if (a->elem[0].u.s.s==NULL) {
  489 				ret = append_branch(msg, 0, &msg->dst_uri, 0,
  490 					a->elem[1].u.number, getb0flags(), msg->force_send_socket);
  491 				/* reset all branch info */
  492 				msg->force_send_socket = 0;
  493 				setb0flags(0);
  494 				if(msg->dst_uri.s!=0)
  495 					pkg_free(msg->dst_uri.s);
  496 				msg->dst_uri.s = 0;
  497 				msg->dst_uri.len = 0;
  498 			} else {
  499 				ret = append_branch(msg, &a->elem[0].u.s, &msg->dst_uri, 0,
  500 					a->elem[1].u.number, getb0flags(), msg->force_send_socket);
  501 			}
  502 			break;
i must have missed a warning about the change devel mailing list (if
there was one) and therefore didn't know to react.
i'll submit a patch to lcr module soon.
-- juha
    
    
More information about the Users
mailing list