aboutsummaryrefslogtreecommitdiff
path: root/src/http/ngx_http_core_module.c
diff options
context:
space:
mode:
authorValentin Bartenev <vbart@nginx.com>2012-02-27 16:51:28 +0000
committerValentin Bartenev <vbart@nginx.com>2012-02-27 16:51:28 +0000
commit0e05ca0404b6ef99fd809c6a1c362c6ef923cca6 (patch)
tree4a302c720b6fc8aa510fda227a6e6feb0e82ee92 /src/http/ngx_http_core_module.c
parent346791187f358f852c2434f29a86754e7ab10f5b (diff)
downloadnginx-0e05ca0404b6ef99fd809c6a1c362c6ef923cca6.tar.gz
nginx-0e05ca0404b6ef99fd809c6a1c362c6ef923cca6.zip
Disable symlinks: initialization of the "disable_symlinks" field in
ngx_open_file_info_t moved to a separate function. This is preparation for the "from=" parameter implementation of the "disable_symlinks" directive.
Diffstat (limited to 'src/http/ngx_http_core_module.c')
-rw-r--r--src/http/ngx_http_core_module.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c
index 96e999718..206d06e51 100644
--- a/src/http/ngx_http_core_module.c
+++ b/src/http/ngx_http_core_module.c
@@ -1320,9 +1320,11 @@ ngx_http_core_try_files_phase(ngx_http_request_t *r,
of.test_only = 1;
of.errors = clcf->open_file_cache_errors;
of.events = clcf->open_file_cache_events;
-#if (NGX_HAVE_OPENAT)
- of.disable_symlinks = clcf->disable_symlinks;
-#endif
+
+ if (ngx_http_set_disable_symlinks(r, clcf, &path, &of) != NGX_OK) {
+ ngx_http_finalize_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR);
+ return NGX_OK;
+ }
if (ngx_open_cached_file(clcf->open_file_cache, &path, &of, r->pool)
!= NGX_OK)
@@ -2645,6 +2647,18 @@ ngx_http_cleanup_add(ngx_http_request_t *r, size_t size)
}
+ngx_int_t
+ngx_http_set_disable_symlinks(ngx_http_request_t *r,
+ ngx_http_core_loc_conf_t *clcf, ngx_str_t *path, ngx_open_file_info_t *of)
+{
+#if (NGX_HAVE_OPENAT)
+ of->disable_symlinks = clcf->disable_symlinks;
+#endif
+
+ return NGX_OK;
+}
+
+
static char *
ngx_http_core_server(ngx_conf_t *cf, ngx_command_t *cmd, void *dummy)
{