<div dir="ltr">Hello,<div><br></div><div>looking at the code, I cannot spot anything wrong with xavp_rm_internal().</div><div><br></div><div>Being about C code you wrote, can you double check your code or share the entire function you tested with?</div><div><br></div><div>Cheers,<br>Daniel</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jan 20, 2021 at 6:26 PM Chaigneau, Nicolas <<a href="mailto:nicolas.chaigneau@capgemini.com">nicolas.chaigneau@capgemini.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">





<div lang="FR">
<div class="gmail-m_-4641220302659285208WordSection1">
<p class="MsoNormal"><span>Hello<u></u><u></u></span></p>
<p class="MsoNormal"><span><u></u> <u></u></span></p>
<p class="MsoNormal"><span><u></u> <u></u></span></p>
<p class="MsoNormal"><span>I’m trying to use function xavp_rm_by_index to remove a specific index from a given xavp.<u></u><u></u></span></p>
<p class="MsoNormal"><span>I’m observing an unexpected behaviour, I think it might be a bug :<u></u><u></u></span></p>
<p class="MsoNormal"><span>Instead of just removing the index, the function removes the index and all others before it.<u></u><u></u></span></p>
<p class="MsoNormal"><span><u></u> <u></u></span></p>
<p class="MsoNormal"><span>E.g : if called with « idx = 1 », it removes indexes 0 and 1.<u></u><u></u></span></p>
<p class="MsoNormal"><span><u></u> <u></u></span></p>
<p class="MsoNormal"><span><u></u> <u></u></span></p>
<p class="MsoNormal"><span>Reading the code of xavp_rm_internal (which is called by xavp_rm_by_index), I don’t think it behaves at it should :<u></u><u></u></span></p>
<p class="MsoNormal"><span><u></u> <u></u></span></p>
<p class="MsoNormal"><span>/* Remove xavps<u></u><u></u></span></p>
<p class="MsoNormal"><span>* idx: <0 remove all xavps with the same name<u></u><u></u></span></p>
<p class="MsoNormal"><span>*      >=0 remove only the specified index xavp<u></u><u></u></span></p>
<p class="MsoNormal"><span>* Returns number of xavps that were deleted<u></u><u></u></span></p>
<p class="MsoNormal"><span>*/<u></u><u></u></span></p>
<p class="MsoNormal"><span><u></u> <u></u></span></p>
<p class="MsoNormal"><span><u></u> <u></u></span></p>
<p class="MsoNormal"><span>For example when I do this :<u></u><u></u></span></p>
<p class="MsoNormal"><span><u></u> <u></u></span></p>
<p class="MsoNormal"><span>LM_ERR("COUNT BEFORE: %d\n", xavp_count(rname, NULL));<u></u><u></u></span></p>
<p class="MsoNormal"><span>int rm_count = xavp_rm_by_index(rname, 1, NULL); // TEST<u></u><u></u></span></p>
<p class="MsoNormal"><span>LM_ERR("REMOVED: %d\n", rm_count);<u></u><u></u></span></p>
<p class="MsoNormal"><span>LM_ERR("COUNT AFTER: %d\n", xavp_count(rname, NULL));<u></u><u></u></span></p>
<p class="MsoNormal"><span><u></u> <u></u></span></p>
<p class="MsoNormal"><span><u></u> <u></u></span></p>
<p class="MsoNormal"><span>« rm_count » returned is 1 (which is expected). However, « count after » is decremented by 2.<u></u><u></u></span></p>
<p class="MsoNormal"><span>And when I look at the contents of my xavp, I notice that the first two elements have been removed.<u></u><u></u></span></p>
<p class="MsoNormal"><span><u></u> <u></u></span></p>
<p class="MsoNormal"><span>Likewise if xavp_rm_by_index is invoked with idx = 2 => the first 3 elements are removed.<u></u><u></u></span></p>
<p class="MsoNormal"><span><u></u> <u></u></span></p>
<p class="MsoNormal"><span><u></u> <u></u></span></p>
<p class="MsoNormal"><span><u></u> <u></u></span></p>
<p class="MsoNormal"><span>So… do you think this is a bug ? or something I didn’t understand ?<u></u><u></u></span></p>
<p class="MsoNormal"><span><u></u> <u></u></span></p>
<p class="MsoNormal"><span><u></u> <u></u></span></p>
<p class="MsoNormal"><span>Thanks for your help !<u></u><u></u></span></p>
<p class="MsoNormal"><span><u></u> <u></u></span></p>
<p class="MsoNormal"><span><u></u> <u></u></span></p>
<p class="MsoNormal"><span>Regards,<u></u><u></u></span></p>
<p class="MsoNormal"><span>Nicolas.<u></u><u></u></span></p>
<p class="MsoNormal"><span><u></u> <u></u></span></p>
</div>
<span style="font-size:9px;line-height:10px">This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.</span></div>

_______________________________________________<br>
Kamailio (SER) - Users Mailing List<br>
<a href="mailto:sr-users@lists.kamailio.org" target="_blank">sr-users@lists.kamailio.org</a><br>
<a href="https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users" rel="noreferrer" target="_blank">https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div>Daniel-Constantin Mierla - <a href="https://www.asipto.com" target="_blank">https://www.asipto.com</a></div><div><a href="https://twitter.com/miconda" target="_blank">https://twitter.com/miconda</a> - <a href="https://www.linkedin.com/in/miconda" target="_blank">https://www.linkedin.com/in/miconda</a></div><div>Kamailio Advanced Training - <a href="https://www.asipto.com/u/kat" target="_blank">https://www.asipto.com/u/kat</a></div></div></div></div></div></div></div>