X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/ef55c686bcb61d8c83e79eb73ed15639e4345d5c..9ec16c83be3164bdcfe8412933d5b7fc86cabcb1:/options.c diff --git a/options.c b/options.c index 6009e8da..6050524f 100644 --- a/options.c +++ b/options.c @@ -62,10 +62,12 @@ int safe_symlinks=0; int copy_unsafe_links=0; int block_size=BLOCK_SIZE; int size_only=0; +int bwlimit=0; int delete_after=0; int only_existing=0; int max_delete=0; int ignore_errors=0; +int blocking_io=0; char *backup_suffix = BACKUP_SUFFIX; char *tmpdir = NULL; @@ -155,10 +157,12 @@ void usage(enum logcode F) 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," --blocking-io use blocking IO for the remote shell\n"); rprintf(F," --stats give some file transfer stats\n"); rprintf(F," --progress show progress during transfer\n"); rprintf(F," --log-format=FORMAT log file transfers using specified format\n"); rprintf(F," --password-file=FILE get password from FILE\n"); + rprintf(F," --bwlimit=KBPS limit I/O bandwidth, KBytes per second\n"); rprintf(F," -h, --help show this help screen\n"); rprintf(F,"\n"); @@ -174,7 +178,7 @@ enum {OPT_VERSION, OPT_SUFFIX, OPT_SENDER, OPT_SERVER, OPT_EXCLUDE, OPT_COPY_UNSAFE_LINKS, OPT_SAFE_LINKS, OPT_COMPARE_DEST, OPT_LOG_FORMAT, OPT_PASSWORD_FILE, OPT_SIZE_ONLY, OPT_ADDRESS, OPT_DELETE_AFTER, OPT_EXISTING, OPT_MAX_DELETE, OPT_BACKUP_DIR, - OPT_IGNORE_ERRORS}; + OPT_IGNORE_ERRORS, OPT_BWLIMIT, OPT_BLOCKING_IO}; static char *short_options = "oblLWHpguDCtcahvqrRIxnSe:B:T:zP"; @@ -232,9 +236,11 @@ static struct option long_options[] = { {"partial", 0, 0, OPT_PARTIAL}, {"delete-after",0, 0, OPT_DELETE_AFTER}, {"ignore-errors",0, 0, OPT_IGNORE_ERRORS}, + {"blocking-io" ,0, 0, OPT_BLOCKING_IO}, {"config", 1, 0, OPT_CONFIG}, {"port", 1, 0, OPT_PORT}, {"log-format", 1, 0, OPT_LOG_FORMAT}, + {"bwlimit", 1, 0, OPT_BWLIMIT}, {"address", 1, 0, OPT_ADDRESS}, {"max-delete", 1, 0, OPT_MAX_DELETE}, {"backup-dir", 1, 0, OPT_BACKUP_DIR}, @@ -536,6 +542,10 @@ int parse_arguments(int argc, char *argv[], int frommain) ignore_errors = 1; break; + case OPT_BLOCKING_IO: + blocking_io = 1; + break; + case 'P': do_progress = 1; keep_partial = 1; @@ -552,6 +562,10 @@ int parse_arguments(int argc, char *argv[], int frommain) case OPT_LOG_FORMAT: log_format = optarg; break; + + case OPT_BWLIMIT: + bwlimit = atoi(optarg); + break; case OPT_ADDRESS: { @@ -584,6 +598,8 @@ void server_options(char **args,int *argc) static char bsize[30]; static char iotime[30]; static char mdelete[30]; + static char bw[50]; + int i, x; args[ac++] = "--server"; @@ -655,6 +671,11 @@ void server_options(char **args,int *argc) args[ac++] = iotime; } + if (bwlimit) { + slprintf(bw,sizeof(bw),"--bwlimit=%d",bwlimit); + args[ac++] = bw; + } + if (strcmp(backup_suffix, BACKUP_SUFFIX)) { args[ac++] = "--suffix"; args[ac++] = backup_suffix;