On 02/22/2012 09:45 AM, Sven Knoblich wrote:
Hello all, i am currently confused by using the avpops function avp_delete. When i run avp_delete without the flag-value \g only the last value will be unset (like an undo). Is this the wanted behaviour?
Hello Sven,
After looking thru the code it seems that this is the wanted behaviour (something like sed with /g switch) even in 3.x (master).
From the fixup function of avp_delete : <code> case 'g': case 'G': ap->ops|=AVPOPS_FLAG_ALL; </code>
This flag is sent as the /all /parameter in destroy_avps in usr_avp.c method. (The avp's are inserted in memory in reversed order so it's a Last In First Out type structure)
Cheers Marius
EXAMPLE:
$avp(test) = "test" if( $avp(test)){xlog("L_NOTICE","result1:$avp(test)\n");}
$avp(test) = "nooo"; if( $avp(test)){xlog("L_NOTICE","result2:$avp(test)\n");}
avp_delete("$avp(test)"); if( $avp(test)){xlog("L_NOTICE","result3:$avp(test)\n");}
RESULT:
result1:test result2:nooo result3:test
Could anybody helps me to understand that?
thanks in advance, Sven
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