Mercurial > hg > nginx
diff src/core/ngx_conf_file.c @ 155:46eb23d9471d
nginx-0.0.1-2003-10-22-20:38:26 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Wed, 22 Oct 2003 16:38:26 +0000 |
parents | 656d468f4ead |
children | afc333135a6b |
line wrap: on
line diff
--- a/src/core/ngx_conf_file.c Wed Oct 22 07:05:29 2003 +0000 +++ b/src/core/ngx_conf_file.c Wed Oct 22 16:38:26 2003 +0000 @@ -6,10 +6,20 @@ #define MAX_CONF_ERRSTR 256 +/* Ten fixed arguments */ + static int argument_number[] = { NGX_CONF_NOARGS, NGX_CONF_TAKE1, - NGX_CONF_TAKE2 + NGX_CONF_TAKE2, + NGX_CONF_TAKE3, + NGX_CONF_TAKE4, + NGX_CONF_TAKE5, + NGX_CONF_TAKE6, + NGX_CONF_TAKE7, + NGX_CONF_TAKE8, + NGX_CONF_TAKE9, + NGX_CONF_TAKE10 }; static int ngx_conf_read_token(ngx_conf_t *cf); @@ -146,9 +156,17 @@ /* is the directive's argument count right ? */ - if (cmd->type & argument_number[cf->args->nelts - 1]) { + if (cmd->type & NGX_CONF_ANY) { valid = 1; + } else if (cmd->type & NGX_CONF_FLAG) { + + if (cf->args->nelts == 2) { + valid = 1; + } else { + valid = 0; + } + } else if (cmd->type & NGX_CONF_1MORE) { if (cf->args->nelts != 1) { @@ -157,15 +175,10 @@ valid = 0; } - } else if (cmd->type & NGX_CONF_FLAG) { - - if (cf->args->nelts == 2) { - valid = 1; - } else { - valid = 0; - } - - } else if (cmd->type & NGX_CONF_ANY) { + } else if (cf->args->nelts <= 10 + && (cmd->type + & argument_number[cf->args->nelts - 1])) + { valid = 1; } else { @@ -573,8 +586,7 @@ value = (ngx_str_t *) cf->args->elts; - field->len = value[1].len; - field->data = value[1].data; + *field = value[1]; return NGX_CONF_OK; }