X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/29bca53f9b6c020b5bd226b6378482a203fa7df3..b769ad6a3e7ef871ea0aabd5b033018ba6cdbb90:/util.c diff --git a/util.c b/util.c index e236ca5a..477f5bca 100644 --- a/util.c +++ b/util.c @@ -147,8 +147,9 @@ int set_modtime(const char *fname, time_t modtime, mode_t mode) t[1].tv_usec = 0; # ifdef HAVE_LUTIMES if (S_ISLNK(mode)) { - lutimes(fname, t); - return 0; /* ignore errors */ + if (lutimes(fname, t) < 0 && errno != ENOSYS) + return -1; + return 0; } # endif return utimes(fname, t); @@ -274,20 +275,20 @@ int copy_file(const char *source, const char *dest, int ofd, int len; /* Number of bytes read into `buf'. */ if ((ifd = do_open(source, O_RDONLY, 0)) < 0) { - rsyserr(FERROR, errno, "open %s", full_fname(source)); + rsyserr(FERROR_XFER, errno, "open %s", full_fname(source)); return -1; } if (ofd < 0) { if (robust_unlink(dest) && errno != ENOENT) { - rsyserr(FERROR, errno, "unlink %s", full_fname(dest)); + rsyserr(FERROR_XFER, errno, "unlink %s", full_fname(dest)); return -1; } if ((ofd = do_open(dest, O_WRONLY | O_CREAT | O_TRUNC | O_EXCL, mode)) < 0 && (!create_bak_dir || errno != ENOENT || make_bak_dir(dest) < 0 || (ofd = do_open(dest, O_WRONLY | O_CREAT | O_TRUNC | O_EXCL, mode)) < 0)) { - rsyserr(FERROR, errno, "open %s", full_fname(dest)); + rsyserr(FERROR_XFER, errno, "open %s", full_fname(dest)); close(ifd); return -1; } @@ -295,7 +296,7 @@ int copy_file(const char *source, const char *dest, int ofd, while ((len = safe_read(ifd, buf, sizeof buf)) > 0) { if (full_write(ofd, buf, len) < 0) { - rsyserr(FERROR, errno, "write %s", full_fname(dest)); + rsyserr(FERROR_XFER, errno, "write %s", full_fname(dest)); close(ifd); close(ofd); return -1; @@ -303,19 +304,19 @@ int copy_file(const char *source, const char *dest, int ofd, } if (len < 0) { - rsyserr(FERROR, errno, "read %s", full_fname(source)); + rsyserr(FERROR_XFER, errno, "read %s", full_fname(source)); close(ifd); close(ofd); return -1; } if (close(ifd) < 0) { - rsyserr(FINFO, errno, "close failed on %s", + rsyserr(FWARNING, errno, "close failed on %s", full_fname(source)); } if (close(ofd) < 0) { - rsyserr(FERROR, errno, "close failed on %s", + rsyserr(FERROR_XFER, errno, "close failed on %s", full_fname(dest)); return -1; } @@ -371,7 +372,7 @@ int robust_unlink(const char *fname) } while ((rc = access(path, 0)) == 0 && counter != start); if (verbose > 0) { - rprintf(FINFO,"renaming %s to %s because of text busy\n", + rprintf(FWARNING, "renaming %s to %s because of text busy\n", fname, path); } @@ -465,31 +466,27 @@ void kill_all(int sig) } /** Turn a user name into a uid */ -int name_to_uid(const char *name, uid_t *uid) +int name_to_uid(const char *name, uid_t *uid_p) { struct passwd *pass; if (!name || !*name) return 0; - pass = getpwnam(name); - if (pass) { - *uid = pass->pw_uid; - return 1; - } - return 0; + if (!(pass = getpwnam(name))) + return 0; + *uid_p = pass->pw_uid; + return 1; } /** Turn a group name into a gid */ -int name_to_gid(const char *name, gid_t *gid) +int name_to_gid(const char *name, gid_t *gid_p) { struct group *grp; if (!name || !*name) return 0; - grp = getgrnam(name); - if (grp) { - *gid = grp->gr_gid; - return 1; - } - return 0; + if (!(grp = getgrnam(name))) + return 0; + *gid_p = grp->gr_gid; + return 1; } /** Lock a byte range in a open file */ @@ -898,6 +895,9 @@ int push_dir(const char *dir, int set_path_only) curr_dir_depth = count_dir_elements(curr_dir + module_dirlen); } + if (verbose >= 5) + rprintf(FINFO, "[%s] dir is now %s\n", who_am_i(), curr_dir); + return 1; }