瀏覽代碼

*** empty log message ***

Bogdan-Andrei Iancu 23 年之前
父節點
當前提交
438d1aae78
共有 2 個文件被更改,包括 3 次插入6 次删除
  1. 2 2
      modules/tm/t_lookup.c
  2. 1 4
      modules/tm/t_reply.c

+ 2 - 2
modules/tm/t_lookup.c

@@ -104,12 +104,11 @@ int t_lookup_request( struct sip_msg* p_msg , int leave_new_locked )
 	lock(&(hash_table->entrys[p_msg->hash_index].mutex));
 
 	/* all the transactions from the entry are compared */
-	p_cell     = hash_table->entrys[p_msg->hash_index].first_cell;
+	p_cell   = hash_table->entrys[p_msg->hash_index].first_cell;
 	tmp_cell = 0;
 	while( p_cell )
 	{
 		t_msg = p_cell->inbound_request;
-
 		/* is it the wanted transaction ? */
 		if ( !isACK )
 		{ /* is not an ACK request */
@@ -357,6 +356,7 @@ int t_reply_matching( struct sip_msg *p_msg , int *p_branch ,
 	} /* while p_cell */
 
 	/* nothing found */
+	unlock(&(hash_table->entrys[hash_index].mutex));
 	DBG("DEBUG: t_reply_matching: no matching transaction exists\n");
 
 nomatch2:

+ 1 - 4
modules/tm/t_reply.c

@@ -221,9 +221,7 @@ int t_on_reply( struct sip_msg  *p_msg )
 	DBG("DEBUG: t_on_reply: Original status=%d (%d,%d)\n",
 		T->status,branch,local_cancel);
 
-	/* special cases (local cancel reply and another 100 reply!)*/
-	if (p_msg->REPLY_STATUS==100 && T->status==100)
-		goto error;
+	/* special cases (local cancel reply)*/
 	if (local_cancel==1)
 	{
 		reset_timer( hash_table, &(T->outbound_cancel[branch]->retr_timer));
@@ -281,7 +279,6 @@ int t_on_reply( struct sip_msg  *p_msg )
 
 	/* *** store and relay message as needed *** */
 	relay = t_should_relay_response( T , msg_status, branch, &save_clone );
-
 	if (relay >= 0 ) {
 		orp_rb= & T->outbound_response;
 		/* if there is no reply yet, initialize the structure */