[SR-Users] Does xcap server of kamailio support partial update of xcap document?

Daniel-Constantin Mierla miconda at gmail.com
Thu Sep 8 16:08:32 CEST 2011


Hello Laura,

thanks for testing and further patching. I just committed on master 
branch. Are you working with 3.1? Just to see how fast to plan the 
backports.

Cheers,
Daniel

On 9/8/11 3:22 PM, laura testi wrote:
> Hi,
> we have tested the patch, it does not work. We have done some minor
> changes. Now it works.
>
> Here are the diff:
>
> diff -u xcap_misc.c  xcap_misc.c_patch
> --- xcap_misc.c       2011-09-08 14:23:37.000000000 +0200
> +++ xcap_misc.c_patch 2011-09-08 14:29:24.000000000 +0200
> @@ -465,7 +465,7 @@
>                  goto error;
>          }
>       nodes = xpathObj->nodesetval;
> -       if(nodes==NULL)
> +       if(nodes==NULL || nodes->nodeNr==0 || nodes->nodeTab == NULL)
>          {
>                  /* no selection for xpath expression */
>                  LM_DBG("no selection for xpath expression [%s]\n", xpaths->s);
> @@ -488,7 +488,7 @@
>                  }
>                  *p = '/';
>                  nodes = xpathObj->nodesetval;
> -               if(nodes==NULL)
> +               if(nodes==NULL || nodes->nodeNr==0 || nodes->nodeTab == NULL)
>                  {
>                          LM_DBG("no selection for xpath parent
> expression [%s]\n",
>                                          xpaths->s);
>
>
>
> Please see the patch file in the attachment.
>
> Thanks  again
>
> Best Regards,
> Laura
>
> On Wed, Sep 7, 2011 at 10:12 PM, Daniel-Constantin Mierla
> <miconda at gmail.com>  wrote:
>> Hello,
>>
>> inserting a new node seems not to be possible through xpath operations only,
>> so I made a patch to be able to add new nodes (entries) -- see it attached
>> -- it is for devel version (master branch), hopefully it applies clean to
>> 3.1 if you are using that version.
>>
>> There was no option to test it at all, I just made sure it compiles. Let me
>> know the results, if it runs but fails, send me the output with debug=4. If
>> all is ok, I will commit to git repository.
>>
>> Cheers,
>> Daniel
>>
>> On 9/7/11 3:21 PM, laura testi wrote:
>>> Hi,
>>> we have patch the xcap_misc.h with "#define XCAP_MAX_URI_SIZE   255"
>>> which was 127, and extended the length of field doc_uri in the xcap
>>> table to 256 from 128. Now the errror is gone.
>>>
>>> After that we have done some test with curl, following are the results:
>>> - DELETE an Entry from the list: OK
>>>    i.e.: curl  -X DELETE
>>>
>>> http://<ip>:5060/xcap-root/resource-lists/users/sip:user at domain/index/~~/resource-lists/list/entry%5b at uri=%22sip:u1 at d1%22%5d
>>>   after this command, the contact u1 at d1 is removed from the contact list.
>>>
>>> - UPDATE an Entry from the list: OK
>>>   i.e.,
>>> curl -T entry.xml -X PUT
>>>
>>> http://<ip>:5060/xcap-root/resource-lists/users/sip:user at domain/index/~~/resource-lists/list%5b at name=%22RootGroup%22%5d/entry%5b at uri=%22sip:u2 at d2%22%5d
>>>
>>> if the sip:u2 at d2 entry exists, the entry is replaced with the entry in
>>> the entry.xml (<entry
>>> uri="sip:u3 at d3"><display-name>u3</display-name></entry>), which is
>>> sip:u3 at d3
>>>
>>> if the sip:u2 at d2 entry is not exists, the entry of u3 at d3 is not added
>>> to the list!!! follow the rfc4825, it should be added to the list if
>>> the entry does not exits.
>>>
>>> - Add an Entry from the list: KO
>>>   i.e.,
>>> curl -T entry.xml -X PUT
>>>
>>> http://<ip>:5060/xcap-root/resource-lists/users/sip:user at domain/index/~~/resource-lists/list%5b at name=%22RootGroup%22%5d/entry%5b at uri=%22sip:u2 at d2%22%5d
>>>
>>>   the entry.xml is (<entry
>>> uri="sip:u2 at d2"><display-name>u2</display-name></entry>)
>>>
>>>   the entry sip:u2 at d2 was not in the list before the command and is not
>>> added after the command.
>>>
>>> I think it's a bug of xcap server.
>>>
>>>
>>> Many thanks!
>>>
>>> Laura
>>>
>>>
>>>
>>>
>>> On Wed, Sep 7, 2011 at 12:17 PM, Juha Heinanen<jh at tutpro.com>    wrote:
>>>> Daniel-Constantin Mierla writes:
>>>>
>>>>> Feel free to do it, however I think it has to be reviewed where is used,
>>>>> though -- it should be safe even size in db is longer as long as the
>>>>> insert is done by kamailio itself, not sure we have affected cases when
>>>>> the insert is done by external apps, so better double check...
>>>> every module that reads data from db should check size of received
>>>> string so that it is not longer than space reserved for it in data
>>>> structures. i hope that no module assumes that received data cannot be
>>>> bigger than what db schema says.
>>>>
>>>> -- juha
>>>>
>>> _______________________________________________
>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>>> sr-users at lists.sip-router.org
>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>> --
>> Daniel-Constantin Mierla -- http://www.asipto.com
>> Kamailio Advanced Training, Oct 10-13, Berlin: http://asipto.com/u/kat
>> http://linkedin.com/in/miconda -- http://twitter.com/miconda
>>
> >
>
>
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> sr-users at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

-- 
Daniel-Constantin Mierla -- http://www.asipto.com
Kamailio Advanced Training, Oct 10-13, Berlin: http://asipto.com/u/kat
http://linkedin.com/in/miconda -- http://twitter.com/miconda

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20110908/eb5a93e4/attachment.htm>


More information about the sr-users mailing list