X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/2ac9793064573cee6d8530906124e61ef0092378..ce72de30ce4d850bdd0985cbcd5d686470745934:/rsync.c diff --git a/rsync.c b/rsync.c index a9ba4f29..fea0c1fb 100644 --- a/rsync.c +++ b/rsync.c @@ -20,6 +20,7 @@ */ #include "rsync.h" +#include "ifuncs.h" #if defined HAVE_LIBCHARSET_H && defined HAVE_LOCALE_CHARSET #include #elif defined HAVE_LANGINFO_H && defined HAVE_NL_LANGINFO @@ -70,7 +71,7 @@ static const char *default_charset(void) # endif } -void setup_iconv() +void setup_iconv(void) { const char *defset = default_charset(); # ifdef ICONV_OPTION @@ -133,8 +134,6 @@ void setup_iconv() # endif } -# ifdef ICONV_OPTION - /* This function converts the characters in the "in" xbuf into characters * in the "out" xbuf. The "len" of the "in" xbuf is used starting from its * "pos". The "size" of the "out" xbuf restricts how many characters can be @@ -204,7 +203,6 @@ int iconvbufs(iconv_t ic, xbuf *in, xbuf *out, int flags) return errno ? -1 : 0; } -# endif #endif int read_ndx_and_attrs(int f_in, int *iflag_ptr, uchar *type_ptr, @@ -213,7 +211,7 @@ int read_ndx_and_attrs(int f_in, int *iflag_ptr, uchar *type_ptr, int len, iflags = 0; struct file_list *flist; uchar fnamecmp_type = FNAMECMP_FNAME; - int ndx; + int ndx, save_verbose = verbose; read_loop: while (1) { @@ -241,15 +239,17 @@ int read_ndx_and_attrs(int f_in, int *iflag_ptr, uchar *type_ptr, } /* Send everything read from f_in to msg_fd_out. */ - send_msg_int(MSG_FLIST, ndx); - start_flist_forward(f_in); if (verbose > 3) { rprintf(FINFO, "[%s] receiving flist for dir %d\n", who_am_i(), ndx); } + verbose = 0; + send_msg_int(MSG_FLIST, ndx); + start_flist_forward(f_in); flist = recv_file_list(f_in); flist->parent_ndx = ndx; stop_flist_forward(); + verbose = save_verbose; } iflags = protocol_version >= 29 ? read_shortint(f_in) @@ -267,7 +267,8 @@ int read_ndx_and_attrs(int f_in, int *iflag_ptr, uchar *type_ptr, invalid_ndx: rprintf(FERROR, "Invalid file index: %d (%d - %d) with iflags %x [%s]\n", - ndx, first_flist->ndx_start - 1, first_flist->prev->ndx_end, + ndx, first_flist ? first_flist->ndx_start - 1 : -1, + first_flist ? first_flist->prev->ndx_end : -1, iflags, who_am_i()); exit_cleanup(RERR_PROTOCOL); } @@ -336,11 +337,11 @@ mode_t dest_mode(mode_t flist_mode, mode_t stat_mode, int dflt_perms, return new_mode; } -int set_file_attrs(const char *fname, struct file_struct *file, statx *sxp, +int set_file_attrs(const char *fname, struct file_struct *file, stat_x *sxp, const char *fnamecmp, int flags) { int updated = 0; - statx sx2; + stat_x sx2; int change_uid, change_gid; mode_t new_mode = file->mode; int inherit; @@ -400,9 +401,9 @@ int set_file_attrs(const char *fname, struct file_struct *file, statx *sxp, change_gid = gid_ndx && !(file->flags & FLAG_SKIP_GROUP) && sxp->st.st_gid != (gid_t)F_GROUP(file); #if !defined HAVE_LCHOWN && !defined CHOWN_MODIFIES_SYMLINK - if (S_ISLNK(sxp->st.st_mode)) + if (S_ISLNK(sxp->st.st_mode)) { ; - else + } else #endif if (change_uid || change_gid) { if (verbose > 2) {