version 1.61, 2008/06/16 19:56:04 |
version 1.62, 2008/06/25 18:07:00 |
|
|
code = -1; |
code = -1; |
} |
} |
|
|
|
#ifndef SMALL |
|
void |
|
reput(int argc, char *argv[]) |
|
{ |
|
|
|
(void)putit(argc, argv, 1); |
|
} |
|
#endif /* !SMALL */ |
|
|
|
void |
|
put(int argc, char *argv[]) |
|
{ |
|
|
|
(void)putit(argc, argv, 0); |
|
} |
|
|
/* |
/* |
* Send a single file. |
* Send a single file. |
*/ |
*/ |
void |
void |
put(int argc, char *argv[]) |
putit(int argc, char *argv[], int restartit) |
{ |
{ |
char *cmd; |
char *cmd; |
int loc = 0; |
int loc = 0; |
|
|
if (argv[1] != oldargv1 && argv[2] == oldargv1) { |
if (argv[1] != oldargv1 && argv[2] == oldargv1) { |
argv[2] = argv[1]; |
argv[2] = argv[1]; |
} |
} |
cmd = (argv[0][0] == 'a') ? "APPE" : ((sunique) ? "STOU" : "STOR"); |
#ifndef SMALL |
|
if (restartit == 1) { |
|
if (curtype != type) |
|
changetype(type, 0); |
|
restart_point = remotesize(argv[2], 1); |
|
if (restart_point < 0) { |
|
restart_point = 0; |
|
code = -1; |
|
return; |
|
} |
|
} |
|
#endif /* !SMALL */ |
|
if (strcmp(argv[0], "append") == 0) { |
|
restartit = 1; |
|
} |
|
cmd = restartit ? "APPE" : ((sunique) ? "STOU" : "STOR"); |
if (loc && ntflag) { |
if (loc && ntflag) { |
argv[2] = dotrans(argv[2]); |
argv[2] = dotrans(argv[2]); |
} |
} |
|
|
} |
} |
sendrequest(cmd, argv[1], argv[2], |
sendrequest(cmd, argv[1], argv[2], |
argv[1] != oldargv1 || argv[2] != oldargv2); |
argv[1] != oldargv1 || argv[2] != oldargv2); |
|
restart_point = 0; |
if (oldargv1 != argv[1]) /* free up after globulize() */ |
if (oldargv1 != argv[1]) /* free up after globulize() */ |
free(argv[1]); |
free(argv[1]); |
} |
} |
|
|
void |
void |
mput(int argc, char *argv[]) |
mput(int argc, char *argv[]) |
{ |
{ |
int i; |
extern int optind, optreset; |
|
int ch, i, restartit = 0; |
sig_t oldintr; |
sig_t oldintr; |
char *tp; |
char *cmd, *tp; |
|
|
if (argc < 2 && !another(&argc, &argv, "local-files")) { |
optind = optreset = 1; |
fprintf(ttyout, "usage: %s local-files\n", argv[0]); |
|
|
#ifndef SMALL |
|
while ((ch = getopt(argc, argv, "c")) != -1) { |
|
switch(ch) { |
|
case 'c': |
|
restartit = 1; |
|
break; |
|
default: |
|
goto usage; |
|
} |
|
} |
|
#endif /* !SMALL */ |
|
|
|
if (argc - optind < 1 && !another(&argc, &argv, "local-files")) { |
|
usage: |
|
fprintf(ttyout, "usage: %s [-c] local-files\n", argv[0]); |
code = -1; |
code = -1; |
return; |
return; |
} |
} |
|
|
|
#ifndef SMALL |
|
optind--; |
|
argv[optind] = argv[0]; |
|
argc -= optind; |
|
argv += optind; |
|
#endif /* !SMALL */ |
|
|
mname = argv[0]; |
mname = argv[0]; |
mflag = 1; |
mflag = 1; |
|
|
oldintr = signal(SIGINT, mabort); |
oldintr = signal(SIGINT, mabort); |
(void)setjmp(jabort); |
(void)setjmp(jabort); |
if (proxy) { |
if (proxy) { |
|
|
if (mapflag) { |
if (mapflag) { |
tp = domap(tp); |
tp = domap(tp); |
} |
} |
sendrequest((sunique) ? "STOU" : "STOR", |
#ifndef SMALL |
cp, tp, cp != tp || !interactive); |
if (restartit == 1) { |
|
off_t ret; |
|
|
|
if (curtype != type) |
|
changetype(type, 0); |
|
ret = remotesize(tp, 0); |
|
restart_point = (ret < 0) ? 0 : ret; |
|
} |
|
#endif /* !SMALL */ |
|
cmd = restartit ? "APPE" : ((sunique) ? |
|
"STOU" : "STOR"); |
|
sendrequest(cmd, cp, tp, |
|
cp != tp || !interactive); |
|
restart_point = 0; |
if (!mflag && fromatty) { |
if (!mflag && fromatty) { |
if (confirm("Continue with", "mput", 1)) |
if (confirm("Continue with", |
|
argv[0], 1)) |
mflag = 1; |
mflag = 1; |
} |
} |
} |
} |
|
|
if (mflag && confirm(argv[0], argv[i], 0)) { |
if (mflag && confirm(argv[0], argv[i], 0)) { |
tp = (ntflag) ? dotrans(argv[i]) : argv[i]; |
tp = (ntflag) ? dotrans(argv[i]) : argv[i]; |
tp = (mapflag) ? domap(tp) : tp; |
tp = (mapflag) ? domap(tp) : tp; |
sendrequest((sunique) ? "STOU" : "STOR", |
#ifndef SMALL |
argv[i], tp, tp != argv[i] || !interactive); |
if (restartit == 1) { |
|
off_t ret; |
|
|
|
if (curtype != type) |
|
changetype(type, 0); |
|
ret = remotesize(tp, 0); |
|
restart_point = (ret < 0) ? 0 : ret; |
|
} |
|
#endif /* !SMALL */ |
|
cmd = restartit ? "APPE" : ((sunique) ? |
|
"STOU" : "STOR"); |
|
sendrequest(cmd, argv[i], tp, |
|
tp != argv[i] || !interactive); |
|
restart_point = 0; |
if (!mflag && fromatty) { |
if (!mflag && fromatty) { |
if (confirm("Continue with", "mput", 1)) |
if (confirm("Continue with", |
|
argv[0], 1)) |
mflag = 1; |
mflag = 1; |
} |
} |
} |
} |
|
|
if (mflag && confirm(argv[0], *cpp, 0)) { |
if (mflag && confirm(argv[0], *cpp, 0)) { |
tp = (ntflag) ? dotrans(*cpp) : *cpp; |
tp = (ntflag) ? dotrans(*cpp) : *cpp; |
tp = (mapflag) ? domap(tp) : tp; |
tp = (mapflag) ? domap(tp) : tp; |
sendrequest((sunique) ? "STOU" : "STOR", |
#ifndef SMALL |
*cpp, tp, *cpp != tp || !interactive); |
if (restartit == 1) { |
|
off_t ret; |
|
|
|
if (curtype != type) |
|
changetype(type, 0); |
|
ret = remotesize(tp, 0); |
|
restart_point = (ret < 0) ? 0 : ret; |
|
} |
|
#endif /* !SMALL */ |
|
cmd = restartit ? "APPE" : ((sunique) ? |
|
"STOU" : "STOR"); |
|
sendrequest(cmd, *cpp, tp, |
|
*cpp != tp || !interactive); |
|
restart_point = 0; |
if (!mflag && fromatty) { |
if (!mflag && fromatty) { |
if (confirm("Continue with", "mput", 1)) |
if (confirm("Continue with", |
|
argv[0], 1)) |
mflag = 1; |
mflag = 1; |
} |
} |
} |
} |
|
|
mflag = 0; |
mflag = 0; |
} |
} |
|
|
|
#ifndef SMALL |
void |
void |
reget(int argc, char *argv[]) |
reget(int argc, char *argv[]) |
{ |
{ |
|
|
(void)getit(argc, argv, 1, "r+w"); |
(void)getit(argc, argv, 1, "r+w"); |
} |
} |
|
#endif /* !SMALL */ |
|
|
void |
void |
get(int argc, char *argv[]) |
get(int argc, char *argv[]) |
|
|
argv[2] = dotrans(argv[2]); |
argv[2] = dotrans(argv[2]); |
if (loc && mapflag) |
if (loc && mapflag) |
argv[2] = domap(argv[2]); |
argv[2] = domap(argv[2]); |
|
#ifndef SMALL |
if (restartit) { |
if (restartit) { |
struct stat stbuf; |
struct stat stbuf; |
int ret; |
int ret; |
|
|
} |
} |
} |
} |
} |
} |
|
#endif /* !SMALL */ |
|
|
recvrequest("RETR", argv[2], argv[1], mode, |
recvrequest("RETR", argv[2], argv[1], mode, |
argv[1] != oldargv1 || argv[2] != oldargv2, loc); |
argv[1] != oldargv1 || argv[2] != oldargv2, loc); |
|
|
putc('\n', ttyout); |
putc('\n', ttyout); |
(void)fflush(ttyout); |
(void)fflush(ttyout); |
if (mflag && fromatty) |
if (mflag && fromatty) |
if (confirm("Continue with", mname, 0)) |
if (confirm("Continue with", mname, 1)) |
longjmp(jabort, 1); |
longjmp(jabort, 1); |
mflag = 0; |
mflag = 0; |
longjmp(jabort, 1); |
longjmp(jabort, 1); |
|
|
void |
void |
mget(int argc, char *argv[]) |
mget(int argc, char *argv[]) |
{ |
{ |
|
extern int optind, optreset; |
sig_t oldintr; |
sig_t oldintr; |
int ch; |
int ch, restartit = 0; |
char *cp, *tp, *tp2, tmpbuf[MAXPATHLEN], localcwd[MAXPATHLEN]; |
char *cp, *tp, *tp2, tmpbuf[MAXPATHLEN], localcwd[MAXPATHLEN]; |
|
|
if (argc < 2 && !another(&argc, &argv, "remote-files")) { |
optind = optreset = 1; |
fprintf(ttyout, "usage: %s remote-files\n", argv[0]); |
|
|
#ifndef SMALL |
|
while ((ch = getopt(argc, argv, "c")) != -1) { |
|
switch(ch) { |
|
case 'c': |
|
restartit = 1; |
|
break; |
|
default: |
|
goto usage; |
|
} |
|
} |
|
#endif /* !SMALL */ |
|
|
|
if (argc - optind < 1 && !another(&argc, &argv, "remote-files")) { |
|
usage: |
|
fprintf(ttyout, "usage: %s [-c] remote-files\n", argv[0]); |
code = -1; |
code = -1; |
return; |
return; |
} |
} |
|
|
|
#ifndef SMALL |
|
optind--; |
|
argv[optind] = argv[0]; |
|
argc -= optind; |
|
argv += optind; |
|
#endif /* !SMALL */ |
|
|
mname = argv[0]; |
mname = argv[0]; |
mflag = 1; |
mflag = 1; |
if (getcwd(localcwd, sizeof(localcwd)) == NULL) |
if (getcwd(localcwd, sizeof(localcwd)) == NULL) |
|
|
tp = dotrans(tp); |
tp = dotrans(tp); |
if (mapflag) |
if (mapflag) |
tp = domap(tp); |
tp = domap(tp); |
recvrequest("RETR", tp, cp, "w", |
#ifndef SMALL |
|
if (restartit == 1) { |
|
struct stat stbuf; |
|
int ret; |
|
|
|
ret = stat(tp, &stbuf); |
|
restart_point = (ret < 0) ? 0 : stbuf.st_size; |
|
} |
|
#endif /* !SMALL */ |
|
recvrequest("RETR", tp, cp, restart_point ? "r+w" : "w", |
tp != cp || !interactive, 1); |
tp != cp || !interactive, 1); |
|
restart_point = 0; |
if (!mflag && fromatty) { |
if (!mflag && fromatty) { |
if (confirm("Continue with", "mget", 1)) |
if (confirm("Continue with", argv[0], 1)) |
mflag = 1; |
mflag = 1; |
} |
} |
} |
} |
|
|
if (mflag && confirm(argv[0], cp, 0)) { |
if (mflag && confirm(argv[0], cp, 0)) { |
(void)command("DELE %s", cp); |
(void)command("DELE %s", cp); |
if (!mflag && fromatty) { |
if (!mflag && fromatty) { |
if (confirm("Continue with", "mdelete", 0)) |
if (confirm("Continue with", argv[0], 1)) |
mflag = 1; |
mflag = 1; |
} |
} |
} |
} |