X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/896bd482c0c87d11e19f9bcffbcb35c6aba00e43..5c9730a46c44e5913a4d4767bd99ec23f2f81073:/options.c diff --git a/options.c b/options.c index abdfff3f..cd56b2a1 100644 --- a/options.c +++ b/options.c @@ -78,6 +78,8 @@ int quiet = 0; int always_checksum = 0; int list_only = 0; +struct in_addr socket_address = {INADDR_ANY}; + void usage(int F) { rprintf(F,"rsync version %s Copyright Andrew Tridgell and Paul Mackerras\n\n", @@ -132,6 +134,7 @@ void usage(int F) rprintf(F," --size-only only use file size when determining if a file should be transferred\n"); rprintf(F," -T --temp-dir=DIR create temporary files in directory DIR\n"); rprintf(F," --compare-dest=DIR also compare destination files relative to DIR\n"); + rprintf(F," -P equivalent to --partial --progress\n"); rprintf(F," -z, --compress compress file data\n"); rprintf(F," --exclude=PATTERN exclude files matching PATTERN\n"); rprintf(F," --exclude-from=FILE exclude patterns listed in FILE\n"); @@ -139,6 +142,7 @@ void usage(int F) rprintf(F," --include-from=FILE don't exclude patterns listed in FILE\n"); rprintf(F," --version print version number\n"); rprintf(F," --daemon run as a rsync daemon\n"); + rprintf(F," --address bind to the specified address\n"); rprintf(F," --config=FILE specify alternate rsyncd.conf file\n"); rprintf(F," --port=PORT specify alternate rsyncd port number\n"); rprintf(F," --stats give some file transfer stats\n"); @@ -158,9 +162,9 @@ enum {OPT_VERSION, OPT_SUFFIX, OPT_SENDER, OPT_SERVER, OPT_EXCLUDE, OPT_RSYNC_PATH, OPT_FORCE, OPT_TIMEOUT, OPT_DAEMON, OPT_CONFIG, OPT_PORT, OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_STATS, OPT_PARTIAL, OPT_PROGRESS, OPT_COPY_UNSAFE_LINKS, OPT_SAFE_LINKS, OPT_COMPARE_DEST, - OPT_LOG_FORMAT, OPT_PASSWORD_FILE, OPT_SIZE_ONLY}; + OPT_LOG_FORMAT, OPT_PASSWORD_FILE, OPT_SIZE_ONLY, OPT_ADDRESS}; -static char *short_options = "oblLWHpguDCtcahvqrRIxnSe:B:T:z"; +static char *short_options = "oblLWHpguDCtcahvqrRIxnSe:B:T:zP"; static struct option long_options[] = { {"version", 0, 0, OPT_VERSION}, @@ -216,6 +220,7 @@ static struct option long_options[] = { {"config", 1, 0, OPT_CONFIG}, {"port", 1, 0, OPT_PORT}, {"log-format", 1, 0, OPT_LOG_FORMAT}, + {"address", 1, 0, OPT_ADDRESS}, {0,0,0,0}}; @@ -500,6 +505,11 @@ int parse_arguments(int argc, char *argv[], int frommain) keep_partial = 1; break; + case 'P': + do_progress = 1; + keep_partial = 1; + break; + case OPT_CONFIG: config_file = optarg; break; @@ -512,6 +522,15 @@ int parse_arguments(int argc, char *argv[], int frommain) log_format = optarg; break; + case OPT_ADDRESS: + { + struct in_addr *ia; + if ((ia = ip_address(optarg))) { + socket_address = *ia; + } + } + break; + default: slprintf(err_buf,sizeof(err_buf),"unrecognised option\n"); return 0;