diff src/core/ngx_conf_file.c @ 288:0b1cc3960e27 NGINX_0_5_14

nginx 0.5.14 *) Bugfix: nginx ignored superfluous closing "}" in the end of configuration file.
author Igor Sysoev <http://sysoev.ru>
date Fri, 23 Feb 2007 00:00:00 +0300
parents 5bef04fc3fd5
children 94e16de3c33f
line wrap: on
line diff
--- a/src/core/ngx_conf_file.c
+++ b/src/core/ngx_conf_file.c
@@ -141,24 +141,26 @@ ngx_conf_parse(ngx_conf_t *cf, ngx_str_t
          */
 
         if (rc == NGX_ERROR) {
-            break;
+            goto done;
         }
 
         if (rc == NGX_CONF_BLOCK_DONE) {
+            if (!block) {
+                ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, "unexpected \"}\"");
+                goto failed;
+            }
+
             block = 0;
         }
 
         if (rc == NGX_CONF_FILE_DONE && block) {
-            ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
-                          "unexpected end of file in %s:%ui, expecting \"}\"",
-                          cf->conf_file->file.name.data,
-                          cf->conf_file->line);
-            rc = NGX_ERROR;
-            break;
+            ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+                               "unexpected end of file, expecting \"}\"");
+            goto failed;
         }
 
         if (rc != NGX_OK && rc != NGX_CONF_BLOCK_START) {
-            break;
+            goto done;
         }
 
         if (cf->handler) {
@@ -174,26 +176,27 @@ ngx_conf_parse(ngx_conf_t *cf, ngx_str_t
             }
 
             if (rv == NGX_CONF_ERROR) {
-                rc = NGX_ERROR;
-                break;
+                goto failed;
             }
 
-            ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
-                          "%s in %s:%ui",
-                          rv, cf->conf_file->file.name.data,
-                          cf->conf_file->line);
-            rc = NGX_ERROR;
-            break;
+            ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, rv);
+
+            goto failed;
         }
 
 
         rc = ngx_conf_handler(cf, rc);
 
         if (rc == NGX_ERROR) {
-            break;
+            goto failed;
         }
     }
 
+failed:
+
+    rc = NGX_ERROR;
+
+done:
 
     if (filename) {
         ngx_free(cf->conf_file->buffer->start);
@@ -267,20 +270,16 @@ ngx_conf_handler(ngx_conf_t *cf, ngx_int
             }
 
             if (!(cmd->type & NGX_CONF_BLOCK) && last != NGX_OK) {
-                ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
-                              "directive \"%s\" in %s:%ui "
-                              "is not terminated by \";\"",
-                              name->data, cf->conf_file->file.name.data,
-                              cf->conf_file->line);
+                ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+                                  "directive \"%s\" is not terminated by \";\"",
+                                  name->data);
                 return NGX_ERROR;
             }
 
             if ((cmd->type & NGX_CONF_BLOCK) && last != NGX_CONF_BLOCK_START) {
-                ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
-                              "directive \"%s\" in %s:%ui "
-                              "has not the opening \"{\"",
-                              name->data, cf->conf_file->file.name.data,
-                              cf->conf_file->line);
+                ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+                                   "directive \"%s\" has no opening \"{\"",
+                                   name->data);
                 return NGX_ERROR;
             }
 
@@ -344,40 +343,31 @@ ngx_conf_handler(ngx_conf_t *cf, ngx_int
                 return NGX_ERROR;
             }
 
-            ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
-                          "the \"%s\" directive %s in %s:%ui",
-                          name->data, rv, cf->conf_file->file.name.data,
-                          cf->conf_file->line);
+            ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+                               "the \"%s\" directive %s", name->data, rv);
 
             return NGX_ERROR;
         }
     }
 
     if (multi == 0) {
-        ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
-                      "unknown directive \"%s\" in %s:%ui",
-                      name->data, cf->conf_file->file.name.data,
-                      cf->conf_file->line);
+        ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+                           "unknown directive \"%s\"", name->data);
 
         return NGX_ERROR;
     }
 
 not_allowed:
 
-    ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
-                  "directive \"%s\" in %s:%ui "
-                  "is not allowed here",
-                  name->data, cf->conf_file->file.name.data,
-                  cf->conf_file->line);
+    ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+                       "directive \"%s\" is not allowed here", name->data);
     return NGX_ERROR;
 
 invalid:
 
-    ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
-                  "invalid number arguments in "
-                  "directive \"%s\" in %s:%ui",
-                  name->data, cf->conf_file->file.name.data,
-                  cf->conf_file->line);
+    ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+                       "invalid number arguments in directive \"%s\"",
+                       name->data);
 
     return NGX_ERROR;
 }
@@ -412,11 +402,9 @@ ngx_conf_read_token(ngx_conf_t *cf)
                                  >= ngx_file_size(&cf->conf_file->file.info))
             {
                 if (cf->args->nelts > 0) {
-                    ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
-                                  "unexpected end of file in %s:%ui, "
-                                  "expecting \";\" or \"}\"",
-                                  cf->conf_file->file.name.data,
-                                  cf->conf_file->line);
+                    ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+                                  "unexpected end of file, "
+                                  "expecting \";\" or \"}\"");
                     return NGX_ERROR;
                 }
 
@@ -480,11 +468,8 @@ ngx_conf_read_token(ngx_conf_t *cf)
                 need_space = 0;
 
             } else {
-                 ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
-                               "unexpected \"%c\" in %s:%ui",
-                               ch, cf->conf_file->file.name.data,
-                               cf->conf_file->line);
-
+                 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+                                    "unexpected \"%c\"", ch);
                  return NGX_ERROR;
             }
         }
@@ -501,10 +486,8 @@ ngx_conf_read_token(ngx_conf_t *cf)
             case ';':
             case '{':
                 if (cf->args->nelts == 0) {
-                    ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
-                                  "unexpected \"%c\" in %s:%ui",
-                                  ch, cf->conf_file->file.name.data,
-                                  cf->conf_file->line);
+                    ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+                                       "unexpected \"%c\"", ch);
                     return NGX_ERROR;
                 }
 
@@ -516,10 +499,8 @@ ngx_conf_read_token(ngx_conf_t *cf)
 
             case '}':
                 if (cf->args->nelts != 0) {
-                    ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
-                                  "unexpected \"}\" in %s:%ui",
-                                  cf->conf_file->file.name.data,
-                                  cf->conf_file->line);
+                    ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+                                       "unexpected \"}\"");
                     return NGX_ERROR;
                 }