Mercurial > hg > nginx
comparison src/core/ngx_conf_file.c @ 83:a7e45c45a95c
nginx-0.0.1-2003-04-28-19:06:39 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 28 Apr 2003 15:06:39 +0000 |
parents | 59229033ae93 |
children | fab4cb00fe5b |
comparison
equal
deleted
inserted
replaced
82:fccdb921e8b8 | 83:a7e45c45a95c |
---|---|
430 } | 430 } |
431 | 431 |
432 | 432 |
433 char *ngx_conf_set_size_slot(ngx_conf_t *cf, ngx_command_t *cmd, char *conf) | 433 char *ngx_conf_set_size_slot(ngx_conf_t *cf, ngx_command_t *cmd, char *conf) |
434 { | 434 { |
435 int size; | 435 int size, len, scale; |
436 char last; | |
436 ngx_str_t *value; | 437 ngx_str_t *value; |
437 | 438 |
438 value = (ngx_str_t *) cf->args->elts; | 439 value = (ngx_str_t *) cf->args->elts; |
439 | 440 |
440 size = atoi(value[1].data); | 441 len = value[1].len; |
442 last = value[1].data[len - 1]; | |
443 | |
444 if (last == 'K' || last == 'k') { | |
445 len--; | |
446 scale = 1024; | |
447 | |
448 } else if (last == 'M' || last == 'm') { | |
449 len--; | |
450 scale = 1024 * 1024; | |
451 | |
452 } else { | |
453 scale = 1; | |
454 } | |
455 | |
456 size = ngx_atoi(value[1].data, len); | |
457 if (size == NGX_ERROR) { | |
458 return "value must be greater or equal to zero"; | |
459 } | |
460 | |
461 size *= scale; | |
462 | |
463 *(int *) (conf + cmd->offset) = size; | |
464 | |
465 return NGX_CONF_OK; | |
466 } | |
467 | |
468 | |
469 char *ngx_conf_set_time_slot(ngx_conf_t *cf, ngx_command_t *cmd, char *conf) | |
470 { | |
471 int size, len, scale; | |
472 char last; | |
473 ngx_str_t *value; | |
474 | |
475 value = (ngx_str_t *) cf->args->elts; | |
476 | |
477 len = value[1].len; | |
478 last = value[1].data[len - 1]; | |
479 | |
480 if (last == 'm') { | |
481 len--; | |
482 scale = 1000 * 60; | |
483 | |
484 } else if (last == 'h') { | |
485 len--; | |
486 scale = 1000 * 60 * 60; | |
487 | |
488 } else if (last == 'd') { | |
489 len--; | |
490 scale = 1000 * 60 * 60 * 24; | |
491 | |
492 } else if (last == 'w') { | |
493 len--; | |
494 scale = 1000 * 60 * 60 * 24 * 7; | |
495 | |
496 #if 0 /* overflow */ | |
497 | |
498 } else if (last == 'M') { | |
499 len--; | |
500 scale = 1000 * 60 * 60 * 24 * 30; | |
501 | |
502 } else if (last == 'y') { | |
503 len--; | |
504 scale = 1000 * 60 * 60 * 24 * 365; | |
505 | |
506 #endif | |
507 | |
508 } else if (last == 's') { | |
509 len--; | |
510 if (value[1].data[len - 1] == 'm') { | |
511 len--; | |
512 scale = 1; | |
513 | |
514 } else { | |
515 scale = 1000; | |
516 } | |
517 | |
518 } else { | |
519 scale = 1000; | |
520 } | |
521 | |
522 size = ngx_atoi(value[1].data, len); | |
441 if (size < 0) { | 523 if (size < 0) { |
442 return "value must be greater or equal to zero"; | 524 return "value must be greater or equal to zero"; |
443 } | 525 } |
444 | 526 |
527 size *= scale; | |
528 | |
445 *(int *) (conf + cmd->offset) = size; | 529 *(int *) (conf + cmd->offset) = size; |
446 | 530 |
447 return NGX_CONF_OK; | 531 return NGX_CONF_OK; |
448 } | 532 } |
449 | 533 |
450 | |
451 char *ngx_conf_set_time_slot(ngx_conf_t *cf, ngx_command_t *cmd, char *conf) | |
452 { | |
453 int size; | |
454 ngx_str_t *value; | |
455 | |
456 value = (ngx_str_t *) cf->args->elts; | |
457 | |
458 size = atoi(value[1].data); | |
459 if (size < 0) { | |
460 return "value must be greater or equal to zero"; | |
461 } | |
462 | |
463 *(int *) (conf + cmd->offset) = size * 1000; | |
464 | |
465 return NGX_CONF_OK; | |
466 } | |
467 | |
468 char *ngx_conf_unsupported(ngx_conf_t *cf, ngx_command_t *cmd, char *conf) | 534 char *ngx_conf_unsupported(ngx_conf_t *cf, ngx_command_t *cmd, char *conf) |
469 { | 535 { |
470 return "unsupported on this platform"; | 536 return "unsupported on this platform"; |
471 } | 537 } |