summaryrefslogtreecommitdiffhomepage
path: root/src/core/ngx_conf_file.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/ngx_conf_file.c')
-rw-r--r--src/core/ngx_conf_file.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/core/ngx_conf_file.c b/src/core/ngx_conf_file.c
index 99af0afbd..28068d4fe 100644
--- a/src/core/ngx_conf_file.c
+++ b/src/core/ngx_conf_file.c
@@ -435,6 +435,10 @@ char *ngx_conf_set_flag_slot(ngx_conf_t *cf, ngx_command_t *cmd, char *conf)
int flag;
ngx_str_t *value;
+ if (*(int *) (conf + cmd->offset) != NGX_CONF_UNSET) {
+ return "is duplicate";
+ }
+
value = (ngx_str_t *) cf->args->elts;
if (ngx_strcasecmp(value[1].data, "on") == 0) {
@@ -458,6 +462,11 @@ char *ngx_conf_set_str_slot(ngx_conf_t *cf, ngx_command_t *cmd, char *conf)
ngx_str_t *field, *value;
field = (ngx_str_t *) (conf + cmd->offset);
+
+ if (field->len > 0) {
+ return "is duplicate";
+ }
+
value = (ngx_str_t *) cf->args->elts;
field->len = value[1].len;
@@ -472,6 +481,10 @@ char *ngx_conf_set_num_slot(ngx_conf_t *cf, ngx_command_t *cmd, char *conf)
int num, len;
ngx_str_t *value;
+ if (*(int *) (conf + cmd->offset) != NGX_CONF_UNSET) {
+ return "is duplicate";
+ }
+
value = (ngx_str_t *) cf->args->elts;
len = value[1].len;
@@ -493,6 +506,10 @@ char *ngx_conf_set_size_slot(ngx_conf_t *cf, ngx_command_t *cmd, char *conf)
char last;
ngx_str_t *value;
+ if (*(int *) (conf + cmd->offset) != NGX_CONF_UNSET) {
+ return "is duplicate";
+ }
+
value = (ngx_str_t *) cf->args->elts;
len = value[1].len;
@@ -535,6 +552,10 @@ char *ngx_conf_set_msec_slot(ngx_conf_t *cf, ngx_command_t *cmd, char *conf)
char last, *start;
ngx_str_t *value;
+ if (*(int *) (conf + cmd->offset) != NGX_CONF_UNSET) {
+ return "is duplicate";
+ }
+
value = (ngx_str_t *) cf->args->elts;
start = value[1].data;
len = 0;
@@ -626,6 +647,10 @@ char *ngx_conf_set_sec_slot(ngx_conf_t *cf, ngx_command_t *cmd, char *conf)
char last, *start;
ngx_str_t *value;
+ if (*(int *) (conf + cmd->offset) != NGX_CONF_UNSET) {
+ return "is duplicate";
+ }
+
value = (ngx_str_t *) cf->args->elts;
start = value[1].data;
len = 0;