Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Xiph.Org
Icecast-Server
Commits
6dca08ee
Commit
6dca08ee
authored
Nov 20, 2014
by
Philipp Schafft
🦁
Browse files
(sync with my branch) Support for reloading server config using admin interface. close
#2018
svn path=/icecast/trunk/icecast/; revision=19337
parent
5a8d0d16
Changes
2
Hide whitespace changes
Inline
Side-by-side
admin/stats.xsl
View file @
6dca08ee
...
...
@@ -21,6 +21,9 @@
<!--global server stats-->
<div
class=
"roundbox"
>
<h3>
Global Server Stats
</h3>
<ul
class=
"nav"
>
<li><a
href=
"reloadconfig.xsl"
>
Reload Server Config
</a></li>
</ul>
<table
class=
"yellowkeys"
>
<tbody>
<xsl:for-each
select=
"/icestats"
>
...
...
src/admin.c
View file @
6dca08ee
...
...
@@ -68,9 +68,11 @@
#define COMMAND_RAW_STATS 102
#define COMMAND_RAW_LISTSTREAM 103
#define COMMAND_PLAINTEXT_LISTSTREAM 104
#define COMMAND_RAW_QUEUE_RELOAD 105
#define COMMAND_TRANSFORMED_LIST_MOUNTS 201
#define COMMAND_TRANSFORMED_STATS 202
#define COMMAND_TRANSFORMED_LISTSTREAM 203
#define COMMAND_TRANSFORMED_QUEUE_RELOAD 205
/* Client management commands */
#define COMMAND_RAW_KILL_CLIENT 301
...
...
@@ -90,6 +92,8 @@
#define LISTCLIENTS_TRANSFORMED_REQUEST "listclients.xsl"
#define STATS_RAW_REQUEST "stats"
#define STATS_TRANSFORMED_REQUEST "stats.xsl"
#define QUEUE_RELOAD_RAW_REQUEST "reloadconfig"
#define QUEUE_RELOAD_TRANSFORMED_REQUEST "reloadconfig.xsl"
#define LISTMOUNTS_RAW_REQUEST "listmounts"
#define LISTMOUNTS_TRANSFORMED_REQUEST "listmounts.xsl"
#define STREAMLIST_RAW_REQUEST "streamlist"
...
...
@@ -132,6 +136,10 @@ int admin_get_command(const char *command)
return
COMMAND_TRANSFORMED_STATS
;
else
if
(
!
strcmp
(
command
,
"stats.xml"
))
/* The old way */
return
COMMAND_RAW_STATS
;
else
if
(
!
strcmp
(
command
,
QUEUE_RELOAD_RAW_REQUEST
))
return
COMMAND_RAW_QUEUE_RELOAD
;
else
if
(
!
strcmp
(
command
,
QUEUE_RELOAD_TRANSFORMED_REQUEST
))
return
COMMAND_TRANSFORMED_QUEUE_RELOAD
;
else
if
(
!
strcmp
(
command
,
LISTMOUNTS_RAW_REQUEST
))
return
COMMAND_RAW_LIST_MOUNTS
;
else
if
(
!
strcmp
(
command
,
LISTMOUNTS_TRANSFORMED_REQUEST
))
...
...
@@ -178,6 +186,7 @@ static void command_show_listeners(client_t *client, source_t *source,
static
void
command_move_clients
(
client_t
*
client
,
source_t
*
source
,
int
response
);
static
void
command_stats
(
client_t
*
client
,
const
char
*
mount
,
int
response
);
static
void
command_queue_reload
(
client_t
*
client
,
int
response
);
static
void
command_list_mounts
(
client_t
*
client
,
int
response
);
static
void
command_kill_client
(
client_t
*
client
,
source_t
*
source
,
int
response
);
...
...
@@ -495,6 +504,9 @@ static void admin_handle_general_request(client_t *client, int command)
case
COMMAND_RAW_STATS
:
command_stats
(
client
,
NULL
,
RAW
);
break
;
case
COMMAND_RAW_QUEUE_RELOAD
:
command_queue_reload
(
client
,
RAW
);
break
;
case
COMMAND_RAW_LIST_MOUNTS
:
command_list_mounts
(
client
,
RAW
);
break
;
...
...
@@ -507,6 +519,9 @@ static void admin_handle_general_request(client_t *client, int command)
case
COMMAND_TRANSFORMED_STATS
:
command_stats
(
client
,
NULL
,
TRANSFORMED
);
break
;
case
COMMAND_TRANSFORMED_QUEUE_RELOAD
:
command_queue_reload
(
client
,
TRANSFORMED
);
break
;
case
COMMAND_TRANSFORMED_LIST_MOUNTS
:
command_list_mounts
(
client
,
TRANSFORMED
);
break
;
...
...
@@ -1073,6 +1088,25 @@ static void command_stats(client_t *client, const char *mount, int response) {
return
;
}
static
void
command_queue_reload
(
client_t
*
client
,
int
response
)
{
xmlDocPtr
doc
;
xmlNodePtr
node
;
global_lock
();
global
.
schedule_config_reread
=
1
;
global_unlock
();
doc
=
xmlNewDoc
(
XMLSTR
(
"1.0"
));
node
=
xmlNewDocNode
(
doc
,
NULL
,
XMLSTR
(
"iceresponse"
),
NULL
);
xmlNewChild
(
node
,
NULL
,
XMLSTR
(
"message"
),
XMLSTR
(
"Config reload queued"
));
xmlNewChild
(
node
,
NULL
,
XMLSTR
(
"return"
),
XMLSTR
(
"1"
));
xmlDocSetRootElement
(
doc
,
node
);
admin_send_response
(
doc
,
client
,
response
,
ADMIN_XSL_RESPONSE
);
xmlFreeDoc
(
doc
);
}
static
void
command_list_mounts
(
client_t
*
client
,
int
response
)
{
ICECAST_LOG_DEBUG
(
"List mounts request"
);
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment