X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/641dc0c51e7c1196f160d8a76ba7f9c441bbc7ef..b4e6aac98543afdfab019339612673561c64f122:/main.c diff --git a/main.c b/main.c index 65af80b9..b06eeebe 100644 --- a/main.c +++ b/main.c @@ -4,7 +4,7 @@ * Copyright (C) 1996-2001 Andrew Tridgell * Copyright (C) 1996 Paul Mackerras * Copyright (C) 2001, 2002 Martin Pool - * Copyright (C) 2003-2007 Wayne Davison + * Copyright (C) 2003-2008 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 @@ -45,6 +45,7 @@ extern int got_xfer_error; extern int module_id; extern int copy_links; extern int copy_dirlinks; +extern int copy_unsafe_links; extern int keep_dirlinks; extern int preserve_hard_links; extern int protocol_version; @@ -82,6 +83,7 @@ extern struct filter_list_struct server_filter_list; extern iconv_t ic_send; #endif +uid_t our_uid; int local_server = 0; int daemon_over_rsh = 0; mode_t orig_umask = 0; @@ -640,7 +642,7 @@ static char *get_local_name(struct file_list *flist, char *dest_path) * dry-run mode and the destination dir does not yet exist, we'll try to * tweak any dest-relative paths to make them work for a dry-run (the * destination dir must be in curr_dir[] when this function is called). - * We also report if any arg that is non-existent or not a directory. */ + * We also warn about any arg that is non-existent or not a directory. */ static void check_alt_basis_dirs(void) { STRUCT_STAT st; @@ -758,7 +760,7 @@ static int do_recv(int f_in, int f_out, char *local_name) /* The receiving side mustn't obey this, or an existing symlink that * points to an identical file won't be replaced by the referent. */ - copy_links = copy_dirlinks = 0; + copy_links = copy_dirlinks = copy_unsafe_links = 0; #ifdef SUPPORT_HARD_LINKS if (preserve_hard_links && !inc_recurse) @@ -1427,7 +1429,8 @@ int main(int argc,char *argv[]) #endif starttime = time(NULL); - am_root = (MY_UID() == 0); + our_uid = MY_UID(); + am_root = our_uid == 0; memset(&stats, 0, sizeof(stats));