commit - 0321d839ea813adcaafa0dbe6463e5caa654bf1e
commit + 75e29febe513405dbcb534883dc76a7096a207ec
blob - bf3790cfaa6690bd77a8390a5557cb1abf5f1a90
blob + bcd13936c3fc08945fb398d33572a9e93224a300
--- twind.c
+++ twind.c
signal_handler(int signal)
{
switch (signal) {
+ case SIGHUP:
+ reload_log_files = 1;
+ break;
case SIGINT:
case SIGTERM:
organize_termination();
fatalx("signal");
if (signal(SIGTERM, signal_handler) == SIG_ERR)
fatalx("signal");
+ if (signal(SIGHUP, signal_handler) == SIG_ERR)
+ fatalx("signal");
open_sockets(tcpsock, port);
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
#include <openssl/ssl.h>
+#include <signal.h>
+
#define VERSION "2021.a"
#define MAXREQLEN 1025
#define _PATH_TWIND_ACCESS_LOG "logs/access.log"
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 *);