rem: T = T_UNDEFINED; global_msg_id = p_msg->id;
add: LOG(L_ERR, "ERROR: add_transaction: ACK can't be used to add transaction\n"); return -1;
context: int t_add_transaction( struct sip_msg* p_msg, char* foo, char* bar ){   struct cell*    new_cell;   DBG("DEBUG: t_add_transaction: adding......\n");   /* it's about the same transaction or not?*/   if ( global_msg_id != p_msg->id )   {      T = T_UNDEFINED;      global_msg_id = p_msg->id;   }    /* if the transaction is not found yet we are tring to look for it*/   if ( T==T_UNDEFINED )      /* if the lookup's result is not 0 means that it's a retransmission */      if ( t_lookup_request( p_msg, foo, bar ) )      {         LOG(L_ERR,"ERROR: t_add_transaction: won't add a retransmission\n");         return -1;      }   /* sanity check: ACKs can never establish a transaction */   if ( p_msg->first_line.u.request.method_value==METHOD_ACK ) {	LOG(L_ERR, "ERROR: add_transaction: ACK can't be used to add transaction\n");	return -1;   }   /* creates a new transaction */   new_cell = build_cell( p_msg ) ;   if  ( !new_cell ){	   LOG(L_ERR, "ERROR: add_transaction: out of mem:\n");	   sh_status();      return -1;	}   /*insert the transaction into hash table*/   insert_into_hash_table( hash_table , new_cell );   DBG("DEBUG: t_add_transaction: new transaction inserted, hash: %d\n", new_cell->hash_index );   T = new_cell;   return 1;}