commit 75e29febe513405dbcb534883dc76a7096a207ec from: the xhr date: Thu Aug 26 08:23:59 2021 UTC Re-open access and error log files on SIGHUP commit - 0321d839ea813adcaafa0dbe6463e5caa654bf1e commit + 75e29febe513405dbcb534883dc76a7096a207ec blob - bf3790cfaa6690bd77a8390a5557cb1abf5f1a90 blob + bcd13936c3fc08945fb398d33572a9e93224a300 --- twind.c +++ twind.c @@ -92,6 +92,9 @@ static void signal_handler(int signal) { switch (signal) { + case SIGHUP: + reload_log_files = 1; + break; case SIGINT: case SIGTERM: organize_termination(); @@ -146,6 +149,8 @@ main(int argc, char *argv[]) fatalx("signal"); if (signal(SIGTERM, signal_handler) == SIG_ERR) fatalx("signal"); + if (signal(SIGHUP, signal_handler) == SIG_ERR) + fatalx("signal"); open_sockets(tcpsock, port); @@ -252,6 +257,13 @@ handle_incoming_connections(int counter, int tcpsock, memset(str, 0, sizeof(str)); while (1) { + if (reload_log_files == 1) { + reload_log_files = 0; + log_debug("Re-open log files"); + close_twind_logs(); + open_twind_logs(); + } + ret = accept(tcpsock, (struct sockaddr *)&addr, &len); if (ret < 0) fatalx("Error when accepting connection"); blob - 9d9fce3ad479da1a3dd3a06969b71160dba3500b blob + eb73199111119800518bc4d674a9e74a7200d00b --- twind.h +++ twind.h @@ -21,6 +21,8 @@ #include +#include + #define VERSION "2021.a" #define MAXREQLEN 1025 #define _PATH_TWIND_ACCESS_LOG "logs/access.log" @@ -52,6 +54,8 @@ struct client_connection { char client_addr[INET6_ADDRSTRLEN]; }; +static volatile sig_atomic_t reload_log_files = 0; + /* gemini.c */ int check_gemini_file(const char *); int send_response(SSL*, int, const char *, const char *);