Returns service XML now
[pazpar2-moved-to-github.git] / src / http_command.c
index dd3d5f5..cdb7712 100644 (file)
@@ -651,10 +651,23 @@ static void session_status(struct http_channel *c, struct http_session *s)
 static void cmd_service(struct http_channel *c)
 {
     struct http_session *s = locate_session(c);
+    xmlNode *xml_node;
     if (!s)
         return;
 
     response_open(c, "service");
+    xml_node = s->psession->service->xml_node;
+    if (xml_node)
+    {
+        xmlNode *tmp = xmlCopyNode(xml_node, 1);
+        xmlBufferPtr buf = xmlBufferCreate();
+
+        xmlNodeDump(buf, tmp->doc, tmp, 0, 0);
+
+        wrbuf_write(c->wrbuf, (const char *) buf->content, buf->use);
+        xmlBufferFree(buf);
+    }
+
     response_close(c, "service");
     release_session(c, s);
 }