Browse code

*** empty log message ***

Bogdan-Andrei Iancu authored on 06/03/2002 18:39:46
Showing 2 changed files
... ...
@@ -104,12 +104,11 @@ int t_lookup_request( struct sip_msg* p_msg , int leave_new_locked )
104 104
 	lock(&(hash_table->entrys[p_msg->hash_index].mutex));
105 105
 
106 106
 	/* all the transactions from the entry are compared */
107
-	p_cell     = hash_table->entrys[p_msg->hash_index].first_cell;
107
+	p_cell   = hash_table->entrys[p_msg->hash_index].first_cell;
108 108
 	tmp_cell = 0;
109 109
 	while( p_cell )
110 110
 	{
111 111
 		t_msg = p_cell->inbound_request;
112
-
113 112
 		/* is it the wanted transaction ? */
114 113
 		if ( !isACK )
115 114
 		{ /* is not an ACK request */
... ...
@@ -357,6 +356,7 @@ int t_reply_matching( struct sip_msg *p_msg , int *p_branch ,
357 356
 	} /* while p_cell */
358 357
 
359 358
 	/* nothing found */
359
+	unlock(&(hash_table->entrys[hash_index].mutex));
360 360
 	DBG("DEBUG: t_reply_matching: no matching transaction exists\n");
361 361
 
362 362
 nomatch2:
... ...
@@ -221,9 +221,7 @@ int t_on_reply( struct sip_msg  *p_msg )
221 221
 	DBG("DEBUG: t_on_reply: Original status=%d (%d,%d)\n",
222 222
 		T->status,branch,local_cancel);
223 223
 
224
-	/* special cases (local cancel reply and another 100 reply!)*/
225
-	if (p_msg->REPLY_STATUS==100 && T->status==100)
226
-		goto error;
224
+	/* special cases (local cancel reply)*/
227 225
 	if (local_cancel==1)
228 226
 	{
229 227
 		reset_timer( hash_table, &(T->outbound_cancel[branch]->retr_timer));
... ...
@@ -281,7 +279,6 @@ int t_on_reply( struct sip_msg  *p_msg )
281 279
 
282 280
 	/* *** store and relay message as needed *** */
283 281
 	relay = t_should_relay_response( T , msg_status, branch, &save_clone );
284
-
285 282
 	if (relay >= 0 ) {
286 283
 		orp_rb= & T->outbound_response;
287 284
 		/* if there is no reply yet, initialize the structure */