]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - afs.c
New server command: ll to change the log level at runtime.
[paraslash.git] / afs.c
diff --git a/afs.c b/afs.c
index 710670255b2ec1cf67b9ab4e74823bfe19dd3a02..21ab9ae87251cce0b88741aecc9b0023755521db 100644 (file)
--- a/afs.c
+++ b/afs.c
@@ -24,6 +24,7 @@
 #include "afs.h"
 #include "net.h"
 #include "server.h"
+#include "daemon.h"
 #include "ipc.h"
 #include "list.h"
 #include "sched.h"
@@ -979,6 +980,15 @@ static void register_command_task(struct sched *s)
        }, s);
 }
 
+static int afs_select(int max_fileno, fd_set *readfds, fd_set *writefds,
+               struct timeval *timeout_tv)
+{
+       mutex_lock(mmd_mutex);
+       daemon_set_loglevel(mmd->loglevel);
+       mutex_unlock(mmd_mutex);
+       return para_select(max_fileno + 1, readfds, writefds, timeout_tv);
+}
+
 /**
  * Initialize the audio file selector process.
  *
@@ -1003,6 +1013,7 @@ __noreturn void afs_init(int socket_fd)
        PARA_INFO_LOG("server_socket: %d\n", server_socket);
        init_admissible_files(OPT_STRING_VAL(AFS_INITIAL_MODE));
        register_command_task(&s);
+       s.select_function = afs_select;
        s.default_timeout.tv_sec = 0;
        s.default_timeout.tv_usec = 999 * 1000;
        ret = write(socket_fd, "\0", 1);