comparison 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
comparison
equal deleted inserted replaced
154:eac26585476e 155:46eb23d9471d
3 #include <ngx_core.h> 3 #include <ngx_core.h>
4 4
5 5
6 6
7 #define MAX_CONF_ERRSTR 256 7 #define MAX_CONF_ERRSTR 256
8
9 /* Ten fixed arguments */
8 10
9 static int argument_number[] = { 11 static int argument_number[] = {
10 NGX_CONF_NOARGS, 12 NGX_CONF_NOARGS,
11 NGX_CONF_TAKE1, 13 NGX_CONF_TAKE1,
12 NGX_CONF_TAKE2 14 NGX_CONF_TAKE2,
15 NGX_CONF_TAKE3,
16 NGX_CONF_TAKE4,
17 NGX_CONF_TAKE5,
18 NGX_CONF_TAKE6,
19 NGX_CONF_TAKE7,
20 NGX_CONF_TAKE8,
21 NGX_CONF_TAKE9,
22 NGX_CONF_TAKE10
13 }; 23 };
14 24
15 static int ngx_conf_read_token(ngx_conf_t *cf); 25 static int ngx_conf_read_token(ngx_conf_t *cf);
16 26
17 27
144 break; 154 break;
145 } 155 }
146 156
147 /* is the directive's argument count right ? */ 157 /* is the directive's argument count right ? */
148 158
149 if (cmd->type & argument_number[cf->args->nelts - 1]) { 159 if (cmd->type & NGX_CONF_ANY) {
150 valid = 1; 160 valid = 1;
161
162 } else if (cmd->type & NGX_CONF_FLAG) {
163
164 if (cf->args->nelts == 2) {
165 valid = 1;
166 } else {
167 valid = 0;
168 }
151 169
152 } else if (cmd->type & NGX_CONF_1MORE) { 170 } else if (cmd->type & NGX_CONF_1MORE) {
153 171
154 if (cf->args->nelts != 1) { 172 if (cf->args->nelts != 1) {
155 valid = 1; 173 valid = 1;
156 } else { 174 } else {
157 valid = 0; 175 valid = 0;
158 } 176 }
159 177
160 } else if (cmd->type & NGX_CONF_FLAG) { 178 } else if (cf->args->nelts <= 10
161 179 && (cmd->type
162 if (cf->args->nelts == 2) { 180 & argument_number[cf->args->nelts - 1]))
163 valid = 1; 181 {
164 } else {
165 valid = 0;
166 }
167
168 } else if (cmd->type & NGX_CONF_ANY) {
169 valid = 1; 182 valid = 1;
170 183
171 } else { 184 } else {
172 valid = 0; 185 valid = 0;
173 } 186 }
571 return "is duplicate"; 584 return "is duplicate";
572 } 585 }
573 586
574 value = (ngx_str_t *) cf->args->elts; 587 value = (ngx_str_t *) cf->args->elts;
575 588
576 field->len = value[1].len; 589 *field = value[1];
577 field->data = value[1].data;
578 590
579 return NGX_CONF_OK; 591 return NGX_CONF_OK;
580 } 592 }
581 593
582 594