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: