[sr-dev] git:master:b6b7de88: presence_dialoginfo : aux_body should return xmldoc instead of char

Luis Azedo luis at 2600hz.com
Thu Dec 17 23:09:44 CET 2015


Module: kamailio
Branch: master
Commit: b6b7de8832e4ab22ef2c00ebb2c1e1b6ced9ff35
URL: https://github.com/kamailio/kamailio/commit/b6b7de8832e4ab22ef2c00ebb2c1e1b6ced9ff35

Author: Luis Azedo <luis at 2600hz.com>
Committer: Luis Azedo <luis at 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/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;
 }




More information about the sr-dev mailing list