Commit Diff


commit - 6f690542b3c62116a0d6a6e2788721d6e55d87b1
commit + 490ff848f418b6818c557be1f48022090414eb25
blob - 2bb41335492b33d1bd58f9bac45d99679d210051
blob + 264f82269384d4b7fee7add1d3b756432256ccf8
--- log.c
+++ log.c
@@ -28,6 +28,7 @@
 #include <syslog.h>
 #include <errno.h>
 #include <fcntl.h>
+#include <unistd.h>
 #include <time.h>
 
 #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