[Users] branchroute problem

Klaus Darilion klaus.mailinglists at pernau.at
Tue Aug 30 22:37:16 CEST 2005


does not compile anymore:

gcc  -Wl,-O2 -Wl,-E   action.o crc.o daemonize.o data_lump.o 
data_lump_rpl.o dprint.o dset.o error.o fifo_server.o flags.o forward.o 
hash_func.o ip_addr.o items.o main.o md5.o md5utils.o modparam.o 
msg_translator.o pass_fd.o proxy.o qvalue.o re.o receive.o resolve.o 
route.o route_struct.o script_cb.o socket_info.o sr_module.o stats.o 
tcp_main.o tcp_read.o timer.o tsend.o udp_server.o unixsock_server.o 
usr_avp.o mem/f_malloc.o mem/mem.o mem/memtest.o mem/q_malloc.o 
mem/shm_mem.o mem/vq_malloc.o parser/hf.o parser/msg_parser.o 
parser/parse_allow.o parser/parse_content.o parser/parse_cseq.o 
parser/parse_disposition.o parser/parse_diversion.o parser/parse_event.o 
parser/parse_expires.o parser/parse_fline.o parser/parse_from.o 
parser/parse_hname2.o parser/parse_hostport.o parser/parse_methods.o 
parser/parse_nameaddr.o parser/parse_param.o parser/parse_refer_to.o 
parser/parse_rpid.o parser/parse_rr.o parser/parse_sipifmatch.o 
parser/parse_to.o parser/parse_uri.o parser/parse_via.o 
parser/parser_f.o parser/digest/digest.o parser/digest/digest_parser.o 
parser/digest/param_parser.o parser/contact/contact.o 
parser/contact/parse_contact.o db/db.o db/db_fifo.o db/db_id.o 
db/db_pool.o lex.yy.o cfg.tab.o     -lfl -ldl -lresolv -o openser
items.o(.text+0x389e): In function `xl_get_branch':
/export/darilion/openser-cvs/tmp/sip-server/items.c:1123: undefined 
reference to `init_branch_iterator'
items.o(.text+0x38c8):/export/darilion/openser-cvs/tmp/sip-server/items.c:1124: 
undefined reference to `next_branch'
items.o(.text+0x3953): In function `xl_get_branches':
/export/darilion/openser-cvs/tmp/sip-server/items.c:1155: undefined 
reference to `init_branch_iterator'
items.o(.text+0x3980):/export/darilion/openser-cvs/tmp/sip-server/items.c:1156: 
undefined reference to `next_branch'
items.o(.text+0x3a7e):/export/darilion/openser-cvs/tmp/sip-server/items.c:1180: 
undefined reference to `init_branch_iterator'
items.o(.text+0x3aab):/export/darilion/openser-cvs/tmp/sip-server/items.c:1181: 
undefined reference to `next_branch'
collect2: ld returned 1 exit status
make[2]: *** [openser] Error 1
make[2]: Leaving directory `/export/darilion/openser-cvs/tmp/sip-server'
make[1]: *** [build-stamp] Error 2
make[1]: Leaving directory `/export/darilion/openser-cvs/tmp/sip-server'
make: *** [deb] Error 2


Bogdan-Andrei Iancu wrote:
> Hi Klaus,
> 
> it should be fixed on cvs. let me know if works for you.
> 
> regards,
> bogdan
> 
> Klaus Darilion wrote:
> 
>> Hi Bogdan!
>>
>> I removed all xlog statements from the branch_route and now it works!
>>
>> I guess you are right!
>>
>> thanks
>> klaus
>>
>> Bogdan-Andrei Iancu wrote:
>>
>>> Hi Klaus,
>>>
>>> if I'm not wrong, this time the problem resides in the branch 
>>> iterator implementation (dset.c). It's a unique static iterator. What 
>>> happens is a nested usage of the iterator: first it is used to run 
>>> build branches and run the branch route; secondly, it's used from 
>>> branch_route by xlog to print all branches and destination 
>>> set....so...you get a iteration inside another iteration, but using 
>>> same iterator.... :-/
>>>
>>> probably that's the reason for the missing third branch 
>>> route....please re-try same scenario, but remove the "all branches 
>>> and destination set " xlog specifiers...let me know if it works....
>>>
>>> regards,
>>> bogdan
>>>
>>> PS: if the iterator is the real cause, I will re-implemet it ;)
>>>
>>> Klaus Darilion wrote:
>>>
>>>> Hi!
>>>>
>>>> In the following scenario, a call is forked to 3 phones. 2 of them 
>>>> are behind the same NAT (same publich IP, different port, one uses 
>>>> STUN, one not).
>>>>
>>>> I xlog all branches,dest-sets... in route[] and then in branch_route.
>>>>
>>>> But the branch route is executed on 2 times, instead of three times 
>>>> (the destination set shows that there are 3 destinations)
>>>>
>>>> Although the destination set is changed in the second branch 
>>>> processing. Is this the intended way?
>>>>
>>>> regards
>>>> klaus
>>>>
>>>> route[]:
>>>>
>>>>  request's first branch:    $br=sip:10.10.0.50:15360
>>>>  request's all branches:    $bR=sip:10.10.0.50:15360, 
>>>> sip:klaus at 83.136.33.3:8718
>>>>  request's destination set: $ds=Contact: 
>>>> sip:klaus at 83.136.33.19:5060, sip:10.10.0.50:15360, 
>>>> sip:klaus at 83.136.33.3:8718
>>>>  request's destination uri: $du=
>>>>  request's uri:             $ru=sip:klaus at 83.136.33.19:5060
>>>>  activating t_on_branch(1)
>>>>
>>>> branch_route[1]: first branch processing
>>>>
>>>>  branch_route[1]: request's first branch:    $br=sip:10.10.0.50:15360
>>>>  branch_route[1]: request's all branches:    
>>>> $bR=sip:10.10.0.50:15360, sip:klaus at 83.136.33.3:8718
>>>>  branch_route[1]: request's destination set: $ds=Contact: 
>>>> sip:klaus at 83.136.33.19:5060, sip:10.10.0.50:15360, 
>>>> sip:klaus at 83.136.33.3:8718
>>>>  branch_route[1]: request's destination uri: $du=
>>>>  branch_route[1]: request's uri: $ru=sip:klaus at 83.136.33.19:5060
>>>>
>>>> branch_route[1]: second branch processing
>>>>
>>>>  branch_route[1]: request's first branch:    $br=sip:10.10.0.50:15360
>>>>  branch_route[1]: request's all branches:    
>>>> $bR=sip:10.10.0.50:15360, sip:klaus at 83.136.33.3:8718
>>>>  branch_route[1]: request's destination set: $ds=Contact: 
>>>> sip:10.10.0.50:15360, sip:10.10.0.50:15360, sip:klaus at 83.136.33.3:8718
>>>>  branch_route[1]: request's destination uri: $du=sip:83.136.33.3:3003
>>>>  branch_route[1]: request's uri:             $ru=sip:10.10.0.50:15360
>>>>
>>>> ...no third branch procesing :-(
>>>>
>>>> _______________________________________________
>>>> Users mailing list
>>>> Users at openser.org
>>>> http://openser.org/cgi-bin/mailman/listinfo/users
>>>>
>>>
>>>
>>
>>
> 
> 




More information about the Users mailing list