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);