Mercurial > hg > nginx-quic
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 |