mirror of
https://gitlab.xiph.org/xiph/icecast-server.git
synced 2024-09-22 04:15:54 -04:00
Feature: Also report loaded modules in report XML
This commit is contained in:
parent
51712ebb2a
commit
d0efb73a7b
@ -21,6 +21,8 @@
|
|||||||
#include "compat.h"
|
#include "compat.h"
|
||||||
#include "resourcematch.h"
|
#include "resourcematch.h"
|
||||||
|
|
||||||
|
#define ADMIN_ICESTATS_LEGACY_EXTENSION_APPLICATION "http://icecast.org/specs/legacy-icestats"
|
||||||
|
|
||||||
/* types */
|
/* types */
|
||||||
#define ADMINTYPE_ERROR (-1)
|
#define ADMINTYPE_ERROR (-1)
|
||||||
#define ADMINTYPE_GENERAL 1
|
#define ADMINTYPE_GENERAL 1
|
||||||
|
31
src/client.c
31
src/client.c
@ -24,6 +24,8 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
#include <libxml/tree.h>
|
||||||
|
|
||||||
#include "common/thread/thread.h"
|
#include "common/thread/thread.h"
|
||||||
#include "common/avl/avl.h"
|
#include "common/avl/avl.h"
|
||||||
#include "common/httpp/httpp.h"
|
#include "common/httpp/httpp.h"
|
||||||
@ -51,7 +53,7 @@
|
|||||||
#include "listensocket.h"
|
#include "listensocket.h"
|
||||||
#include "fastevent.h"
|
#include "fastevent.h"
|
||||||
|
|
||||||
/* for ADMIN_COMMAND_ERROR */
|
/* for ADMIN_COMMAND_ERROR, and ADMIN_ICESTATS_LEGACY_EXTENSION_APPLICATION */
|
||||||
#include "admin.h"
|
#include "admin.h"
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
@ -602,6 +604,31 @@ void client_send_reportxml(client_t *client, reportxml_t *report, document_domai
|
|||||||
xmlFreeDoc(doc);
|
xmlFreeDoc(doc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void client_get_reportxml__add_basic_stats(reportxml_t *report)
|
||||||
|
{
|
||||||
|
reportxml_node_t *rootnode, *extension;
|
||||||
|
xmlNodePtr xmlroot;
|
||||||
|
xmlNodePtr modules;
|
||||||
|
|
||||||
|
rootnode = reportxml_get_root_node(report);
|
||||||
|
|
||||||
|
extension = reportxml_node_new(REPORTXML_NODE_TYPE_EXTENSION, NULL, NULL, NULL);
|
||||||
|
reportxml_node_set_attribute(extension, "application", ADMIN_ICESTATS_LEGACY_EXTENSION_APPLICATION);
|
||||||
|
|
||||||
|
reportxml_node_add_child(rootnode, extension);
|
||||||
|
|
||||||
|
refobject_unref(rootnode);
|
||||||
|
|
||||||
|
xmlroot = xmlNewNode(NULL, XMLSTR("icestats"));
|
||||||
|
modules = module_container_get_modulelist_as_xml(global.modulecontainer);
|
||||||
|
xmlAddChild(xmlroot, modules);
|
||||||
|
|
||||||
|
|
||||||
|
reportxml_node_add_xml_child(extension, xmlroot);
|
||||||
|
refobject_unref(extension);
|
||||||
|
xmlFreeNode(xmlroot);
|
||||||
|
}
|
||||||
|
|
||||||
reportxml_t *client_get_reportxml(const char *state_definition, const char *state_akindof, const char *state_text)
|
reportxml_t *client_get_reportxml(const char *state_definition, const char *state_akindof, const char *state_text)
|
||||||
{
|
{
|
||||||
reportxml_t *report = NULL;
|
reportxml_t *report = NULL;
|
||||||
@ -638,6 +665,8 @@ reportxml_t *client_get_reportxml(const char *state_definition, const char *stat
|
|||||||
refobject_unref(rootnode);
|
refobject_unref(rootnode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
client_get_reportxml__add_basic_stats(report);
|
||||||
|
|
||||||
return report;
|
return report;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user