Browse Source

conf: optimize badconfig log

Nick Peng 3 years ago
parent
commit
4e2161c6fc
5 changed files with 17 additions and 12 deletions
  1. 7 5
      src/dns_conf.c
  2. 1 0
      src/include/conf.h
  3. 1 0
      src/lib/conf.c
  4. 7 6
      src/smartdns.c
  5. 1 1
      src/util.c

+ 7 - 5
src/dns_conf.c

@@ -1917,14 +1917,16 @@ static struct config_item _config_item[] = {
 
 static int _conf_printf(const char *file, int lineno, int ret)
 {
-	if (ret == CONF_RET_ERR) {
-		tlog(TLOG_ERROR, "process config file '%s' failed at line %d.", file, lineno);
-		syslog(LOG_NOTICE, "process config file '%s' failed at line %d.", file, lineno);
-		return -1;
-	} else if (ret == CONF_RET_WARN) {
+	switch (ret) {
+	case CONF_RET_ERR:
+	case CONF_RET_WARN:
+	case CONF_RET_BADCONF:
 		tlog(TLOG_WARN, "process config file '%s' failed at line %d.", file, lineno);
 		syslog(LOG_NOTICE, "process config file '%s' failed at line %d.", file, lineno);
 		return -1;
+		break;
+	default:
+		break;
 	}
 
 	return 0;

+ 1 - 0
src/include/conf.h

@@ -30,6 +30,7 @@
 #define CONF_RET_ERR -1
 #define CONF_RET_WARN -2
 #define CONF_RET_NOENT -3
+#define CONF_RET_BADCONF -4
 
 struct config_item {
 	const char *item;

+ 1 - 0
src/lib/conf.c

@@ -262,6 +262,7 @@ int load_conf_file(const char *file, struct config_item *items, conf_error_handl
 
 		/* if field format is not key = value, error */
 		if (filed_num != 2) {
+			handler(file, line_no, CONF_RET_BADCONF);
 			goto errout;
 		}
 

+ 7 - 6
src/smartdns.c

@@ -506,6 +506,11 @@ int main(int argc, char *argv[])
 		}
 	}
 
+	if (dns_server_load_conf(config_file) != 0) {
+		fprintf(stderr, "load config failed.\n");
+		goto errout;
+	}
+
 	if (is_forground == 0) {
 		if (daemon(0, 0) < 0) {
 			fprintf(stderr, "run daemon process failed, %s\n", strerror(errno));
@@ -522,10 +527,8 @@ int main(int argc, char *argv[])
 	}
 
 	signal(SIGPIPE, SIG_IGN);
-	if (dns_server_load_conf(config_file) != 0) {
-		fprintf(stderr, "load config failed.\n");
-		goto errout;
-	}
+	signal(SIGINT, _sig_exit);
+	signal(SIGTERM, _sig_exit);
 
 	drop_root_privilege();
 
@@ -535,8 +538,6 @@ int main(int argc, char *argv[])
 		goto errout;
 	}
 
-	signal(SIGINT, _sig_exit);
-	signal(SIGTERM, _sig_exit);
 	atexit(_smartdns_exit);
 
 	return _smartdns_run();

+ 1 - 1
src/util.c

@@ -77,7 +77,7 @@
 
 #define NETLINK_ALIGN(len) (((len) + 3) & ~(3))
 
-#define BUFF_SZ 256
+#define BUFF_SZ 1024
 
 struct ipset_netlink_attr {
 	unsigned short len;