version 1.5, 1999/09/30 05:11:29 |
version 1.6, 1999/09/30 21:25:03 |
|
|
/* This is set to non-zero if compression is desired. */ |
/* This is set to non-zero if compression is desired. */ |
int compress = 0; |
int compress = 0; |
|
|
|
/* This is set to zero if the progressmeter is not desired. */ |
|
int showprogress = 1; |
|
|
/* This is set to non-zero if running in batch mode (that is, password |
/* This is set to non-zero if running in batch mode (that is, password |
and passphrase queries are not allowed). */ |
and passphrase queries are not allowed). */ |
int batchmode = 0; |
int batchmode = 0; |
|
|
extern int optind; |
extern int optind; |
|
|
fflag = tflag = 0; |
fflag = tflag = 0; |
while ((ch = getopt(argc, argv, "dfprtvBCc:i:P:")) != EOF) |
while ((ch = getopt(argc, argv, "dfprtvBCc:i:P:q")) != EOF) |
switch(ch) { /* User-visible flags. */ |
switch(ch) { /* User-visible flags. */ |
case 'p': |
case 'p': |
pflag = 1; |
pflag = 1; |
|
|
case 'C': |
case 'C': |
compress = 1; |
compress = 1; |
break; |
break; |
|
case 'q': |
|
showprogress = 0; |
|
break; |
case '?': |
case '?': |
default: |
default: |
usage(); |
usage(); |
|
|
totalbytes = stb.st_size; |
totalbytes = stb.st_size; |
|
|
/* kick-start the progress meter */ |
/* kick-start the progress meter */ |
progressmeter(-1); |
if(showprogress) |
|
progressmeter(-1); |
|
|
/* Keep writing after an error so that we stay sync'd up. */ |
/* Keep writing after an error so that we stay sync'd up. */ |
for (haderr = i = 0; i < stb.st_size; i += bp->cnt) { |
for (haderr = i = 0; i < stb.st_size; i += bp->cnt) { |
|
|
statbytes += result; |
statbytes += result; |
} |
} |
} |
} |
progressmeter(1); |
if(showprogress) |
|
progressmeter(1); |
|
|
if (close(fd) < 0 && !haderr) |
if (close(fd) < 0 && !haderr) |
haderr = errno; |
haderr = errno; |
|
|
usage() |
usage() |
{ |
{ |
(void)fprintf(stderr, |
(void)fprintf(stderr, |
"usage: scp [-p] f1 f2; or: scp [-pr] f1 ... fn directory\n"); |
"usage: scp [-pqrvC] [-P port] [-c cipher] [-i identity] f1 f2; or:\n scp [options] f1 ... fn directory\n"); |
exit(1); |
exit(1); |
} |
} |
|
|
|
|
} |
} |
|
|
timersub(&now, &start, &td); |
timersub(&now, &start, &td); |
elapsed = td.tv_sec + (td.tv_sec / 1000000.0); |
elapsed = td.tv_sec + (td.tv_usec / 1000000.0); |
|
|
if (statbytes <= 0 || elapsed <= 0.0 || cursize > totalbytes) { |
if (statbytes <= 0 || elapsed <= 0.0 || cursize > totalbytes) { |
snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), |
snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), |