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)