Mercurial > hg > nginx
comparison src/os/win32/ngx_files.c @ 8136:37a184966ab3
Win32: reworked ngx_win32_rename_file() to use nginx wrappers.
This ensures that ngx_win32_rename_file() will support non-ASCII names
when supported by the wrappers.
Notably, this is used by PUT requests in the dav module when overwriting
existing files with non-ASCII names (ticket #1433).
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Thu, 23 Feb 2023 20:49:52 +0300 |
parents | 8880fe0b193c |
children | 4b06186670ed |
comparison
equal
deleted
inserted
replaced
8135:8880fe0b193c | 8136:37a184966ab3 |
---|---|
230 for ( ;; ) { | 230 for ( ;; ) { |
231 num = ngx_next_temp_number(collision); | 231 num = ngx_next_temp_number(collision); |
232 | 232 |
233 ngx_sprintf(name + to->len, ".%0muA.DELETE%Z", num); | 233 ngx_sprintf(name + to->len, ".%0muA.DELETE%Z", num); |
234 | 234 |
235 if (MoveFile((const char *) to->data, (const char *) name) != 0) { | 235 if (ngx_rename_file(to->data, name) != NGX_FILE_ERROR) { |
236 break; | 236 break; |
237 } | 237 } |
238 | 238 |
239 err = ngx_errno; | 239 err = ngx_errno; |
240 | 240 |
246 ngx_log_error(NGX_LOG_CRIT, log, err, | 246 ngx_log_error(NGX_LOG_CRIT, log, err, |
247 "MoveFile() \"%s\" to \"%s\" failed", to->data, name); | 247 "MoveFile() \"%s\" to \"%s\" failed", to->data, name); |
248 goto failed; | 248 goto failed; |
249 } | 249 } |
250 | 250 |
251 if (MoveFile((const char *) from->data, (const char *) to->data) == 0) { | 251 if (ngx_rename_file(from->data, to->data) == NGX_FILE_ERROR) { |
252 err = ngx_errno; | 252 err = ngx_errno; |
253 | 253 |
254 } else { | 254 } else { |
255 err = 0; | 255 err = 0; |
256 } | 256 } |
257 | 257 |
258 if (DeleteFile((const char *) name) == 0) { | 258 if (ngx_delete_file(name) == NGX_FILE_ERROR) { |
259 ngx_log_error(NGX_LOG_CRIT, log, ngx_errno, | 259 ngx_log_error(NGX_LOG_CRIT, log, ngx_errno, |
260 "DeleteFile() \"%s\" failed", name); | 260 "DeleteFile() \"%s\" failed", name); |
261 } | 261 } |
262 | 262 |
263 failed: | 263 failed: |