From 524d467a2573befdec019f00edce53c6eeff2385 Mon Sep 17 00:00:00 2001 From: Karl Heyes Date: Thu, 18 Nov 2004 19:47:39 +0000 Subject: [PATCH] missing test from a previous patch, the running check needs to apply as well svn path=/icecast/trunk/icecast/; revision=8223 --- src/admin.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/admin.c b/src/admin.c index 8c193ef1..d22b5771 100644 --- a/src/admin.c +++ b/src/admin.c @@ -339,15 +339,22 @@ void admin_handle_request(client_t *client, char *uri) } else { - if (!source->shoutcast_compat) { - if (source->running == 0) - { - INFO2("Received admin command %s on unavailable mount \"%s\"", - command_string, mount); - avl_tree_unlock (global.source_tree); - client_send_400 (client, "Source is not available"); - return; - } + if (source->running == 0) + { + avl_tree_unlock (global.source_tree); + INFO2("Received admin command %s on unavailable mount \"%s\"", + command_string, mount); + client_send_400 (client, "Source is not available"); + return; + } + if (command == COMMAND_SHOUTCAST_METADATA_UPDATE && + source->shoutcast_compat == 0) + { + avl_tree_unlock (global.source_tree); + ERROR0 ("illegal change of metadata on non-shoutcast " + "compatible stream"); + client_send_400 (client, "illegal metadata call"); + return; } INFO2("Received admin command %s on mount \"%s\"", command_string, mount);