add: */
context: int push_reply_from_uac_to_uas( struct cell* trans , unsigned int branch ){   char *buf;   unsigned int len;   /* if there is a reply, release the buffer (everything else stays same) */   if ( trans->outbound_response )   {      sh_free( trans->outbound_response->retr_buffer );      remove_from_timer_list( hash_table , &(trans->outbound_response->tl[RETRASMISSIONS_LIST]) , RETRASMISSIONS_LIST );   }   else   {      struct hostent  *nhost;     char foo;      trans->outbound_response = (struct retrans_buff*)sh_malloc( sizeof(struct retrans_buff) );      if (!trans->outbound_response) {	LOG(L_ERR, "ERROR: push_reply_from_uac_to_uas: no more shmem\n");	trans->outbound_response = NULL;	return -1;      }      memset( trans->outbound_response , 0 , sizeof (struct retrans_buff) );      trans->outbound_response->tl[RETRASMISSIONS_LIST].payload = trans->outbound_response;      if (update_sock_struct_from_via(  &(trans->outbound_response->to),  trans->inbound_response[branch]->via2 )==-1) {	LOG(L_ERR, "ERROR: push_reply_from_uac_to_uas: cannot lookup reply dst: %s\n",		trans->inbound_response[branch]->via2->host.s );	sh_free(  T->outbound_response );	T->outbound_response = NULL;	return -1;      }   }   /*  */   buf = build_res_buf_from_sip_res ( trans->inbound_response[branch], &len);   if (!buf) {	LOG(L_ERR, "ERROR: push_reply_from_uac_to_uas: no shmem for outbound reply buffer\n");        return -1;   }   trans->outbound_response->bufflen = len ;   trans->outbound_response->retr_buffer   = (char*)sh_malloc( len );   memcpy( trans->outbound_response->retr_buffer , buf , len );   free( buf ) ;   /* make sure that if we send something final upstream, everything else will be cancelled */   if (trans->inbound_response[branch]->first_line.u.reply.statusclass>=2 )      t_put_on_wait( trans->inbound_request );   /* if the code is 3,4,5,6 class for an INVITE-> starts retrans timer*/   if ( trans->inbound_request->first_line.u.request.method_value==METHOD_INVITE &&         trans->inbound_response[branch]->first_line.u.reply.statusclass>=300)         {            remove_from_timer_list( hash_table , &(trans->outbound_response->tl[RETRASMISSIONS_LIST]) , RETRASMISSIONS_LIST );            remove_from_timer_list( hash_table , &(trans->outbound_response->tl[FR_TIMER_LIST]) , FR_TIMER_LIST );            insert_into_timer_list( hash_table , &(trans->outbound_response->tl[RETRASMISSIONS_LIST]) , RETRASMISSIONS_LIST , RETR_T1 );            insert_into_timer_list( hash_table , &(trans->outbound_response->tl[FR_TIMER_LIST]) , FR_TIMER_LIST , FR_TIME_OUT );         }   t_retransmit_reply( trans->inbound_request, 0 , 0 );}