diff --git a/src/main/server.c b/src/main/server.c index e13c0d1cc537faf8610c70f5c54c43c477f98fdb..1e611eb08f7108220dc17357a2df13aa2e1d2dec 100644 --- a/src/main/server.c +++ b/src/main/server.c @@ -7,6 +7,7 @@ #include <lektor/reg.h> #include <lektor/database.h> #include <mthread/mthread.h> +#include <lektor/commands.h> #include <assert.h> #include <signal.h> @@ -67,6 +68,8 @@ main(int argc, char *argv[]) normal_launch: LOG_INFO_SCT("GENERAL", "Lektor launched by user %s (shell: %s, home: %s)", pw->pw_name, pw->pw_shell, pw->pw_dir); + if (env_get(LKT_ENV_RESTART)) + LOG_INFO_SCT("GENERAL", "%s", "Lektord has been restarted"); reg_set(server_reg); mthread_init(); pthread_create(&th, NULL, mthread_main, NULL); @@ -114,11 +117,12 @@ normal_launch: srv.kara_prefix = kara_dir; database_config_queue_default(srv.db); - if (autoclear) + if (!env_get(LKT_ENV_RESTART) && autoclear) database_queue_clear(srv.db); RETURN_IF(load_module_by_name(&srv, "player", &srv.win), "Can't load module player", 3); RETURN_IF(load_module_by_name(&srv, "repo", &srv.repo), "Can't load module repo", 3); + lkt_listen(&srv); return EXIT_FAILURE; } diff --git a/src/net/listen.c b/src/net/listen.c index 37d1cbe38b34d83dbcaca97953d4277f0b17ad47..21c74840950285cf82a7d4b950a2fc7b2de8cfc6 100644 --- a/src/net/listen.c +++ b/src/net/listen.c @@ -727,6 +727,15 @@ lkt_listen(struct lkt_state *srv) srv->fds[0].events = POLLIN; srv->fds_len = 1; + /* Get ENV */ + /* Not working -> race condition with player module */ + // char *env_current = env_get(LKT_ENV_CURRENT); + // if (env_current && !STR_MATCH(env_current, "NULL")) { + // LOG_INFO_SCT("INIT", "Restart playback from %s", env_current); + // command_play(srv->db, &srv->win, &env_current, &srv->mpd_idle_events); + // } + + /* Listen */ for (;;) { if (handle_network_events(srv) < 0) break;