|
Lines 375-380
parse_config_file(struct configuration *config,
Link Here
|
| 375 |
char *fields[128]; |
375 |
char *fields[128]; |
| 376 |
int field_count, line_num, value; |
376 |
int field_count, line_num, value; |
| 377 |
int res; |
377 |
int res; |
|
|
378 |
int invalid_value; |
| 378 |
|
379 |
|
| 379 |
TRACE_IN(parse_config_file); |
380 |
TRACE_IN(parse_config_file); |
| 380 |
assert(config != NULL); |
381 |
assert(config != NULL); |
|
Lines 388-393
parse_config_file(struct configuration *config,
Link Here
|
| 388 |
|
389 |
|
| 389 |
res = 0; |
390 |
res = 0; |
| 390 |
line_num = 0; |
391 |
line_num = 0; |
|
|
392 |
invalid_value = 0; |
| 391 |
memset(buffer, 0, sizeof(buffer)); |
393 |
memset(buffer, 0, sizeof(buffer)); |
| 392 |
while ((res == 0) && (fgets(buffer, sizeof(buffer) - 1, fin) != NULL)) { |
394 |
while ((res == 0) && (fgets(buffer, sizeof(buffer) - 1, fin) != NULL)) { |
| 393 |
field_count = strbreak(buffer, fields, sizeof(fields)); |
395 |
field_count = strbreak(buffer, fields, sizeof(fields)); |
|
Lines 421-432
parse_config_file(struct configuration *config,
Link Here
|
| 421 |
(strcmp(fields[0], "positive-time-to-live") == 0) && |
423 |
(strcmp(fields[0], "positive-time-to-live") == 0) && |
| 422 |
(check_cachename(fields[1]) == 0) && |
424 |
(check_cachename(fields[1]) == 0) && |
| 423 |
((value = get_number(fields[2], 0, -1)) != -1)) { |
425 |
((value = get_number(fields[2], 0, -1)) != -1)) { |
|
|
426 |
if (value <= 0) { |
| 427 |
invalid_value = 1; |
| 428 |
break; |
| 429 |
} |
| 424 |
set_positive_time_to_live(config, |
430 |
set_positive_time_to_live(config, |
| 425 |
fields[1], value); |
431 |
fields[1], value); |
| 426 |
continue; |
432 |
continue; |
| 427 |
} else if ((field_count == 3) && |
433 |
} else if ((field_count == 3) && |
| 428 |
(strcmp(fields[0], "positive-confidence-threshold") == 0) && |
434 |
(strcmp(fields[0], "positive-confidence-threshold") == 0) && |
| 429 |
((value = get_number(fields[2], 1, -1)) != -1)) { |
435 |
((value = get_number(fields[2], 1, -1)) != -1)) { |
|
|
436 |
if (value <= 0) { |
| 437 |
invalid_value = 1; |
| 438 |
break; |
| 439 |
} |
| 430 |
set_positive_confidence_threshold(config, |
440 |
set_positive_confidence_threshold(config, |
| 431 |
fields[1], value); |
441 |
fields[1], value); |
| 432 |
continue; |
442 |
continue; |
|
Lines 450-461
parse_config_file(struct configuration *config,
Link Here
|
| 450 |
(strcmp(fields[0], "negative-time-to-live") == 0) && |
460 |
(strcmp(fields[0], "negative-time-to-live") == 0) && |
| 451 |
(check_cachename(fields[1]) == 0) && |
461 |
(check_cachename(fields[1]) == 0) && |
| 452 |
((value = get_number(fields[2], 0, -1)) != -1)) { |
462 |
((value = get_number(fields[2], 0, -1)) != -1)) { |
|
|
463 |
if (value <= 0) { |
| 464 |
invalid_value = 1; |
| 465 |
break; |
| 466 |
} |
| 453 |
set_negative_time_to_live(config, |
467 |
set_negative_time_to_live(config, |
| 454 |
fields[1], value); |
468 |
fields[1], value); |
| 455 |
continue; |
469 |
continue; |
| 456 |
} else if ((field_count == 3) && |
470 |
} else if ((field_count == 3) && |
| 457 |
(strcmp(fields[0], "negative-confidence-threshold") == 0) && |
471 |
(strcmp(fields[0], "negative-confidence-threshold") == 0) && |
| 458 |
((value = get_number(fields[2], 1, -1)) != -1)) { |
472 |
((value = get_number(fields[2], 1, -1)) != -1)) { |
|
|
473 |
if (value <= 0) { |
| 474 |
invalid_value = 1; |
| 475 |
break; |
| 476 |
} |
| 459 |
set_negative_confidence_threshold(config, |
477 |
set_negative_confidence_threshold(config, |
| 460 |
fields[1], value); |
478 |
fields[1], value); |
| 461 |
continue; |
479 |
continue; |
|
Lines 473-478
parse_config_file(struct configuration *config,
Link Here
|
| 473 |
(strcmp(fields[0], "suggested-size") == 0) && |
491 |
(strcmp(fields[0], "suggested-size") == 0) && |
| 474 |
(check_cachename(fields[1]) == 0) && |
492 |
(check_cachename(fields[1]) == 0) && |
| 475 |
((value = get_number(fields[2], 1, -1)) != -1)) { |
493 |
((value = get_number(fields[2], 1, -1)) != -1)) { |
|
|
494 |
if (value <= 0) { |
| 495 |
invalid_value = 1; |
| 496 |
break; |
| 497 |
} |
| 476 |
set_suggested_size(config, fields[1], value); |
498 |
set_suggested_size(config, fields[1], value); |
| 477 |
continue; |
499 |
continue; |
| 478 |
} |
500 |
} |
|
Lines 490-495
parse_config_file(struct configuration *config,
Link Here
|
| 490 |
(strcmp(fields[0], "keep-hot-count") == 0) && |
512 |
(strcmp(fields[0], "keep-hot-count") == 0) && |
| 491 |
(check_cachename(fields[1]) == 0) && |
513 |
(check_cachename(fields[1]) == 0) && |
| 492 |
((value = get_number(fields[2], 0, -1)) != -1)) { |
514 |
((value = get_number(fields[2], 0, -1)) != -1)) { |
|
|
515 |
if (value < 0) { |
| 516 |
invalid_value = 1; |
| 517 |
break; |
| 518 |
} |
| 493 |
set_keep_hot_count(config, |
519 |
set_keep_hot_count(config, |
| 494 |
fields[1], value); |
520 |
fields[1], value); |
| 495 |
continue; |
521 |
continue; |
|
Lines 508-517
parse_config_file(struct configuration *config,
Link Here
|
| 508 |
default: |
534 |
default: |
| 509 |
break; |
535 |
break; |
| 510 |
} |
536 |
} |
| 511 |
|
537 |
if ( invalid_value == 1){ |
| 512 |
LOG_ERR_2("config file parser", "error in file " |
538 |
LOG_ERR_2("invalid value for configuration", |
| 513 |
"%s on line %d", fname, line_num); |
539 |
"error in file %s on line %d", |
| 514 |
*error_str = "syntax error"; |
540 |
fname, line_num); |
|
|
541 |
*error_str = "invalid value"; |
| 542 |
} |
| 543 |
else { |
| 544 |
LOG_ERR_2("config file parser", "error in " |
| 545 |
"file %s on line %d", fname, line_num); |
| 546 |
*error_str = "syntax error"; |
| 547 |
} |
| 515 |
*error_line = line_num; |
548 |
*error_line = line_num; |
| 516 |
res = -1; |
549 |
res = -1; |
| 517 |
} |
550 |
} |