commit 25aeb79

uint  ·  2026-01-31 05:17:25 +0000 UTC
parent 40c43e7
improve config logging (set_kv)
1 files changed,  +38, -14
+38, -14
  1@@ -90,11 +90,15 @@ static int set_kv(const char* k, const char* v)
  2 	if (strcmp(k, "server_port") == 0) {
  3 		char* end = NULL;
  4 		long p = strtol(v, &end, 10);
  5-		if (!end || *end != '\0')
  6-			return -1;
  7 
  8-		if (p < 1 || p > 65535)
  9+		if (end == v || *end != '\0') {
 10+			LOG(true, "CONF", "Config Error       %s invalid integer '%s'", k, v);
 11+			return -1;
 12+		}
 13+		if (p < 1 || p > 65535) {
 14+			LOG(true, "CONF", "Config Error       server_port out of bounds (1..65535)");
 15 			return -1;
 16+		}
 17 
 18 		server_port = (int)p;
 19 		return 0;
 20@@ -102,8 +106,10 @@ static int set_kv(const char* k, const char* v)
 21 
 22 	if (strcmp(k, "verbose_log") == 0) {
 23 		bool b;
 24-		if (parse_bool(v, &b) < 0)
 25+		if (parse_bool(v, &b) < 0){
 26+			LOG(true, "CONF", "Config Error       verbose_log invalid bool \"%s\"", v);
 27 			return -1;
 28+		}
 29 
 30 		verbose_log = b;
 31 		return 0;
 32@@ -117,11 +123,15 @@ static int set_kv(const char* k, const char* v)
 33 	if (strcmp(k, "http_io_timeout") == 0) {
 34 		char* end = NULL;
 35 		long t = strtol(v, &end, 10);
 36-		if (!end || *end != '\0')
 37-			return -1;
 38 
 39-		if (t < 1 || t > 300)
 40+		if (end == v || *end != '\0') {
 41+			LOG(true, "CONF", "Config Error       %s invalid integer '%s'", k, v);
 42 			return -1;
 43+		}
 44+		if (t < 1 || t > 300) {
 45+			LOG(true, "CONF", "Config Error       http_io_timeout too %s (1..300)", t > 300 ? "high" : "low");
 46+			return -1;
 47+		}
 48 
 49 		http_io_timeout = (int)t;
 50 		return 0;
 51@@ -130,11 +140,15 @@ static int set_kv(const char* k, const char* v)
 52 	if (strcmp(k, "max_clients") == 0) {
 53 		char* end = NULL;
 54 		long n = strtol(v, &end, 10);
 55-		if (!end || *end != '\0')
 56-			return -1;
 57 
 58-		if (n < 1 || n > 1024)
 59+		if (end == v || *end != '\0') {
 60+			LOG(true, "CONF", "Config Error       %s invalid integer '%s'", k, v);
 61+			return -1;
 62+		}
 63+		if (n < 1 || n > 1024) {
 64+			LOG(true, "CONF", "Config Error       max_clients too %s (1..1024)", n > 1024 ? "high" : "low");
 65 			return -1;
 66+		}
 67 
 68 		max_clients = (int)n;
 69 		return 0;
 70@@ -142,18 +156,28 @@ static int set_kv(const char* k, const char* v)
 71 
 72 	/* auth */
 73 	if (strcmp(k, "user") == 0) {
 74-		return users_push(v);
 75+		int r = users_push(v);
 76+		if (r < 0)
 77+			LOG(true, "CONF", "Config Error       user invalid '%s'", v);
 78+		return r;
 79 	}
 80 
 81 	if (strcmp(k, "pass") == 0) {
 82-		return users_set_pass(v);
 83+		int r = users_set_pass(v);
 84+		if (r < 0)
 85+			LOG(true, "CONF", "Config Error       pass invalid '%s'", v);
 86+		return r;
 87 	}
 88 
 89 	if (strcmp(k, "allow") == 0) {
 90-		return users_add_allow(v);
 91+		int r = users_add_allow(v);
 92+		if (r < 0)
 93+			LOG(true, "CONF", "Config Error       allow invalid '%s'", v);
 94+		return r;
 95 	}
 96 
 97 	/* unknown key */
 98+	LOG(true, "CONF", "Unknown Key Value  %s=%s", k, v);
 99 	return 0;
100 }
101 
102@@ -193,7 +217,7 @@ void config_load(void)
103 		goto log;
104 	}
105 
106-	LOG(true, "CONF", "Unable to load configuration... using defaults", e);
107+	LOG(true, "CONF", "Unable to load configuration... using defaults");
108 	return;
109 
110 log: