rem: if ( !t_should_relay_response( T , p_msg->first_line.u.reply.statuscode ) ) return 0;
add: if (!relay) return 0;
context: int t_on_reply_received( struct sip_msg  *p_msg ){   unsigned int  branch,len;   global_msg_id = p_msg->id;   parse_headers( p_msg , HDR_EOH ); /*????*/   /* 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;   DBG("DEBUG: t_on_reply_received: Original status =%d\n",T->status);   /* stop retransmission */   remove_from_timer( hash_table , (&(T->outbound_request[branch]->tl[RETRASMISSIONS_LIST])) , RETRASMISSIONS_LIST );   /* stop final response timer only if I got a final response */   if ( p_msg->first_line.u.reply.statusclass>1 )      remove_from_timer( hash_table , (&(T->outbound_request[branch]->tl[FR_TIMER_LIST])) , FR_TIMER_LIST );   /* if a got the first prov. response for an INVITE -> change FR_TIME_OUT to INV_FR_TIME_UT */   if ( !T->inbound_response[branch] && p_msg->first_line.u.reply.statusclass==1 && T->inbound_request->first_line.u.request.method_value==METHOD_INVITE )      insert_into_timer( hash_table , (&(T->outbound_request[branch]->tl[FR_TIMER_LIST])) , FR_TIMER_LIST , INV_FR_TIME_OUT);   /* 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 , p_msg );   }   #ifdef FORKING   /* skipped for the moment*/   #endif   /* if the incoming response code is not reliable->drop it*/   if ( !t_should_relay_response( T , p_msg->first_line.u.reply.statuscode ) )      return 0;   /* 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( hash_table , (&(T->outbound_request[branch]->tl[RETRASMISSIONS_LIST])) , RETRASMISSIONS_LIST , RETR_T2 );   }   /*store the inbound reply*/   t_store_incoming_reply( T , branch , p_msg );   if ( p_msg->first_line.u.reply.statusclass>=3 && p_msg->first_line.u.reply.statusclass<=5 )   {      if ( t_all_final(T) )           relay_lowest_reply_upstream( T , p_msg );   }   else   {      push_reply_from_uac_to_uas( T , branch );   }   /* nothing to do for the ser core */    return 0;}