Hello Ole,

I think the move to 6 buffers(it has only a small memory penalty) should 
suffice, because there are no module functions that might have more than 6 
parameters. 

If I remember correctly, I have also patched  the kamailio_3.0 branch, so if 
you are using 3.0.0 you might already have the patch in place so you can remove 
the if's from the cfg.

Cheers
Marius
-----Original Message-----
From: Ole Kaas [mailto:o...@tet.dk]
Sent: Thu 5/13/2010 6:40 PM
To: Marius Zbihlei
Cc: us...@lists.kamailio.org
Subject: Re: [SR-Users] carrierroute cr_route fails with pvars
 

Den 03/05/2010 kl. 12.13 skrev marius zbihlei:
> You are right, if you use 2 PV in the cr_route function things will go badly.
> 
> The reason is that the core function get_str_fparam() returns a pointer to a 
> static buffer, and in total there are three(3) static buffers to return, so 
> after a fourth call the first value (if cached which is the case in your 
> proof) will be overwritten by the fourth. A solution is to increase the 
> number of buffers to a number larger than 3 (but still small - keep in mind 
> that each buffer is 1kB). I have tested with 6 and it works.
> 

So maybe this can't be fixed (easily) without a performace penalty? At least a 
note in the doc would have saved me some trouble - or maybe an error message in 
the log (if possible). 

> Please modify PV_PRINT_BUF_NO in sr_module.c(line 1418) to a larger value , 
> compile and retest.
> 

Ok, I'll check it out when I upgrade to 3.0.1 or later. For now I've made a 
workaround in the config with some "if" constructs.

Thanks,
Ole

_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

Reply via email to