rem: unsigned int  branch;
add: unsigned int  branch,len;
context: int t_on_reply_received( struct sip_msg  *p_msg ){   unsigned int  branch;   global_msg_id = p_msg->id;   /* we use label-matching to lookup for T */   t_reply_matching( hash_table , p_msg , &T , &branch  );   /* if no T found ->tell the core router to forward statelessly */   if ( T<=0 )      return 1;   /* stop retransmission */   remove_from_timer_list( hash_table , &(T->outbound_request[branch]->tl[RETRASMISSIONS_LIST]) , RETRASMISSIONS_LIST );   /* on a non-200 reply to INVITE, generate local ACK */   if ( T->inbound_request->first_line.u.request.method_value==METHOD_INVITE && p_msg->first_line.u.reply.statusclass>2 )   {      DBG("DEBUG: t_on_reply_received: >=3xx reply to INVITE: send ACK\n");      t_build_and_send_ACK( T , branch );      t_store_incoming_reply( T , branch , p_msg );   }   #ifdef FORKING   /* skipped for the moment*/   #endif   /*let's check the current inbound response status (is final or not) */   if ( T->inbound_response && (T->status/100)>1 )   {  /*a final reply was already sent upstream */      /* alway relay 2xx immediately ; drop anything else */      DBG("DEBUG: t_on_reply_received: something final had been relayed\n");      if ( p_msg->first_line.u.reply.statusclass==2 )          t_relay_reply( T , branch , p_msg );      /* nothing to do for the ser core */      return 0;   }   else   {  /* no reply sent yet or sent but not final*/      DBG("DEBUG: t_on_reply_received: no reply sent yet or sent but not final\n");      /* restart retransmission if provisional response came for a non_INVITE -> retrasmit at RT_T2*/      if ( p_msg->first_line.u.reply.statusclass==1 && T->inbound_request->first_line.u.request.method_value!=METHOD_INVITE )      {         T->outbound_request[branch]->timeout_value = RETR_T2;         insert_into_timer_list( hash_table , &(T->outbound_request[branch]->tl[RETRASMISSIONS_LIST]) , RETRASMISSIONS_LIST , RETR_T2 );      }      /* relay ringing and OK immediately */      if ( p_msg->first_line.u.reply.statusclass ==1 || p_msg->first_line.u.reply.statusclass ==2  )      {	   DBG("DEBUG: t_on_reply_received:  relay ringing and OK immediately \n");           if ( p_msg->first_line.u.reply.statuscode > T->status )              t_relay_reply( T , branch , p_msg );         return 0;      }      /* error final responses are only stored */      if ( p_msg->first_line.u.reply.statusclass>=3 && p_msg->first_line.u.reply.statusclass<=5 )      {	   DBG("DEBUG: t_on_reply_received:  error final responses are only stored  \n");         t_store_incoming_reply( T , branch , p_msg );         if ( t_all_final(T) )              relay_lowest_reply_upstream( T , p_msg );         /* nothing to do for the ser core */         return 0;      }      /* global failure responses relay immediately */     if ( p_msg->first_line.u.reply.statusclass==6 )      {	DBG("DEBUG: t_on_reply_received: global failure responses relay immediately (not 100 per cent compliant)\n");         t_relay_reply( T , branch , p_msg );         /* nothing to do for the ser core */         return 0;      }   }}