X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=common%2Fserver.c;h=78af625e31432882b7b4cec0e25a19f5a6fd6917;hb=d25cf39d7cb4d2df2d7e2fa307c1c8f14bb018cc;hp=73c2888969392f2465a94856f2dca04d0f263288;hpb=8977d252fc44ae953df4bde4a2f1c5895beea4e0;p=apps%2Fpfixtools.git diff --git a/common/server.c b/common/server.c index 73c2888..78af625 100644 --- a/common/server.c +++ b/common/server.c @@ -135,11 +135,22 @@ static int start_client(server_t *server, start_client_t starter, } int server_loop(start_client_t starter, delete_client_t deleter, - run_client_t runner, void* config) { + run_client_t runner, refresh_t refresh, void* config) { + info("entering processing loop"); while (!sigint) { struct epoll_event evts[1024]; int n; + if (sighup && refresh) { + sighup = false; + info("refreshing..."); + if (!refresh(config)) { + crit("error while refreshing configuration"); + return EXIT_FAILURE; + } + info("refresh done, processing loop restarts"); + } + n = epoll_select(evts, countof(evts), -1); if (n < 0) { if (errno != EAGAIN && errno != EINTR) { @@ -175,5 +186,6 @@ int server_loop(start_client_t starter, delete_client_t deleter, } } } + info("exit requested"); return EXIT_SUCCESS; }