X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=configfile.c;h=f8350c067c3d3bf0aa8384b6539366635eb92b89;hb=refs%2Fheads%2Fmaster;hp=3b15403e1575c814a40f3f915018c98c89aea430;hpb=c00b46344cce7b05d6e0db74359de1971d2d09ec;p=nbtscanner diff --git a/configfile.c b/configfile.c index 3b15403..f8350c0 100644 --- a/configfile.c +++ b/configfile.c @@ -36,14 +36,22 @@ int num_retries; int retry_time; int delay_time; +int ghost_lifetime; int verbosity; +int scan_interval; +int scan_wait; + +struct in_addr scanrange[NUM_RANGES]; +int scanrangesize[NUM_RANGES]; +int ranges; + int use_mysql; char mysql_host[64]; char mysql_username[32]; char mysql_password[32]; -void parse_configfile(int do_scan) +void parse_configfile() { FILE *configfile = fopen("nbtscanner.conf", "r"); int lineno = 0; @@ -57,8 +65,11 @@ void parse_configfile(int do_scan) num_retries = 3; retry_time = 5000; delay_time = 100; + ghost_lifetime = 1800; verbosity = 2; + ranges = 0; + use_mysql = 0; strcpy(mysql_host, "no_host_given"); strcpy(mysql_username, "no_username_given"); @@ -83,13 +94,13 @@ void parse_configfile(int do_scan) continue; } - parse_line(buf, lineno, do_scan); + parse_line(buf, lineno); } fclose(configfile); } -void parse_line(char *buf, int lineno, int do_scan) +void parse_line(char *buf, int lineno) { char *ptr = strchr(buf, '='); @@ -126,10 +137,10 @@ void parse_line(char *buf, int lineno, int do_scan) } /* finally pass it on to the keyword checker */ - parse_keyword(buf, ptr, lineno, do_scan); + parse_keyword(buf, ptr, lineno); } -void parse_keyword(char *keyword, char *value, int lineno, int do_scan) +void parse_keyword(char *keyword, char *value, int lineno) { if (strcasecmp(keyword, "num_retries") == 0) { parse_int(value, &num_retries, lineno); @@ -137,8 +148,14 @@ void parse_keyword(char *keyword, char *value, int lineno, int do_scan) parse_int(value, &retry_time, lineno); } else if (strcasecmp(keyword, "delay_time") == 0) { parse_int(value, &delay_time, lineno); + } else if (strcasecmp(keyword, "ghost_lifetime") == 0) { + parse_int(value, &ghost_lifetime, lineno); } else if (strcasecmp(keyword, "verbosity") == 0) { parse_int(value, &verbosity, lineno); + } else if (strcasecmp(keyword, "scan_interval") == 0) { + parse_int(value, &scan_interval, lineno); + } else if (strcasecmp(keyword, "scan_wait") == 0) { + parse_int(value, &scan_wait, lineno); } else if (strcasecmp(keyword, "use_mysql") == 0) { parse_int(value, &use_mysql, lineno); } else if (strcasecmp(keyword, "mysql_host") == 0) { @@ -148,11 +165,7 @@ void parse_keyword(char *keyword, char *value, int lineno, int do_scan) } else if (strcasecmp(keyword, "mysql_password") == 0) { strcpy(mysql_password, value); } else if (strcasecmp(keyword, "range") == 0) { - /* really ugly to have here */ - if (use_mysql) { - init_mysql(mysql_host, mysql_username, mysql_password); - } - if (do_scan) parse_range(value, lineno); + parse_range(value, lineno); } else { char buf[1024]; sprintf(buf, "Unknown keyword `%s'", keyword); @@ -245,7 +258,8 @@ void parse_range(char *string, int lineno) } } - scan_range(in, rangesize); + memcpy((char *)(&(scanrange[ranges])), (char *)(&in), sizeof(in)); + scanrangesize[ranges++] = rangesize; } void line_error(int lineno, char *err_str)