nginx-0.0.1-2003-10-22-20:38:26 import
diff --git a/src/core/ngx_conf_file.c b/src/core/ngx_conf_file.c
index c26aa17..70da2dc 100644
--- a/src/core/ngx_conf_file.c
+++ b/src/core/ngx_conf_file.c
@@ -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,17 +156,9 @@
/* 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_1MORE) {
-
- if (cf->args->nelts != 1) {
- valid = 1;
- } else {
- valid = 0;
- }
-
} else if (cmd->type & NGX_CONF_FLAG) {
if (cf->args->nelts == 2) {
@@ -165,7 +167,18 @@
valid = 0;
}
- } else if (cmd->type & NGX_CONF_ANY) {
+ } else if (cmd->type & NGX_CONF_1MORE) {
+
+ if (cf->args->nelts != 1) {
+ valid = 1;
+ } else {
+ valid = 0;
+ }
+
+ } 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;
}