X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/154c345db03bd0c5a93a28373352c9d9363d587b..4fd842f98df4970f6e49a0365dbed60774e56c09:/cleanup.c diff --git a/cleanup.c b/cleanup.c index df8c95bd..76f44e2d 100644 --- a/cleanup.c +++ b/cleanup.c @@ -4,12 +4,11 @@ * Copyright (C) 1996-2000 Andrew Tridgell * Copyright (C) 1996 Paul Mackerras * Copyright (C) 2002 Martin Pool - * Copyright (C) 2003, 2004, 2005, 2006 Wayne Davison + * Copyright (C) 2003-2007 Wayne Davison * * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. + * it under the terms of the GNU General Public License version 3 as + * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -17,8 +16,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. + * with this program; if not, visit the http://fsf.org website. */ #include "rsync.h" @@ -107,8 +105,7 @@ NORETURN void _exit_cleanup(int code, const char *file, int line) /* Some of our actions might cause a recursive call back here, so we * keep track of where we are in the cleanup and never repeat a step. */ switch (cleanup_step) { - case 0: - cleanup_step++; +#include "case_N.h" /* case 0: cleanup_step++; */ exit_code = unmodified_code = code; @@ -119,8 +116,7 @@ NORETURN void _exit_cleanup(int code, const char *file, int line) } /* FALLTHROUGH */ - case 1: - cleanup_step++; +#include "case_N.h" if (cleanup_child_pid != -1) { int status; @@ -133,8 +129,7 @@ NORETURN void _exit_cleanup(int code, const char *file, int line) } /* FALLTHROUGH */ - case 2: - cleanup_step++; +#include "case_N.h" if (cleanup_got_literal && cleanup_fname && cleanup_new_fname && keep_partial && handle_partial_dir(cleanup_new_fname, PDIR_CREATE)) { @@ -146,19 +141,17 @@ NORETURN void _exit_cleanup(int code, const char *file, int line) flush_write_file(cleanup_fd_w); close(cleanup_fd_w); } - finish_transfer(cleanup_new_fname, fname, NULL, + finish_transfer(cleanup_new_fname, fname, NULL, NULL, cleanup_file, 0, !partial_dir); } /* FALLTHROUGH */ - case 3: - cleanup_step++; +#include "case_N.h" io_flush(FULL_FLUSH); /* FALLTHROUGH */ - case 4: - cleanup_step++; +#include "case_N.h" if (cleanup_fname) do_unlink(cleanup_fname); @@ -183,8 +176,7 @@ NORETURN void _exit_cleanup(int code, const char *file, int line) log_exit(code, file, line); /* FALLTHROUGH */ - case 5: - cleanup_step++; +#include "case_N.h" if (verbose > 2) { rprintf(FINFO, @@ -194,9 +186,10 @@ NORETURN void _exit_cleanup(int code, const char *file, int line) } /* FALLTHROUGH */ - case 6: - cleanup_step++; +#include "case_N.h" + if (am_server && code) + msleep(100); close_all(); /* FALLTHROUGH */