diff options
author | Valentin Bartenev <vbart@nginx.com> | 2012-02-27 16:51:28 +0000 |
---|---|---|
committer | Valentin Bartenev <vbart@nginx.com> | 2012-02-27 16:51:28 +0000 |
commit | 0e05ca0404b6ef99fd809c6a1c362c6ef923cca6 (patch) | |
tree | 4a302c720b6fc8aa510fda227a6e6feb0e82ee92 /src/http/ngx_http_core_module.c | |
parent | 346791187f358f852c2434f29a86754e7ab10f5b (diff) | |
download | nginx-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.c | 20 |
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) { |