diff options
| -rw-r--r-- | plugins/check_nt.c | 148 |
1 files changed, 54 insertions, 94 deletions
diff --git a/plugins/check_nt.c b/plugins/check_nt.c index 4b9f8c48..7897558b 100644 --- a/plugins/check_nt.c +++ b/plugins/check_nt.c | |||
| @@ -81,40 +81,6 @@ static void print_help(void); | |||
| 81 | void print_usage(void); | 81 | void print_usage(void); |
| 82 | 82 | ||
| 83 | int main(int argc, char **argv) { | 83 | int main(int argc, char **argv) { |
| 84 | |||
| 85 | /* should be int result = STATE_UNKNOWN; */ | ||
| 86 | |||
| 87 | int return_code = STATE_UNKNOWN; | ||
| 88 | char *send_buffer = NULL; | ||
| 89 | char *output_message = NULL; | ||
| 90 | char *perfdata = NULL; | ||
| 91 | char *temp_string = NULL; | ||
| 92 | char *temp_string_perf = NULL; | ||
| 93 | char *description = NULL, *counter_unit = NULL; | ||
| 94 | char *minval = NULL, *maxval = NULL, *errcvt = NULL; | ||
| 95 | char *fds = NULL, *tds = NULL; | ||
| 96 | char *numstr; | ||
| 97 | |||
| 98 | double total_disk_space = 0; | ||
| 99 | double free_disk_space = 0; | ||
| 100 | double percent_used_space = 0; | ||
| 101 | double warning_used_space = 0; | ||
| 102 | double critical_used_space = 0; | ||
| 103 | double mem_commitLimit = 0; | ||
| 104 | double mem_commitByte = 0; | ||
| 105 | double fminval = 0, fmaxval = 0; | ||
| 106 | unsigned long utilization; | ||
| 107 | unsigned long uptime; | ||
| 108 | unsigned long age_in_minutes; | ||
| 109 | double counter_value = 0.0; | ||
| 110 | int offset = 0; | ||
| 111 | int updays = 0; | ||
| 112 | int uphours = 0; | ||
| 113 | int upminutes = 0; | ||
| 114 | |||
| 115 | bool isPercent = false; | ||
| 116 | bool allRight = false; | ||
| 117 | |||
| 118 | setlocale(LC_ALL, ""); | 84 | setlocale(LC_ALL, ""); |
| 119 | bindtextdomain(PACKAGE, LOCALEDIR); | 85 | bindtextdomain(PACKAGE, LOCALEDIR); |
| 120 | textdomain(PACKAGE); | 86 | textdomain(PACKAGE); |
| @@ -132,10 +98,17 @@ int main(int argc, char **argv) { | |||
| 132 | /* set socket timeout */ | 98 | /* set socket timeout */ |
| 133 | alarm(socket_timeout); | 99 | alarm(socket_timeout); |
| 134 | 100 | ||
| 101 | int return_code = STATE_UNKNOWN; | ||
| 102 | char *send_buffer = NULL; | ||
| 103 | char *output_message = NULL; | ||
| 104 | char *perfdata = NULL; | ||
| 105 | char *temp_string = NULL; | ||
| 106 | char *temp_string_perf = NULL; | ||
| 107 | char *description = NULL; | ||
| 108 | char *counter_unit = NULL; | ||
| 109 | char *errcvt = NULL; | ||
| 135 | switch (vars_to_check) { | 110 | switch (vars_to_check) { |
| 136 | |||
| 137 | case CHECK_CLIENTVERSION: | 111 | case CHECK_CLIENTVERSION: |
| 138 | |||
| 139 | xasprintf(&send_buffer, "%s&1", req_password); | 112 | xasprintf(&send_buffer, "%s&1", req_password); |
| 140 | fetch_data(server_address, server_port, send_buffer); | 113 | fetch_data(server_address, server_port, send_buffer); |
| 141 | if (value_list != NULL && strcmp(recv_buffer, value_list) != 0) { | 114 | if (value_list != NULL && strcmp(recv_buffer, value_list) != 0) { |
| @@ -146,9 +119,7 @@ int main(int argc, char **argv) { | |||
| 146 | return_code = STATE_OK; | 119 | return_code = STATE_OK; |
| 147 | } | 120 | } |
| 148 | break; | 121 | break; |
| 149 | |||
| 150 | case CHECK_CPULOAD: | 122 | case CHECK_CPULOAD: |
| 151 | |||
| 152 | if (value_list == NULL) { | 123 | if (value_list == NULL) { |
| 153 | output_message = strdup(_("missing -l parameters")); | 124 | output_message = strdup(_("missing -l parameters")); |
| 154 | } else if (!strtoularray(lvalue_list, value_list, ",")) { | 125 | } else if (!strtoularray(lvalue_list, value_list, ",")) { |
| @@ -160,6 +131,7 @@ int main(int argc, char **argv) { | |||
| 160 | temp_string_perf = strdup(" "); | 131 | temp_string_perf = strdup(" "); |
| 161 | 132 | ||
| 162 | /* loop until one of the parameters is wrong or not present */ | 133 | /* loop until one of the parameters is wrong or not present */ |
| 134 | int offset = 0; | ||
| 163 | while (lvalue_list[0 + offset] > (unsigned long)0 && lvalue_list[0 + offset] <= (unsigned long)17280 && | 135 | while (lvalue_list[0 + offset] > (unsigned long)0 && lvalue_list[0 + offset] <= (unsigned long)17280 && |
| 164 | lvalue_list[1 + offset] > (unsigned long)0 && lvalue_list[1 + offset] <= (unsigned long)100 && | 136 | lvalue_list[1 + offset] > (unsigned long)0 && lvalue_list[1 + offset] <= (unsigned long)100 && |
| 165 | lvalue_list[2 + offset] > (unsigned long)0 && lvalue_list[2 + offset] <= (unsigned long)100) { | 137 | lvalue_list[2 + offset] > (unsigned long)0 && lvalue_list[2 + offset] <= (unsigned long)100) { |
| @@ -168,7 +140,7 @@ int main(int argc, char **argv) { | |||
| 168 | xasprintf(&send_buffer, "%s&2&%lu", req_password, lvalue_list[0 + offset]); | 140 | xasprintf(&send_buffer, "%s&2&%lu", req_password, lvalue_list[0 + offset]); |
| 169 | fetch_data(server_address, server_port, send_buffer); | 141 | fetch_data(server_address, server_port, send_buffer); |
| 170 | 142 | ||
| 171 | utilization = strtoul(recv_buffer, NULL, 10); | 143 | unsigned long utilization = strtoul(recv_buffer, NULL, 10); |
| 172 | 144 | ||
| 173 | /* Check if any of the request is in a warning or critical state */ | 145 | /* Check if any of the request is in a warning or critical state */ |
| 174 | if (utilization >= lvalue_list[2 + offset]) { | 146 | if (utilization >= lvalue_list[2 + offset]) { |
| @@ -193,9 +165,7 @@ int main(int argc, char **argv) { | |||
| 193 | } | 165 | } |
| 194 | } | 166 | } |
| 195 | break; | 167 | break; |
| 196 | |||
| 197 | case CHECK_UPTIME: | 168 | case CHECK_UPTIME: |
| 198 | |||
| 199 | if (value_list == NULL) { | 169 | if (value_list == NULL) { |
| 200 | value_list = "minutes"; | 170 | value_list = "minutes"; |
| 201 | } | 171 | } |
| @@ -206,10 +176,10 @@ int main(int argc, char **argv) { | |||
| 206 | } else { | 176 | } else { |
| 207 | xasprintf(&send_buffer, "%s&3", req_password); | 177 | xasprintf(&send_buffer, "%s&3", req_password); |
| 208 | fetch_data(server_address, server_port, send_buffer); | 178 | fetch_data(server_address, server_port, send_buffer); |
| 209 | uptime = strtoul(recv_buffer, NULL, 10); | 179 | unsigned long uptime = strtoul(recv_buffer, NULL, 10); |
| 210 | updays = uptime / 86400; | 180 | int updays = uptime / 86400; |
| 211 | uphours = (uptime % 86400) / 3600; | 181 | int uphours = (uptime % 86400) / 3600; |
| 212 | upminutes = ((uptime % 86400) % 3600) / 60; | 182 | int upminutes = ((uptime % 86400) % 3600) / 60; |
| 213 | 183 | ||
| 214 | if (!strncmp(value_list, "minutes", strlen("minutes"))) { | 184 | if (!strncmp(value_list, "minutes", strlen("minutes"))) { |
| 215 | uptime = uptime / 60; | 185 | uptime = uptime / 60; |
| @@ -232,9 +202,7 @@ int main(int argc, char **argv) { | |||
| 232 | } | 202 | } |
| 233 | } | 203 | } |
| 234 | break; | 204 | break; |
| 235 | |||
| 236 | case CHECK_USEDDISKSPACE: | 205 | case CHECK_USEDDISKSPACE: |
| 237 | |||
| 238 | if (value_list == NULL) { | 206 | if (value_list == NULL) { |
| 239 | output_message = strdup(_("missing -l parameters")); | 207 | output_message = strdup(_("missing -l parameters")); |
| 240 | } else if (strlen(value_list) != 1) { | 208 | } else if (strlen(value_list) != 1) { |
| @@ -242,8 +210,10 @@ int main(int argc, char **argv) { | |||
| 242 | } else { | 210 | } else { |
| 243 | xasprintf(&send_buffer, "%s&4&%s", req_password, value_list); | 211 | xasprintf(&send_buffer, "%s&4&%s", req_password, value_list); |
| 244 | fetch_data(server_address, server_port, send_buffer); | 212 | fetch_data(server_address, server_port, send_buffer); |
| 245 | fds = strtok(recv_buffer, "&"); | 213 | char *fds = strtok(recv_buffer, "&"); |
| 246 | tds = strtok(NULL, "&"); | 214 | char *tds = strtok(NULL, "&"); |
| 215 | double total_disk_space = 0; | ||
| 216 | double free_disk_space = 0; | ||
| 247 | if (fds != NULL) { | 217 | if (fds != NULL) { |
| 248 | free_disk_space = atof(fds); | 218 | free_disk_space = atof(fds); |
| 249 | } | 219 | } |
| @@ -252,9 +222,9 @@ int main(int argc, char **argv) { | |||
| 252 | } | 222 | } |
| 253 | 223 | ||
| 254 | if (total_disk_space > 0 && free_disk_space >= 0) { | 224 | if (total_disk_space > 0 && free_disk_space >= 0) { |
| 255 | percent_used_space = ((total_disk_space - free_disk_space) / total_disk_space) * 100; | 225 | double percent_used_space = ((total_disk_space - free_disk_space) / total_disk_space) * 100; |
| 256 | warning_used_space = ((float)warning_value / 100) * total_disk_space; | 226 | double warning_used_space = ((float)warning_value / 100) * total_disk_space; |
| 257 | critical_used_space = ((float)critical_value / 100) * total_disk_space; | 227 | double critical_used_space = ((float)critical_value / 100) * total_disk_space; |
| 258 | 228 | ||
| 259 | xasprintf(&temp_string, _("%s:\\ - total: %.2f Gb - used: %.2f Gb (%.0f%%) - free %.2f Gb (%.0f%%)"), value_list, | 229 | xasprintf(&temp_string, _("%s:\\ - total: %.2f Gb - used: %.2f Gb (%.0f%%) - free %.2f Gb (%.0f%%)"), value_list, |
| 260 | total_disk_space / 1073741824, (total_disk_space - free_disk_space) / 1073741824, percent_used_space, | 230 | total_disk_space / 1073741824, (total_disk_space - free_disk_space) / 1073741824, percent_used_space, |
| @@ -279,10 +249,8 @@ int main(int argc, char **argv) { | |||
| 279 | } | 249 | } |
| 280 | } | 250 | } |
| 281 | break; | 251 | break; |
| 282 | |||
| 283 | case CHECK_SERVICESTATE: | 252 | case CHECK_SERVICESTATE: |
| 284 | case CHECK_PROCSTATE: | 253 | case CHECK_PROCSTATE: |
| 285 | |||
| 286 | if (value_list == NULL) { | 254 | if (value_list == NULL) { |
| 287 | output_message = strdup(_("No service/process specified")); | 255 | output_message = strdup(_("No service/process specified")); |
| 288 | } else { | 256 | } else { |
| @@ -290,7 +258,7 @@ int main(int argc, char **argv) { | |||
| 290 | xasprintf(&send_buffer, "%s&%u&%s&%s", req_password, (vars_to_check == CHECK_SERVICESTATE) ? 5 : 6, | 258 | xasprintf(&send_buffer, "%s&%u&%s&%s", req_password, (vars_to_check == CHECK_SERVICESTATE) ? 5 : 6, |
| 291 | (show_all) ? "ShowAll" : "ShowFail", value_list); | 259 | (show_all) ? "ShowAll" : "ShowFail", value_list); |
| 292 | fetch_data(server_address, server_port, send_buffer); | 260 | fetch_data(server_address, server_port, send_buffer); |
| 293 | numstr = strtok(recv_buffer, "&"); | 261 | char *numstr = strtok(recv_buffer, "&"); |
| 294 | if (numstr == NULL) { | 262 | if (numstr == NULL) { |
| 295 | die(STATE_UNKNOWN, _("could not fetch information from server\n")); | 263 | die(STATE_UNKNOWN, _("could not fetch information from server\n")); |
| 296 | } | 264 | } |
| @@ -299,24 +267,22 @@ int main(int argc, char **argv) { | |||
| 299 | output_message = strdup(temp_string); | 267 | output_message = strdup(temp_string); |
| 300 | } | 268 | } |
| 301 | break; | 269 | break; |
| 302 | |||
| 303 | case CHECK_MEMUSE: | 270 | case CHECK_MEMUSE: |
| 304 | |||
| 305 | xasprintf(&send_buffer, "%s&7", req_password); | 271 | xasprintf(&send_buffer, "%s&7", req_password); |
| 306 | fetch_data(server_address, server_port, send_buffer); | 272 | fetch_data(server_address, server_port, send_buffer); |
| 307 | numstr = strtok(recv_buffer, "&"); | 273 | char *numstr = strtok(recv_buffer, "&"); |
| 308 | if (numstr == NULL) { | 274 | if (numstr == NULL) { |
| 309 | die(STATE_UNKNOWN, _("could not fetch information from server\n")); | 275 | die(STATE_UNKNOWN, _("could not fetch information from server\n")); |
| 310 | } | 276 | } |
| 311 | mem_commitLimit = atof(numstr); | 277 | double mem_commitLimit = atof(numstr); |
| 312 | numstr = strtok(NULL, "&"); | 278 | numstr = strtok(NULL, "&"); |
| 313 | if (numstr == NULL) { | 279 | if (numstr == NULL) { |
| 314 | die(STATE_UNKNOWN, _("could not fetch information from server\n")); | 280 | die(STATE_UNKNOWN, _("could not fetch information from server\n")); |
| 315 | } | 281 | } |
| 316 | mem_commitByte = atof(numstr); | 282 | double mem_commitByte = atof(numstr); |
| 317 | percent_used_space = (mem_commitByte / mem_commitLimit) * 100; | 283 | double percent_used_space = (mem_commitByte / mem_commitLimit) * 100; |
| 318 | warning_used_space = ((float)warning_value / 100) * mem_commitLimit; | 284 | double warning_used_space = ((float)warning_value / 100) * mem_commitLimit; |
| 319 | critical_used_space = ((float)critical_value / 100) * mem_commitLimit; | 285 | double critical_used_space = ((float)critical_value / 100) * mem_commitLimit; |
| 320 | 286 | ||
| 321 | /* Divisor should be 1048567, not 3044515, as we are measuring "Commit Charge" here, | 287 | /* Divisor should be 1048567, not 3044515, as we are measuring "Commit Charge" here, |
| 322 | which equals RAM + Pagefiles. */ | 288 | which equals RAM + Pagefiles. */ |
| @@ -334,9 +300,7 @@ int main(int argc, char **argv) { | |||
| 334 | } | 300 | } |
| 335 | 301 | ||
| 336 | break; | 302 | break; |
| 337 | |||
| 338 | case CHECK_COUNTER: | 303 | case CHECK_COUNTER: |
| 339 | |||
| 340 | /* | 304 | /* |
| 341 | CHECK_COUNTER has been modified to provide extensive perfdata information. | 305 | CHECK_COUNTER has been modified to provide extensive perfdata information. |
| 342 | In order to do this, some modifications have been done to the code | 306 | In order to do this, some modifications have been done to the code |
| @@ -358,11 +322,12 @@ int main(int argc, char **argv) { | |||
| 358 | strange things will happen when you make graphs of your data. | 322 | strange things will happen when you make graphs of your data. |
| 359 | */ | 323 | */ |
| 360 | 324 | ||
| 325 | double counter_value = 0.0; | ||
| 361 | if (value_list == NULL) { | 326 | if (value_list == NULL) { |
| 362 | output_message = strdup(_("No counter specified")); | 327 | output_message = strdup(_("No counter specified")); |
| 363 | } else { | 328 | } else { |
| 364 | preparelist(value_list); /* replace , between services with & to send the request */ | 329 | preparelist(value_list); /* replace , between services with & to send the request */ |
| 365 | isPercent = (strchr(value_list, '%') != NULL); | 330 | bool isPercent = (strchr(value_list, '%') != NULL); |
| 366 | 331 | ||
| 367 | strtok(value_list, "&"); /* burn the first parameters */ | 332 | strtok(value_list, "&"); /* burn the first parameters */ |
| 368 | description = strtok(NULL, "&"); | 333 | description = strtok(NULL, "&"); |
| @@ -371,6 +336,7 @@ int main(int argc, char **argv) { | |||
| 371 | fetch_data(server_address, server_port, send_buffer); | 336 | fetch_data(server_address, server_port, send_buffer); |
| 372 | counter_value = atof(recv_buffer); | 337 | counter_value = atof(recv_buffer); |
| 373 | 338 | ||
| 339 | bool allRight = false; | ||
| 374 | if (description == NULL) { | 340 | if (description == NULL) { |
| 375 | xasprintf(&output_message, "%.f", counter_value); | 341 | xasprintf(&output_message, "%.f", counter_value); |
| 376 | } else if (isPercent) { | 342 | } else if (isPercent) { |
| @@ -378,6 +344,10 @@ int main(int argc, char **argv) { | |||
| 378 | allRight = true; | 344 | allRight = true; |
| 379 | } | 345 | } |
| 380 | 346 | ||
| 347 | char *minval = NULL; | ||
| 348 | char *maxval = NULL; | ||
| 349 | double fminval = 0; | ||
| 350 | double fmaxval = 0; | ||
| 381 | if ((counter_unit != NULL) && (!allRight)) { | 351 | if ((counter_unit != NULL) && (!allRight)) { |
| 382 | minval = strtok(NULL, "&"); | 352 | minval = strtok(NULL, "&"); |
| 383 | maxval = strtok(NULL, "&"); | 353 | maxval = strtok(NULL, "&"); |
| @@ -434,14 +404,13 @@ int main(int argc, char **argv) { | |||
| 434 | break; | 404 | break; |
| 435 | 405 | ||
| 436 | case CHECK_FILEAGE: | 406 | case CHECK_FILEAGE: |
| 437 | |||
| 438 | if (value_list == NULL) { | 407 | if (value_list == NULL) { |
| 439 | output_message = strdup(_("No counter specified")); | 408 | output_message = strdup(_("No counter specified")); |
| 440 | } else { | 409 | } else { |
| 441 | preparelist(value_list); /* replace , between services with & to send the request */ | 410 | preparelist(value_list); /* replace , between services with & to send the request */ |
| 442 | xasprintf(&send_buffer, "%s&9&%s", req_password, value_list); | 411 | xasprintf(&send_buffer, "%s&9&%s", req_password, value_list); |
| 443 | fetch_data(server_address, server_port, send_buffer); | 412 | fetch_data(server_address, server_port, send_buffer); |
| 444 | age_in_minutes = atoi(strtok(recv_buffer, "&")); | 413 | unsigned long age_in_minutes = atoi(strtok(recv_buffer, "&")); |
| 445 | description = strtok(NULL, "&"); | 414 | description = strtok(NULL, "&"); |
| 446 | output_message = strdup(description); | 415 | output_message = strdup(description); |
| 447 | 416 | ||
| @@ -499,9 +468,6 @@ int main(int argc, char **argv) { | |||
| 499 | 468 | ||
| 500 | /* process command-line arguments */ | 469 | /* process command-line arguments */ |
| 501 | int process_arguments(int argc, char **argv) { | 470 | int process_arguments(int argc, char **argv) { |
| 502 | int c; | ||
| 503 | |||
| 504 | int option = 0; | ||
| 505 | static struct option longopts[] = {{"port", required_argument, 0, 'p'}, | 471 | static struct option longopts[] = {{"port", required_argument, 0, 'p'}, |
| 506 | {"timeout", required_argument, 0, 't'}, | 472 | {"timeout", required_argument, 0, 't'}, |
| 507 | {"critical", required_argument, 0, 'c'}, | 473 | {"critical", required_argument, 0, 'c'}, |
| @@ -529,24 +495,25 @@ int process_arguments(int argc, char **argv) { | |||
| 529 | argc--; | 495 | argc--; |
| 530 | } | 496 | } |
| 531 | 497 | ||
| 532 | for (c = 1; c < argc; c++) { | 498 | for (int index = 1; index < argc; index++) { |
| 533 | if (strcmp("-to", argv[c]) == 0) { | 499 | if (strcmp("-to", argv[index]) == 0) { |
| 534 | strcpy(argv[c], "-t"); | 500 | strcpy(argv[index], "-t"); |
| 535 | } else if (strcmp("-wv", argv[c]) == 0) { | 501 | } else if (strcmp("-wv", argv[index]) == 0) { |
| 536 | strcpy(argv[c], "-w"); | 502 | strcpy(argv[index], "-w"); |
| 537 | } else if (strcmp("-cv", argv[c]) == 0) { | 503 | } else if (strcmp("-cv", argv[index]) == 0) { |
| 538 | strcpy(argv[c], "-c"); | 504 | strcpy(argv[index], "-c"); |
| 539 | } | 505 | } |
| 540 | } | 506 | } |
| 541 | 507 | ||
| 542 | while (1) { | 508 | int option = 0; |
| 543 | c = getopt_long(argc, argv, "+hVH:t:c:w:p:v:l:s:d:u", longopts, &option); | 509 | while (true) { |
| 510 | int option_index = getopt_long(argc, argv, "+hVH:t:c:w:p:v:l:s:d:u", longopts, &option); | ||
| 544 | 511 | ||
| 545 | if (c == -1 || c == EOF || c == 1) { | 512 | if (option_index == -1 || option_index == EOF || option_index == 1) { |
| 546 | break; | 513 | break; |
| 547 | } | 514 | } |
| 548 | 515 | ||
| 549 | switch (c) { | 516 | switch (option_index) { |
| 550 | case '?': /* print short usage statement if args not parsable */ | 517 | case '?': /* print short usage statement if args not parsable */ |
| 551 | usage5(); | 518 | usage5(); |
| 552 | case 'h': /* help */ | 519 | case 'h': /* help */ |
| @@ -638,9 +605,7 @@ int process_arguments(int argc, char **argv) { | |||
| 638 | } | 605 | } |
| 639 | 606 | ||
| 640 | void fetch_data(const char *address, int port, const char *sendb) { | 607 | void fetch_data(const char *address, int port, const char *sendb) { |
| 641 | int result; | 608 | int result = process_tcp_request(address, port, sendb, recv_buffer, sizeof(recv_buffer)); |
| 642 | |||
| 643 | result = process_tcp_request(address, port, sendb, recv_buffer, sizeof(recv_buffer)); | ||
| 644 | 609 | ||
| 645 | if (result != STATE_OK) { | 610 | if (result != STATE_OK) { |
| 646 | die(result, _("could not fetch information from server\n")); | 611 | die(result, _("could not fetch information from server\n")); |
| @@ -653,15 +618,12 @@ void fetch_data(const char *address, int port, const char *sendb) { | |||
| 653 | 618 | ||
| 654 | bool strtoularray(unsigned long *array, char *string, const char *delim) { | 619 | bool strtoularray(unsigned long *array, char *string, const char *delim) { |
| 655 | /* split a <delim> delimited string into a long array */ | 620 | /* split a <delim> delimited string into a long array */ |
| 656 | int idx = 0; | 621 | for (int idx = 0; idx < MAX_VALUE_LIST; idx++) { |
| 657 | char *t1; | ||
| 658 | |||
| 659 | for (idx = 0; idx < MAX_VALUE_LIST; idx++) { | ||
| 660 | array[idx] = 0; | 622 | array[idx] = 0; |
| 661 | } | 623 | } |
| 662 | 624 | ||
| 663 | idx = 0; | 625 | int idx = 0; |
| 664 | for (t1 = strtok(string, delim); t1 != NULL; t1 = strtok(NULL, delim)) { | 626 | for (char *t1 = strtok(string, delim); t1 != NULL; t1 = strtok(NULL, delim)) { |
| 665 | if (is_numeric(t1) && idx < MAX_VALUE_LIST) { | 627 | if (is_numeric(t1) && idx < MAX_VALUE_LIST) { |
| 666 | array[idx] = strtoul(t1, NULL, 10); | 628 | array[idx] = strtoul(t1, NULL, 10); |
| 667 | idx++; | 629 | idx++; |
| @@ -674,9 +636,7 @@ bool strtoularray(unsigned long *array, char *string, const char *delim) { | |||
| 674 | 636 | ||
| 675 | void preparelist(char *string) { | 637 | void preparelist(char *string) { |
| 676 | /* Replace all , with & which is the delimiter for the request */ | 638 | /* Replace all , with & which is the delimiter for the request */ |
| 677 | int i; | 639 | for (int i = 0; (size_t)i < strlen(string); i++) { |
| 678 | |||
| 679 | for (i = 0; (size_t)i < strlen(string); i++) { | ||
| 680 | if (string[i] == ',') { | 640 | if (string[i] == ',') { |
| 681 | string[i] = '&'; | 641 | string[i] = '&'; |
| 682 | } | 642 | } |
