From 205eca50abfb88559192ae8471020d38db4e72d8 Mon Sep 17 00:00:00 2001 From: Philipp Schafft Date: Thu, 8 Jan 2015 23:15:13 +0000 Subject: [PATCH] Fix: Do not shut down fserve engine if not started up This avoids a endless loop in a spin lock that has not been inited yet if fserve engine was not started up by the time it was sent to go down. This happened if icecast couldn't read the config because the file was corrupted or non-existent. Closes: #2144 --- src/fserve.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/fserve.c b/src/fserve.c index 17ce2d95..c7c0b865 100644 --- a/src/fserve.c +++ b/src/fserve.c @@ -66,6 +66,8 @@ #define BUFSIZE 4096 +static volatile int __inited = 0; + static fserve_t *active_list = NULL; static fserve_t *pending_list = NULL; @@ -104,12 +106,17 @@ void fserve_initialize(void) fserve_recheck_mime_types (config); config_release_config(); + __inited = 1; + stats_event (NULL, "file_connections", "0"); ICECAST_LOG_INFO("file serving started"); } void fserve_shutdown(void) { + if (!__inited) + return; + thread_spin_lock (&pending_lock); run_fserv = 0; while (pending_list)