diff --git a/src/Makefile.am b/src/Makefile.am index 8612bcd0..b9ce208d 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -6,6 +6,7 @@ bin_PROGRAMS = icecast noinst_HEADERS = \ admin.h \ + main.h \ cfgfile.h \ logging.h \ sighandler.h \ diff --git a/src/cfgfile.c b/src/cfgfile.c index f8c5ed52..ebe3a378 100644 --- a/src/cfgfile.c +++ b/src/cfgfile.c @@ -42,6 +42,7 @@ #include "fserve.h" #include "stats.h" #include "connection.h" +#include "main.h" #define CATMODULE "CONFIG" #define CONFIG_DEFAULT_LOCATION "Earth" @@ -701,6 +702,7 @@ void config_reread_config(void) config_set_config(&new_config); config = config_get_config_unlocked(); restart_logging(config); + main_config_reload(config); connection_reread_config(config); yp_recheck_config(config); fserve_recheck_mime_types(config); diff --git a/src/main.c b/src/main.c index c0e18951..e8a6282e 100644 --- a/src/main.c +++ b/src/main.c @@ -60,6 +60,7 @@ #include #endif +#include "main.h" #include "cfgfile.h" #include "util.h" #include "sighandler.h" @@ -86,6 +87,8 @@ static int background; static char *pidfile = NULL; +static void pidfile_update(ice_config_t *config, int always_try); + static void _fatal_error(const char *perr) { #ifdef WIN32_SERVICE @@ -162,6 +165,12 @@ static void shutdown_subsystems(void) xslt_shutdown(); } +void main_config_reload(ice_config_t *config) +{ + ICECAST_LOG_DEBUG("Reloading configuration."); + pidfile_update(config, 0); +} + static int _parse_config_opts(int argc, char **argv, char *filename, size_t size) { int i = 1; @@ -365,7 +374,7 @@ static void pidfile_update(ice_config_t *config, int always_try) fprintf(f, "%lld\n", (long long int)getpid()); fclose(f); - ICECAST_LOG_INFO("pidfile %H updated."); + ICECAST_LOG_INFO("pidfile %H updated.", pidfile); } if (newpidfile != pidfile) { diff --git a/src/main.h b/src/main.h new file mode 100644 index 00000000..e6d365b4 --- /dev/null +++ b/src/main.h @@ -0,0 +1,16 @@ +/* Icecast + * + * This program is distributed under the GNU General Public License, version 2. + * A copy of this license is included with this source. + * + * Copyright 2018, Philipp "ph3-der-loewe" Schafft , + */ + +#ifndef __MAIN_H__ +#define __MAIN_H__ + +#include "cfgfile.h" + +void main_config_reload(ice_config_t *config); + +#endif