comparison src/core/ngx_file.c @ 3033:db3e5c4c7413

fix copy failure logging and stale files removal, introduced in r3025
author Igor Sysoev <igor@sysoev.ru>
date Thu, 20 Aug 2009 13:41:32 +0000
parents 524ba56ba9f7
children d7f7aabe5ac2
comparison
equal deleted inserted replaced
3032:524ba56ba9f7 3033:db3e5c4c7413
613 (void) ngx_sprintf(name, "%*s.%010uD%Z", to->len, to->data, 613 (void) ngx_sprintf(name, "%*s.%010uD%Z", to->len, to->data,
614 (uint32_t) ngx_next_temp_number(0)); 614 (uint32_t) ngx_next_temp_number(0));
615 615
616 if (ngx_copy_file(src->data, name, &cf) == NGX_OK) { 616 if (ngx_copy_file(src->data, name, &cf) == NGX_OK) {
617 617
618 if (ngx_rename_file(name, to->data) == NGX_FILE_ERROR) { 618 if (ngx_rename_file(name, to->data) != NGX_FILE_ERROR) {
619 ngx_free(name); 619 ngx_free(name);
620 goto failed; 620
621 } 621 if (ngx_delete_file(src->data) == NGX_FILE_ERROR) {
622 622 ngx_log_error(NGX_LOG_CRIT, ext->log, ngx_errno,
623 ngx_free(name); 623 ngx_delete_file_n " \"%s\" failed",
624 624 src->data);
625 if (ngx_delete_file(src->data) == NGX_FILE_ERROR) { 625 return NGX_ERROR;
626 }
627
628 return NGX_OK;
629 }
630
631 ngx_log_error(NGX_LOG_CRIT, ext->log, ngx_errno,
632 ngx_rename_file_n " \"%s\" to \"%s\" failed",
633 name, to->data);
634
635 if (ngx_delete_file(name) == NGX_FILE_ERROR) {
626 ngx_log_error(NGX_LOG_CRIT, ext->log, ngx_errno, 636 ngx_log_error(NGX_LOG_CRIT, ext->log, ngx_errno,
627 ngx_delete_file_n " \"%s\" failed", src->data); 637 ngx_delete_file_n " \"%s\" failed", name);
628 638
629 return NGX_ERROR; 639 }
630 }
631
632 return NGX_OK;
633 } 640 }
634 641
635 ngx_free(name); 642 ngx_free(name);
643
644 err = 0;
636 } 645 }
637 646
638 failed: 647 failed:
639 648
640 if (ext->delete_file) { 649 if (ext->delete_file) {