diff src/core/ngx_conf_file.c @ 435:5cdc4838d4e8

nginx-0.0.11-2004-09-22-20:18:21 import
author Igor Sysoev <igor@sysoev.ru>
date Wed, 22 Sep 2004 16:18:21 +0000
parents b9bd635011de
children f390d1775430
line wrap: on
line diff
--- a/src/core/ngx_conf_file.c
+++ b/src/core/ngx_conf_file.c
@@ -645,21 +645,23 @@ char *ngx_conf_set_flag_slot(ngx_conf_t 
 {
     char  *p = conf;
 
-    ngx_flag_t   flag;
-    ngx_str_t   *value;
+    ngx_str_t        *value;
+    ngx_flag_t       *fp;
+    ngx_conf_post_t  *post;
 
+    fp = (ngx_flag_t *) (p + cmd->offset);
 
-    if (*(ngx_flag_t *) (p + cmd->offset) != NGX_CONF_UNSET) {
+    if (*fp != NGX_CONF_UNSET) {
         return "is duplicate";
     }
 
     value = cf->args->elts;
 
     if (ngx_strcasecmp(value[1].data, "on") == 0) {
-        flag = 1;
+        *fp = 1;
 
     } else if (ngx_strcasecmp(value[1].data, "off") == 0) {
-        flag = 0;
+        *fp = 0;
 
     } else {
         ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
@@ -669,7 +671,10 @@ char *ngx_conf_set_flag_slot(ngx_conf_t 
         return NGX_CONF_ERROR;
     }
 
-    *(ngx_flag_t *) (p + cmd->offset) = flag;
+    if (cmd->post) {
+        post = cmd->post;
+        return post->post_handler(cf, post, fp);
+    }
 
     return NGX_CONF_OK;
 }