diff --git a/admin/fallbacks.xsl b/admin/fallbacks.xsl new file mode 100644 index 00000000..45c27d7b --- /dev/null +++ b/admin/fallbacks.xsl @@ -0,0 +1,48 @@ + + + + + + + Set fallback + + +
+

+
+

Mountpoint

+ + + + + + +

Choose the mountpoint to which you want listeners to fallback to:

+
+ + + + +   + +
+
+ + + +
+
+
+
+
diff --git a/admin/includes/mountnav.xsl b/admin/includes/mountnav.xsl index 89424aff..0d6ac8e0 100644 --- a/admin/includes/mountnav.xsl +++ b/admin/includes/mountnav.xsl @@ -8,6 +8,7 @@
  • Clients
  • Move listeners
  • Metadata
  • +
  • Set fallback
  • Kill source
  • diff --git a/src/admin.c b/src/admin.c index 8fa96569..d9ccb98d 100644 --- a/src/admin.c +++ b/src/admin.c @@ -1058,6 +1058,15 @@ static void command_fallback(client_t *client, ICECAST_LOG_DEBUG("Got fallback request"); + if (client->mode == OMODE_STRICT) { + if (!(COMMAND_OPTIONAL(client, "fallback", fallback))) { + xmlDocPtr doc = admin_build_sourcelist(source->mount); + admin_send_response(doc, client, response, FALLBACK_HTML_REQUEST); + xmlFreeDoc(doc); + return; + } + } + COMMAND_REQUIRE(client, "fallback", fallback); util_replace_string(&(source->fallback_mount), fallback);