[Kamailio-Devel] bogus commit to t_lookup.c in openser 1.3?

Juha Heinanen jh at tutpro.com
Mon Dec 29 09:31:07 CET 2008


i started to read the debug log more carefully and noticed that the
patch cannot be the reason why ack matching fails.  the part of t_lookup
code, which is affected by the patch (found => e2e_ack) is not executed
when ack matching fails.

so the bug must be somewhere else and may be timing dependent, because i
don't see it every time.

for some reason, the ack that twinkle sends, is found to be an e2e ack
already in case 2 here:

	branch=p_msg->via1->branch;
  424 	if (branch && branch->value.s && branch->value.len>MCOOKIE_LEN
  425 			&& memcmp(branch->value.s,MCOOKIE,MCOOKIE_LEN)==0) {
  426 		/* huhuhu! the cookie is there -- let's proceed fast */
  427 		LOCK_HASH(p_msg->hash_index);
  428 		match_status=matching_3261(p_msg,&p_cell,
  429 				/* skip transactions with different method; otherwise CANCEL
  430 				 * would match the previous INVITE trans.  */
  431 				isACK ? ~METHOD_INVITE: ~p_msg->REQ_METHOD);
  432 		switch(match_status) {
  433 				case 0:	goto notfound;	/* no match */
  434 				case 1:	goto found; 	/* match */
  435 				case 2:	goto e2e_ack;	/* e2e proxy ACK */
  436 		}
  437 	}

i.e., matching_3261 function things that it is an e2eproxy ack, whatever
that is.

-- juha



More information about the Devel mailing list