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 }