ngx_create_hashed_filename() does not need ngx_file_t

This commit is contained in:
Igor Sysoev 2007-12-17 21:29:34 +00:00
parent 3b112b8c21
commit 00cbb8a16e
2 changed files with 16 additions and 17 deletions

View File

@ -70,7 +70,10 @@ ngx_create_temp_file(ngx_file_t *file, ngx_path_t *path, ngx_pool_t *pool,
(void) ngx_sprintf(file->name.data + path->name.len + 1 + path->len, (void) ngx_sprintf(file->name.data + path->name.len + 1 + path->len,
"%010uD%Z", n); "%010uD%Z", n);
ngx_create_hashed_filename(file, path); ngx_create_hashed_filename(path, file->name.data, file->name.len);
ngx_log_debug1(NGX_LOG_DEBUG_CORE, file->log, 0,
"hashed path: %s", file->name.data);
file->fd = ngx_open_tempfile(file->name.data, persistent, access); file->fd = ngx_open_tempfile(file->name.data, persistent, access);
@ -117,31 +120,27 @@ ngx_create_temp_file(ngx_file_t *file, ngx_path_t *path, ngx_pool_t *pool,
void void
ngx_create_hashed_filename(ngx_file_t *file, ngx_path_t *path) ngx_create_hashed_filename(ngx_path_t *path, u_char *file, size_t len)
{ {
size_t name, pos, level; size_t i, level;
ngx_uint_t i; ngx_uint_t n;
name = file->name.len; i = path->name.len + 1;
pos = path->name.len + 1;
file->name.data[path->name.len + path->len] = '/'; file[path->name.len + path->len] = '/';
for (i = 0; i < 3; i++) { for (n = 0; n < 3; n++) {
level = path->level[i]; level = path->level[n];
if (level == 0) { if (level == 0) {
break; break;
} }
name -= level; len -= level;
file->name.data[pos - 1] = '/'; file[i - 1] = '/';
ngx_memcpy(&file->name.data[pos], &file->name.data[name], level); ngx_memcpy(&file[i], &file[len], level);
pos += level + 1; i += level + 1;
} }
ngx_log_debug1(NGX_LOG_DEBUG_CORE, file->log, 0,
"hashed path: %s", file->name.data);
} }

View File

@ -84,7 +84,7 @@ ssize_t ngx_write_chain_to_temp_file(ngx_temp_file_t *tf, ngx_chain_t *chain);
ngx_int_t ngx_create_temp_file(ngx_file_t *file, ngx_path_t *path, ngx_int_t ngx_create_temp_file(ngx_file_t *file, ngx_path_t *path,
ngx_pool_t *pool, ngx_uint_t persistent, ngx_uint_t clean, ngx_pool_t *pool, ngx_uint_t persistent, ngx_uint_t clean,
ngx_uint_t access); ngx_uint_t access);
void ngx_create_hashed_filename(ngx_file_t *file, ngx_path_t *path); void ngx_create_hashed_filename(ngx_path_t *path, u_char *file, size_t len);
ngx_int_t ngx_create_path(ngx_file_t *file, ngx_path_t *path); ngx_int_t ngx_create_path(ngx_file_t *file, ngx_path_t *path);
ngx_err_t ngx_create_full_path(u_char *dir, ngx_uint_t access); ngx_err_t ngx_create_full_path(u_char *dir, ngx_uint_t access);
ngx_int_t ngx_add_path(ngx_conf_t *cf, ngx_path_t **slot); ngx_int_t ngx_add_path(ngx_conf_t *cf, ngx_path_t **slot);