Module: kamailio
Branch: master
Commit: b6b7de8832e4ab22ef2c00ebb2c1e1b6ced9ff35
URL:
https://github.com/kamailio/kamailio/commit/b6b7de8832e4ab22ef2c00ebb2c1e1b…
Author: Luis Azedo <luis(a)2600hz.com>
Committer: Luis Azedo <luis(a)2600hz.com>
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/b6b7de8832e4ab22ef2c00ebb2c1e1b…
Patch:
https://github.com/kamailio/kamailio/commit/b6b7de8832e4ab22ef2c00ebb2c1e1b…
---
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;
}