Commit ce167cc6 authored by Ed "oddsock" Zaleski's avatar Ed "oddsock" Zaleski
Browse files

whoops...stats can't have spaces in them, since XML can't have spaces in the tags

also, handle case where a client sends a bad ice-audio-info string (variable but no value)

svn path=/trunk/icecast/; revision=4380
parent 1658f171
......@@ -211,10 +211,10 @@ void *source_main(void *arg)
stats_event(source->mount, "listeners", "0");
source->listeners = 0;
if ((s = httpp_getvar(source->parser, "ice-name"))) {
_add_yp_info(source, "server name", s, YP_SERVER_NAME);
_add_yp_info(source, "server_name", s, YP_SERVER_NAME);
}
if ((s = httpp_getvar(source->parser, "ice-url"))) {
_add_yp_info(source, "server url", s, YP_SERVER_URL);
_add_yp_info(source, "server_url", s, YP_SERVER_URL);
}
if ((s = httpp_getvar(source->parser, "ice-genre"))) {
_add_yp_info(source, "genre", s, YP_SERVER_GENRE);
......@@ -223,7 +223,7 @@ void *source_main(void *arg)
_add_yp_info(source, "bitrate", s, YP_BITRATE);
}
if ((s = httpp_getvar(source->parser, "ice-description"))) {
_add_yp_info(source, "server description", s, YP_SERVER_DESC);
_add_yp_info(source, "server_description", s, YP_SERVER_DESC);
}
if ((s = httpp_getvar(source->parser, "ice-private"))) {
stats_event(source->mount, "public", s);
......@@ -232,7 +232,7 @@ void *source_main(void *arg)
if ((s = httpp_getvar(source->parser, "ice-audio-info"))) {
if (_parse_audio_info(source, s)) {
ai = util_dict_urlencode(source->audio_info, '&');
_add_yp_info(source, "audio info",
_add_yp_info(source, "audio_info",
ai,
YP_AUDIO_INFO);
}
......@@ -623,10 +623,10 @@ static int _free_client(void *key)
static int _parse_audio_info(source_t *source, char *s)
{
char *token;
char *pvar;
char *variable;
char *value;
char *token = NULL;
char *pvar = NULL;
char *variable = NULL;
char *value = NULL;
while ((token = strtok(s,";")) != NULL) {
pvar = strchr(token, '=');
......@@ -641,13 +641,13 @@ static int _parse_audio_info(source_t *source, char *s)
strncpy(value, pvar, strlen(pvar));
util_dict_set(source->audio_info, variable, value);
stats_event(source->mount, variable, value);
if (value) {
free(value);
}
}
if (variable) {
free(variable);
}
if (value) {
free(value);
}
}
s = NULL;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment