Mercurial > hg > nginx
comparison src/core/ngx_file.c @ 1748:91d381e4e691
ngx_create_hashed_filename() does not need ngx_file_t
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 17 Dec 2007 21:29:34 +0000 |
parents | 442a791354d8 |
children | e16813ff8618 |
comparison
equal
deleted
inserted
replaced
1747:442a791354d8 | 1748:91d381e4e691 |
---|---|
68 | 68 |
69 for ( ;; ) { | 69 for ( ;; ) { |
70 (void) ngx_sprintf(file->name.data + path->name.len + 1 + path->len, | 70 (void) ngx_sprintf(file->name.data + path->name.len + 1 + path->len, |
71 "%010uD%Z", n); | 71 "%010uD%Z", n); |
72 | 72 |
73 ngx_create_hashed_filename(file, path); | 73 ngx_create_hashed_filename(path, file->name.data, file->name.len); |
74 | |
75 ngx_log_debug1(NGX_LOG_DEBUG_CORE, file->log, 0, | |
76 "hashed path: %s", file->name.data); | |
74 | 77 |
75 file->fd = ngx_open_tempfile(file->name.data, persistent, access); | 78 file->fd = ngx_open_tempfile(file->name.data, persistent, access); |
76 | 79 |
77 ngx_log_debug1(NGX_LOG_DEBUG_CORE, file->log, 0, | 80 ngx_log_debug1(NGX_LOG_DEBUG_CORE, file->log, 0, |
78 "temp fd:%d", file->fd); | 81 "temp fd:%d", file->fd); |
115 } | 118 } |
116 } | 119 } |
117 | 120 |
118 | 121 |
119 void | 122 void |
120 ngx_create_hashed_filename(ngx_file_t *file, ngx_path_t *path) | 123 ngx_create_hashed_filename(ngx_path_t *path, u_char *file, size_t len) |
121 { | 124 { |
122 size_t name, pos, level; | 125 size_t i, level; |
123 ngx_uint_t i; | 126 ngx_uint_t n; |
124 | 127 |
125 name = file->name.len; | 128 i = path->name.len + 1; |
126 pos = path->name.len + 1; | 129 |
127 | 130 file[path->name.len + path->len] = '/'; |
128 file->name.data[path->name.len + path->len] = '/'; | 131 |
129 | 132 for (n = 0; n < 3; n++) { |
130 for (i = 0; i < 3; i++) { | 133 level = path->level[n]; |
131 level = path->level[i]; | |
132 | 134 |
133 if (level == 0) { | 135 if (level == 0) { |
134 break; | 136 break; |
135 } | 137 } |
136 | 138 |
137 name -= level; | 139 len -= level; |
138 file->name.data[pos - 1] = '/'; | 140 file[i - 1] = '/'; |
139 ngx_memcpy(&file->name.data[pos], &file->name.data[name], level); | 141 ngx_memcpy(&file[i], &file[len], level); |
140 pos += level + 1; | 142 i += level + 1; |
141 } | 143 } |
142 | |
143 ngx_log_debug1(NGX_LOG_DEBUG_CORE, file->log, 0, | |
144 "hashed path: %s", file->name.data); | |
145 } | 144 } |
146 | 145 |
147 | 146 |
148 ngx_int_t | 147 ngx_int_t |
149 ngx_create_path(ngx_file_t *file, ngx_path_t *path) | 148 ngx_create_path(ngx_file_t *file, ngx_path_t *path) |