[SR-Users] bflag mystery

Juha Heinanen jh at tutpro.com
Wed Apr 10 20:43:47 CEST 2013


Juha Heinanen writes:

> however, when i look what gets stores in location table, cflags column
> of the contact has value 384.  it is also shown by ul_dump:
> 
> Cflag:: 384
> 
> 384 = 256 + 128.  i must be missing something trivial. how is it
> possible that also flag 7 (which is my nat_bflag) gets set in usrloc?

i think i found the answer. in save.c:

		/* get received */
		if (path_received.len && path_received.s) {
			ci.cflags |= ul.nat_flag;
			ci.received = path_received;
		}

if i understood the above correctly, existence of received param in path
header of register request, automatically sets nat bflag that (in my
case 7). where is that documented?

anyway, it makes no sense at all to me.  if p2 gets register request
from another proxy p1, which received it from ua and included the path
header, it is responsibility of p1 to handle possible nat pinging.  p2
should not have anything to do with it.

can i fix this bug, i.e., remove line

ci.cflags |= ul.nat_flag;

from the above?

-- juha



More information about the sr-users mailing list