comparison src/core/ngx_conf_file.c @ 435:5cdc4838d4e8

nginx-0.0.11-2004-09-22-20:18:21 import
author Igor Sysoev <igor@sysoev.ru>
date Wed, 22 Sep 2004 16:18:21 +0000
parents b9bd635011de
children f390d1775430
comparison
equal deleted inserted replaced
434:8998b09f89e9 435:5cdc4838d4e8
643 643
644 char *ngx_conf_set_flag_slot(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) 644 char *ngx_conf_set_flag_slot(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
645 { 645 {
646 char *p = conf; 646 char *p = conf;
647 647
648 ngx_flag_t flag; 648 ngx_str_t *value;
649 ngx_str_t *value; 649 ngx_flag_t *fp;
650 650 ngx_conf_post_t *post;
651 651
652 if (*(ngx_flag_t *) (p + cmd->offset) != NGX_CONF_UNSET) { 652 fp = (ngx_flag_t *) (p + cmd->offset);
653
654 if (*fp != NGX_CONF_UNSET) {
653 return "is duplicate"; 655 return "is duplicate";
654 } 656 }
655 657
656 value = cf->args->elts; 658 value = cf->args->elts;
657 659
658 if (ngx_strcasecmp(value[1].data, "on") == 0) { 660 if (ngx_strcasecmp(value[1].data, "on") == 0) {
659 flag = 1; 661 *fp = 1;
660 662
661 } else if (ngx_strcasecmp(value[1].data, "off") == 0) { 663 } else if (ngx_strcasecmp(value[1].data, "off") == 0) {
662 flag = 0; 664 *fp = 0;
663 665
664 } else { 666 } else {
665 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, 667 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
666 "invalid value \"%s\" in \"%s\" directive, " 668 "invalid value \"%s\" in \"%s\" directive, "
667 "it must be \"on\" or \"off\"", 669 "it must be \"on\" or \"off\"",
668 value[1].data, cmd->name.data); 670 value[1].data, cmd->name.data);
669 return NGX_CONF_ERROR; 671 return NGX_CONF_ERROR;
670 } 672 }
671 673
672 *(ngx_flag_t *) (p + cmd->offset) = flag; 674 if (cmd->post) {
675 post = cmd->post;
676 return post->post_handler(cf, post, fp);
677 }
673 678
674 return NGX_CONF_OK; 679 return NGX_CONF_OK;
675 } 680 }
676 681
677 682