X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=configfile.c;fp=configfile.c;h=0faf1e5dbcccdbdd8a2231773762ce56086041fe;hb=ab5d8a35c1c111f64137f76939c68365cf4d22fb;hp=3b15403e1575c814a40f3f915018c98c89aea430;hpb=c00b46344cce7b05d6e0db74359de1971d2d09ec;p=nbtscanner diff --git a/configfile.c b/configfile.c index 3b15403..0faf1e5 100644 --- a/configfile.c +++ b/configfile.c @@ -38,12 +38,19 @@ int retry_time; int delay_time; 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; @@ -59,6 +66,8 @@ void parse_configfile(int do_scan) delay_time = 100; verbosity = 2; + ranges = 0; + use_mysql = 0; strcpy(mysql_host, "no_host_given"); strcpy(mysql_username, "no_username_given"); @@ -83,13 +92,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 +135,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); @@ -139,6 +148,10 @@ void parse_keyword(char *keyword, char *value, int lineno, int do_scan) parse_int(value, &delay_time, 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 +161,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 +254,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)