version 1.1.1.2, 2013/10/14 07:51:14
|
version 1.1.1.3, 2016/11/01 09:54:32
|
Line 3
|
Line 3
|
* |
* |
* Copyright (C) 1996 Andrew Tridgell |
* Copyright (C) 1996 Andrew Tridgell |
* Copyright (C) 1996 Paul Mackerras |
* Copyright (C) 1996 Paul Mackerras |
* Copyright (C) 2003-2013 Wayne Davison | * Copyright (C) 2003-2015 Wayne Davison |
* |
* |
* This program is free software; you can redistribute it and/or modify |
* 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 |
* it under the terms of the GNU General Public License as published by |
Line 29 extern int inc_recurse;
|
Line 29 extern int inc_recurse;
|
extern int log_before_transfer; |
extern int log_before_transfer; |
extern int stdout_format_has_i; |
extern int stdout_format_has_i; |
extern int logfile_format_has_i; |
extern int logfile_format_has_i; |
|
extern int want_xattr_optim; |
extern int csum_length; |
extern int csum_length; |
extern int append_mode; |
extern int append_mode; |
extern int io_error; |
extern int io_error; |
Line 142 void successful_send(int ndx)
|
Line 143 void successful_send(int ndx)
|
goto failed; |
goto failed; |
} |
} |
|
|
if (st.st_size != F_LENGTH(file) || st.st_mtime != file->modtime | if (S_ISREG(file->mode) /* Symlinks & devices don't need this check: */ |
| && (st.st_size != F_LENGTH(file) || st.st_mtime != file->modtime |
#ifdef ST_MTIME_NSEC |
#ifdef ST_MTIME_NSEC |
|| (NSEC_BUMP(file) && (uint32)st.ST_MTIME_NSEC != F_MOD_NSEC(file)) |
|| (NSEC_BUMP(file) && (uint32)st.ST_MTIME_NSEC != F_MOD_NSEC(file)) |
#endif |
#endif |
) { | )) { |
rprintf(FERROR, "ERROR: Skipping sender remove for changed file: %s\n", fname); | rprintf(FERROR_XFER, "ERROR: Skipping sender remove for changed file: %s\n", fname); |
return; |
return; |
} |
} |
|
|
Line 157 void successful_send(int ndx)
|
Line 159 void successful_send(int ndx)
|
if (errno == ENOENT) |
if (errno == ENOENT) |
rprintf(FINFO, "sender file already removed: %s\n", fname); |
rprintf(FINFO, "sender file already removed: %s\n", fname); |
else |
else |
rsyserr(FERROR, errno, "sender failed to %s %s", failed_op, fname); | rsyserr(FERROR_XFER, errno, "sender failed to %s %s", failed_op, fname); |
} else { |
} else { |
if (INFO_GTE(REMOVE, 1)) |
if (INFO_GTE(REMOVE, 1)) |
rprintf(FINFO, "sender removed %s\n", fname); |
rprintf(FINFO, "sender removed %s\n", fname); |
Line 178 static void write_ndx_and_attrs(int f_out, int ndx, in
|
Line 180 static void write_ndx_and_attrs(int f_out, int ndx, in
|
write_vstring(f_out, buf, len); |
write_vstring(f_out, buf, len); |
#ifdef SUPPORT_XATTRS |
#ifdef SUPPORT_XATTRS |
if (preserve_xattrs && iflags & ITEM_REPORT_XATTR && do_xfers |
if (preserve_xattrs && iflags & ITEM_REPORT_XATTR && do_xfers |
&& (protocol_version < 31 || !BITS_SET(iflags, ITEM_XNAME_FOLLOWS|ITEM_LOCAL_CHANGE))) | && !(want_xattr_optim && BITS_SET(iflags, ITEM_XNAME_FOLLOWS|ITEM_LOCAL_CHANGE))) |
send_xattr_request(fname, file, f_out); |
send_xattr_request(fname, file, f_out); |
#endif |
#endif |
} |
} |
Line 260 void send_files(int f_in, int f_out)
|
Line 262 void send_files(int f_in, int f_out)
|
|
|
#ifdef SUPPORT_XATTRS |
#ifdef SUPPORT_XATTRS |
if (preserve_xattrs && iflags & ITEM_REPORT_XATTR && do_xfers |
if (preserve_xattrs && iflags & ITEM_REPORT_XATTR && do_xfers |
&& (protocol_version < 31 || !BITS_SET(iflags, ITEM_XNAME_FOLLOWS|ITEM_LOCAL_CHANGE))) | && !(want_xattr_optim && BITS_SET(iflags, ITEM_XNAME_FOLLOWS|ITEM_LOCAL_CHANGE))) |
recv_xattr_request(file, f_in); |
recv_xattr_request(file, f_in); |
#endif |
#endif |
|
|
Line 318 void send_files(int f_in, int f_out)
|
Line 320 void send_files(int f_in, int f_out)
|
stats.xferred_files++; |
stats.xferred_files++; |
stats.total_transferred_size += F_LENGTH(file); |
stats.total_transferred_size += F_LENGTH(file); |
|
|
if (!log_before_transfer) | remember_initial_stats(); |
remember_initial_stats(); | |
|
|
if (!do_xfers) { /* log the transfer */ |
if (!do_xfers) { /* log the transfer */ |
log_item(FCLIENT, file, iflags, NULL); |
log_item(FCLIENT, file, iflags, NULL); |