Hi Charles,

i'm not entirely sure but it seems that its been like this for a long time time 
(2008 with little changes in 2012). i usually make use of notifier workers (db 
mode = 3) where this was no issue.

i received a report about the versioning, identified the code path (it was 
db_mode = 2  even tho the notifier_processes were 5) which was different , 
identified the issue and corrected it. sorry for the false start on the 
correction, i was fooled by travis and misread the return type which lead to 
crashing.

Best

________________________________
From: sr-dev [[email protected]] on behalf of Charles Chance 
[[email protected]]
Sent: Thursday, December 17, 2015 4:11 PM
To: sr-dev
Subject: Re: [sr-dev] git:master:b6b7de88: presence_dialoginfo : aux_body 
should return xmldoc instead of char


Hi Luis,

It would be interesting to understand where the issue with document versioning 
was first introduced - it was working fine prior to 4.3 as far as I can tell.

We noticed some weirdness with BLF after upgrading to 4.3.4 on some production 
machines and soon realised it was due to the version being incorrect - however, 
these recent patches have only led to other issues/crashes in our offline tests 
today.

Can you shed any light on when it might have been introduced? I've not had much 
chance look myself but happy to spend some time over the weekend.

Cheers,
Charles


On 17 Dec 2015 10:09 pm, "Luis Azedo" <[email protected]<mailto:[email protected]>> 
wrote:
Module: kamailio
Branch: master
Commit: b6b7de8832e4ab22ef2c00ebb2c1e1b6ced9ff35
URL: 
https://github.com/kamailio/kamailio/commit/b6b7de8832e4ab22ef2c00ebb2c1e1b6ced9ff35

Author: Luis Azedo <[email protected]<mailto:[email protected]>>
Committer: Luis Azedo <[email protected]<mailto:[email protected]>>
Date: 2015-12-17T21:02:43Z

presence_dialoginfo : aux_body should return xmldoc instead of char

---

Modified: modules/presence/notify.c
Modified: modules/presence_dialoginfo/notify_body.c

---

Diff:  
https://github.com/kamailio/kamailio/commit/b6b7de8832e4ab22ef2c00ebb2c1e1b6ced9ff35.diff
Patch: 
https://github.com/kamailio/kamailio/commit/b6b7de8832e4ab22ef2c00ebb2c1e1b6ced9ff35.patch

---

diff --git a/modules/presence/notify.c b/modules/presence/notify.c
index efb8a48..f6a0ba9 100644
--- a/modules/presence/notify.c
+++ b/modules/presence/notify.c
@@ -1535,8 +1535,7 @@ int send_notify_request(subs_t* subs, subs_t * 
watcher_subs,
                                        {
                                                aux_body = 
subs->event->aux_body_processing(subs, notify_body);
                                                if(aux_body) {
-                                                       xmlFree(notify_body->s);
-                                                       pkg_free(notify_body);
+                                                       
free_notify_body(notify_body, subs->event);
                                                        notify_body = aux_body;
                                                }
                                        }
diff --git a/modules/presence_dialoginfo/notify_body.c 
b/modules/presence_dialoginfo/notify_body.c
index e6dc050..710fe91 100644
--- a/modules/presence_dialoginfo/notify_body.c
+++ b/modules/presence_dialoginfo/notify_body.c
@@ -595,5 +595,18 @@ str *dlginfo_body_setversion(subs_t *subs, str *body) {
        memcpy(version_start, version, version_len);
        memset(version_start + version_len, ' ', 12 - version_len);

+       xmlDocPtr doc = xmlReadMemory(aux_body->s, aux_body->len, "noname.xml", 
NULL, 0);
+        if (doc == NULL) {
+               LM_ERR("error allocation xmldoc\n");
+               pkg_free(aux_body->s);
+               pkg_free(aux_body);
+               return NULL;
+       }
+       pkg_free(aux_body->s);
+        xmlDocDumpFormatMemory(doc,(xmlChar**)(void*)&aux_body->s, 
&aux_body->len, 1);
+
+        xmlCleanupParser();
+        xmlMemoryDump();
+
        return aux_body;
 }


_______________________________________________
sr-dev mailing list
[email protected]<mailto:[email protected]>
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev

** We're rebranding! Learn more 
here<http://www.sipcentric.com/2015/07/were-rebranding/> **

www.sipcentric.com<http://www.sipcentric.com/>

Follow us on twitter @sipcentric<http://twitter.com/sipcentric>

Sipcentric Ltd. Company registered in England & Wales no. 7365592. Registered 
office: Faraday Wharf, Innovation Birmingham Campus, Holt Street, Birmingham 
Science Park, Birmingham B7 4BB.
_______________________________________________
sr-dev mailing list
[email protected]
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to