Hi Peter,

I found the source of the problem. For the case when publish with expires 0 is received, the order of operations has changed:

Now the delete in database is performed before sending the Notifies, and before it was the other way around. We had to perform the delete first, to find out if the record actually existed and if we need to send a Notify.

And actually the code relies on finding the record in database even for unPublish. The main reason is that it wants to build a pidf with status closed from the previous published state - to keep the same tuple id. I don't know if there are actually clients interpreting the tuple id (which should identify a certain device), but it was designed like this to be safe.

For this reason, we will have to give up on using affected_rows on delete and do the query each time. We will do the fix tomorrow.

Regards,
Anca


On 03/13/2012 05:40 PM, Peter Dunkley wrote:
Hi Anca,

I just tried this change on my system.  With the change present and two presence/RLS clients signed in I get some error messages displayed when I log one of the clients out:
Mar 13 15:36:09 pd-laptop-linux ./kamailio[1493]: ERROR: presence_xml [notify_body.c:176]: while parsing the xml body message
Mar 13 15:36:09 pd-laptop-linux ./kamailio[1493]: ERROR: presence_xml [notify_body.c:133]: in function get_final_notify_body
Mar 13 15:36:09 pd-laptop-linux ./kamailio[1493]: ERROR: presence [notify.c:1396]: in function apply_auth_nbody
Mar 13 15:36:09 pd-laptop-linux ./kamailio[1493]: ERROR: presence [notify.c:1583]: sending Notify not successful
Mar 13 15:36:09 pd-laptop-linux ./kamailio[1493]: ERROR: presence [notify.c:1288]: Could not send notify for presence
I reversed out the change and the errors stopped happening, they started up again as soon as I put it back.

Thanks,

Peter

On Tue, 2012-03-13 at 10:40 +0100, Anca Vamanu wrote:
Module: sip-router
Branch: master
Commit: 42f2d990d022cb67b051ac563ee8cde916a0d14a
URL:    http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=42f2d990d022cb67b051ac563ee8cde916a0d14a

Author: Dragos Dinu <dragos.dinu@1and1.ro>
Committer: Anca Vamanu <anca.vamanu@1and1.ro>
Date:   Tue Mar 13 11:33:06 2012 +0200

modules_k/presence Used affected_rows SQL statement

In case affected_rows function is available in the DB driver, this
function is used instead of an extra query in presentity table that only
verified if the record existed.

Patch author Dragos Dinu <dragos.dinu@1and1.ro>

---

 modules_k/presence/presentity.c |  436 ++++++++++++++++++++++----------------
 1 files changed, 252 insertions(+), 184 deletions(-)

Diff:   http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commitdiff;h=42f2d990d022cb67b051ac563ee8cde916a0d14a

_______________________________________________
sr-dev mailing list
sr-dev@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev

-- 
Peter Dunkley
Technical Director
Crocodile RCS Ltd