mirror of
https://github.com/nginx/nginx.git
synced 2024-12-12 18:29:00 +08:00
use ngx_dir_access() to enable search bits for directory
This commit is contained in:
parent
e99305be7a
commit
e31625b60e
@ -252,7 +252,9 @@ ngx_http_dav_handler(ngx_http_request_t *r)
|
|||||||
ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
|
ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
|
||||||
"http mkcol path: \"%s\"", path.data);
|
"http mkcol path: \"%s\"", path.data);
|
||||||
|
|
||||||
if (ngx_create_dir(path.data, dlcf->access) != NGX_FILE_ERROR) {
|
if (ngx_create_dir(path.data, ngx_dir_access(dlcf->access))
|
||||||
|
!= NGX_FILE_ERROR)
|
||||||
|
{
|
||||||
if (ngx_http_dav_location(r, path.data) != NGX_OK) {
|
if (ngx_http_dav_location(r, path.data) != NGX_OK) {
|
||||||
return NGX_HTTP_INTERNAL_SERVER_ERROR;
|
return NGX_HTTP_INTERNAL_SERVER_ERROR;
|
||||||
}
|
}
|
||||||
@ -351,7 +353,7 @@ ngx_http_dav_put_handler(ngx_http_request_t *r)
|
|||||||
|
|
||||||
#if !(NGX_WIN32)
|
#if !(NGX_WIN32)
|
||||||
|
|
||||||
if (ngx_change_file_access(temp->data, dlcf->access & ~0111)
|
if (ngx_change_file_access(temp->data, dlcf->access)
|
||||||
== NGX_FILE_ERROR)
|
== NGX_FILE_ERROR)
|
||||||
{
|
{
|
||||||
err = ngx_errno;
|
err = ngx_errno;
|
||||||
@ -393,7 +395,7 @@ ngx_http_dav_put_handler(ngx_http_request_t *r)
|
|||||||
if (err == NGX_ENOENT) {
|
if (err == NGX_ENOENT) {
|
||||||
|
|
||||||
if (dlcf->create_full_put_path) {
|
if (dlcf->create_full_put_path) {
|
||||||
err = ngx_create_full_path(path.data, dlcf->access);
|
err = ngx_create_full_path(path.data, ngx_dir_access(dlcf->access));
|
||||||
|
|
||||||
if (err == 0) {
|
if (err == 0) {
|
||||||
if (ngx_rename_file(temp->data, path.data) != NGX_FILE_ERROR) {
|
if (ngx_rename_file(temp->data, path.data) != NGX_FILE_ERROR) {
|
||||||
@ -539,7 +541,7 @@ ngx_http_dav_access(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
|||||||
|
|
||||||
value = cf->args->elts;
|
value = cf->args->elts;
|
||||||
|
|
||||||
lcf->access = 0700;
|
lcf->access = 0600;
|
||||||
|
|
||||||
for (i = 1; i < cf->args->nelts; i++) {
|
for (i = 1; i < cf->args->nelts; i++) {
|
||||||
|
|
||||||
@ -562,16 +564,16 @@ ngx_http_dav_access(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (ngx_strcmp(p, "rw") == 0) {
|
if (ngx_strcmp(p, "rw") == 0) {
|
||||||
right = 7;
|
right = 6;
|
||||||
|
|
||||||
} else if (ngx_strcmp(p, "r") == 0) {
|
} else if (ngx_strcmp(p, "r") == 0) {
|
||||||
right = 5;
|
right = 4;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
goto invalid;
|
goto invalid;
|
||||||
}
|
}
|
||||||
|
|
||||||
lcf->access += right << shift;
|
lcf->access |= right << shift;
|
||||||
}
|
}
|
||||||
|
|
||||||
return NGX_CONF_OK;
|
return NGX_CONF_OK;
|
||||||
|
@ -122,6 +122,9 @@ ngx_int_t ngx_open_dir(ngx_str_t *name, ngx_dir_t *dir);
|
|||||||
#define ngx_delete_dir_n "rmdir()"
|
#define ngx_delete_dir_n "rmdir()"
|
||||||
|
|
||||||
|
|
||||||
|
#define ngx_dir_access(a) (a | (a & 0444) >> 2)
|
||||||
|
|
||||||
|
|
||||||
#define ngx_de_name(dir) ((u_char *) (dir)->de->d_name)
|
#define ngx_de_name(dir) ((u_char *) (dir)->de->d_name)
|
||||||
#if (NGX_FREEBSD)
|
#if (NGX_FREEBSD)
|
||||||
#define ngx_de_namelen(dir) (dir)->de->d_namlen
|
#define ngx_de_namelen(dir) (dir)->de->d_namlen
|
||||||
|
@ -150,6 +150,9 @@ ngx_int_t ngx_read_dir(ngx_dir_t *dir);
|
|||||||
#define ngx_delete_dir_n "RemoveDirectory()"
|
#define ngx_delete_dir_n "RemoveDirectory()"
|
||||||
|
|
||||||
|
|
||||||
|
#define ngx_dir_access(a) (a)
|
||||||
|
|
||||||
|
|
||||||
#define ngx_de_name(dir) ((u_char *) (dir)->finddata.cFileName)
|
#define ngx_de_name(dir) ((u_char *) (dir)->finddata.cFileName)
|
||||||
#define ngx_de_namelen(dir) ngx_strlen((dir)->finddata.cFileName)
|
#define ngx_de_namelen(dir) ngx_strlen((dir)->finddata.cFileName)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user