commit 490ff848f418b6818c557be1f48022090414eb25 from: the xhr date: Thu Aug 19 15:11:28 2021 UTC Implement function to close both access and error logs commit - 6f690542b3c62116a0d6a6e2788721d6e55d87b1 commit + 490ff848f418b6818c557be1f48022090414eb25 blob - 2bb41335492b33d1bd58f9bac45d99679d210051 blob + 264f82269384d4b7fee7add1d3b756432256ccf8 --- log.c +++ log.c @@ -28,6 +28,7 @@ #include #include #include +#include #include #include "log.h" @@ -219,6 +220,13 @@ open_twind_logs(void) fatalx("Cannot open error log: %s", _PATH_TWIND_ACCESS_LOG); return; +} + +void +close_twind_logs(void) +{ + close(access_fd); + close(error_fd); } void blob - 642b40a2898c4029b041e5f9d39fd63797787368 blob + 496672085297e44af8d752fe6813ac15150ba64e --- twind.c +++ twind.c @@ -183,6 +183,7 @@ organize_termination(void) if (sub_pid == -1) { if (errno == ECHILD) { /* All sub processes are terminated */ + close_twind_logs(); log_debug("twind turns to dust"); exit(0); } else { @@ -353,9 +354,11 @@ main_request_handler(void *argp) ret = get_path_from_request(request, finalpath); if (ret == -1) { /* Malformed request */ + log_error(cc, "Malformed request"); send_non_success_response(cc->ssl_peer, STATUS_BAD_REQUEST); return NULL; } else if (ret == -2) { /* 404 */ + log_error(cc, "Request file not found"); send_non_success_response(cc->ssl_peer, STATUS_NOT_FOUND); return NULL; } blob - d6a186e30830edb922fdb1e4787859b34daedff0 blob + 04544300ea5a27dd7c3abc7466ea3261042fb118 --- twind.h +++ twind.h @@ -74,7 +74,9 @@ size_t strlcpy(char *, const char *, size_t); /* log.c */ void open_twind_logs(void); +void close_twind_logs(void); void log_access(const struct client_connection *, const char *, ...); +void log_error(const struct client_connection *, const char *, ...); void user_log(int, const char *, ...); #endif