projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
use glob in libc instead of local version
[unix-history]
/
usr
/
src
/
usr.bin
/
ftp
/
cmds.c
diff --git
a/usr/src/usr.bin/ftp/cmds.c
b/usr/src/usr.bin/ftp/cmds.c
index
0c5c5ff
..
1bc3bbc
100644
(file)
--- a/
usr/src/usr.bin/ftp/cmds.c
+++ b/
usr/src/usr.bin/ftp/cmds.c
@@
-1,12
+1,12
@@
/*
/*
- * Copyright (c) 1985, 1989
Regents of the University of California.
- * All rights reserved.
+ * Copyright (c) 1985, 1989
, 1993, 1994
+ *
The Regents of the University of California.
All rights reserved.
*
* %sccs.include.redist.c%
*/
#ifndef lint
*
* %sccs.include.redist.c%
*/
#ifndef lint
-static char sccsid[] = "@(#)cmds.c
5.28
(Berkeley) %G%";
+static char sccsid[] = "@(#)cmds.c
8.4
(Berkeley) %G%";
#endif /* not lint */
/*
#endif /* not lint */
/*
@@
-16,34
+16,24
@@
static char sccsid[] = "@(#)cmds.c 5.28 (Berkeley) %G%";
#include <sys/wait.h>
#include <sys/stat.h>
#include <sys/socket.h>
#include <sys/wait.h>
#include <sys/stat.h>
#include <sys/socket.h>
-
+#include <netinet/in.h>
#include <arpa/ftp.h>
#include <arpa/ftp.h>
+#include <ctype.h>
+#include <err.h>
+#include <netdb.h>
#include <signal.h>
#include <stdio.h>
#include <signal.h>
#include <stdio.h>
-#include <errno.h>
-#include <netdb.h>
-#include <ctype.h>
+#include <stdlib.h>
+#include <string.h>
#include <time.h>
#include <time.h>
-#include <
netinet/in
.h>
+#include <
unistd
.h>
#include "ftp_var.h"
#include "pathnames.h"
#include "ftp_var.h"
#include "pathnames.h"
-extern char *globerr;
-extern char **ftpglob();
-extern char *home;
-extern char *remglob();
-extern char *getenv();
-extern char *index();
-extern char *rindex();
-extern char *strerror();
-extern int errno;
-extern char reply_string[];
-
-char *mname;
-jmp_buf jabort;
-char *dotrans(), *domap();
+jmp_buf jabort;
+char *mname;
/*
* `Another' gets another argument, and stores the new argc and argv.
/*
* `Another' gets another argument, and stores the new argc and argv.
@@
-51,13
+41,13
@@
char *dotrans(), *domap();
*
* Returns false if no new arguments have been added.
*/
*
* Returns false if no new arguments have been added.
*/
+int
another(pargc, pargv, prompt)
int *pargc;
char ***pargv;
char *prompt;
{
int len = strlen(line), ret;
another(pargc, pargv, prompt)
int *pargc;
char ***pargv;
char *prompt;
{
int len = strlen(line), ret;
- extern sig_t intr();
if (len >= sizeof(line) - 3) {
printf("sorry, arguments too long\n");
if (len >= sizeof(line) - 3) {
printf("sorry, arguments too long\n");
@@
-81,11
+71,12
@@
another(pargc, pargv, prompt)
* Connect to peer server and
* auto-login, if possible.
*/
* Connect to peer server and
* auto-login, if possible.
*/
+void
setpeer(argc, argv)
int argc;
char *argv[];
{
setpeer(argc, argv)
int argc;
char *argv[];
{
- char *host
, *hookup()
;
+ char *host;
short port;
if (connected) {
short port;
if (connected) {
@@
-138,10
+129,10
@@
setpeer(argc, argv)
if (debug == 0)
verbose = -1;
if (command("SYST") == COMPLETE && overbose) {
if (debug == 0)
verbose = -1;
if (command("SYST") == COMPLETE && overbose) {
-
register
char *cp, c;
- cp =
index
(reply_string+4, ' ');
+ char *cp, c;
+ cp =
strchr
(reply_string+4, ' ');
if (cp == NULL)
if (cp == NULL)
- cp =
index
(reply_string+4, '\r');
+ cp =
strchr
(reply_string+4, '\r');
if (cp) {
if (cp[-1] == '.')
cp--;
if (cp) {
if (cp[-1] == '.')
cp--;
@@
-196,17
+187,18
@@
struct types {
{ "image", "I", TYPE_I, 0 },
{ "ebcdic", "E", TYPE_E, 0 },
{ "tenex", "L", TYPE_L, bytename },
{ "image", "I", TYPE_I, 0 },
{ "ebcdic", "E", TYPE_E, 0 },
{ "tenex", "L", TYPE_L, bytename },
- 0
+ { NULL }
};
/*
* Set transfer type.
*/
};
/*
* Set transfer type.
*/
+void
settype(argc, argv)
int argc;
char *argv[];
{
settype(argc, argv)
int argc;
char *argv[];
{
-
register
struct types *p;
+ struct types *p;
int comret;
if (argc > 2) {
int comret;
if (argc > 2) {
@@
-250,10
+242,11
@@
settype(argc, argv)
* without changing our notion of the type for data transfers.
* Used to change to and from ascii for listings.
*/
* without changing our notion of the type for data transfers.
* Used to change to and from ascii for listings.
*/
+void
changetype(newtype, show)
int newtype, show;
{
changetype(newtype, show)
int newtype, show;
{
-
register
struct types *p;
+ struct types *p;
int comret, oldverbose = verbose;
if (newtype == 0)
int comret, oldverbose = verbose;
if (newtype == 0)
@@
-288,8
+281,12
@@
char *stype[] = {
* Set binary transfer type.
*/
/*VARARGS*/
* Set binary transfer type.
*/
/*VARARGS*/
-setbinary()
+void
+setbinary(argc, argv)
+ int argc;
+ char **argv;
{
{
+
stype[1] = "binary";
settype(2, stype);
}
stype[1] = "binary";
settype(2, stype);
}
@@
-298,8
+295,12
@@
setbinary()
* Set ascii transfer type.
*/
/*VARARGS*/
* Set ascii transfer type.
*/
/*VARARGS*/
-setascii()
+void
+setascii(argc, argv)
+ int argc;
+ char *argv[];
{
{
+
stype[1] = "ascii";
settype(2, stype);
}
stype[1] = "ascii";
settype(2, stype);
}
@@
-308,8
+309,12
@@
setascii()
* Set tenex transfer type.
*/
/*VARARGS*/
* Set tenex transfer type.
*/
/*VARARGS*/
-settenex()
+void
+settenex(argc, argv)
+ int argc;
+ char *argv[];
{
{
+
stype[1] = "tenex";
settype(2, stype);
}
stype[1] = "tenex";
settype(2, stype);
}
@@
-318,7
+323,8
@@
settenex()
* Set file transfer mode.
*/
/*ARGSUSED*/
* Set file transfer mode.
*/
/*ARGSUSED*/
-setmode(argc, argv)
+void
+setftmode(argc, argv)
int argc;
char *argv[];
{
int argc;
char *argv[];
{
@@
-331,6
+337,7
@@
setmode(argc, argv)
* Set file transfer format.
*/
/*ARGSUSED*/
* Set file transfer format.
*/
/*ARGSUSED*/
+void
setform(argc, argv)
int argc;
char *argv[];
setform(argc, argv)
int argc;
char *argv[];
@@
-344,6
+351,7
@@
setform(argc, argv)
* Set file transfer structure.
*/
/*ARGSUSED*/
* Set file transfer structure.
*/
/*ARGSUSED*/
+void
setstruct(argc, argv)
int argc;
char *argv[];
setstruct(argc, argv)
int argc;
char *argv[];
@@
-356,6
+364,7
@@
setstruct(argc, argv)
/*
* Send a single file.
*/
/*
* Send a single file.
*/
+void
put(argc, argv)
int argc;
char *argv[];
put(argc, argv)
int argc;
char *argv[];
@@
-404,16
+413,15
@@
usage:
/*
* Send multiple files.
*/
/*
* Send multiple files.
*/
+void
mput(argc, argv)
int argc;
char **argv;
{
mput(argc, argv)
int argc;
char **argv;
{
- extern jmp_buf jabort;
- register int i;
+ int i;
sig_t oldintr;
int ointer;
char *tp;
sig_t oldintr;
int ointer;
char *tp;
- void mabort();
if (argc < 2 && !another(&argc, &argv, "local-files")) {
printf("usage: %s local-files\n", argv[0]);
if (argc < 2 && !another(&argc, &argv, "local-files")) {
printf("usage: %s local-files\n", argv[0]);
@@
-474,7
+482,7
@@
mput(argc, argv)
return;
}
for (i = 1; i < argc; i++) {
return;
}
for (i = 1; i < argc; i++) {
-
register
char **cpp, **gargs;
+ char **cpp, **gargs;
if (!doglob) {
if (mflag && confirm(argv[0], argv[i])) {
if (!doglob) {
if (mflag && confirm(argv[0], argv[i])) {
@@
-527,10
+535,13
@@
mput(argc, argv)
mflag = 0;
}
mflag = 0;
}
+void
+void
/*
* Receive one file.
*/
/*
* Receive one file.
*/
+int
get(argc, argv)
char *argv[];
{
get(argc, argv)
char *argv[];
{
@@
-582,11
+593,12
@@
usage:
recvrequest("RETR", argv[2], argv[1], "w");
}
recvrequest("RETR", argv[2], argv[1], "w");
}
+/* ARGSUSED */
void
void
-mabort()
+mabort(signo)
+ int signo;
{
int ointer;
{
int ointer;
- extern jmp_buf jabort;
printf("\n");
(void) fflush(stdout);
printf("\n");
(void) fflush(stdout);
@@
-606,15
+618,14
@@
mabort()
/*
* Get multiple files.
*/
/*
* Get multiple files.
*/
+void
mget(argc, argv)
int argc;
char **argv;
{
mget(argc, argv)
int argc;
char **argv;
{
- extern jmp_buf jabort;
sig_t oldintr;
int ch, ointer;
char *cp, *tp, *tp2, tmpbuf[MAXPATHLEN];
sig_t oldintr;
int ch, ointer;
char *cp, *tp, *tp2, tmpbuf[MAXPATHLEN];
- void mabort();
if (argc < 2 && !another(&argc, &argv, "remote-files")) {
printf("usage: %s remote-files\n", argv[0]);
if (argc < 2 && !another(&argc, &argv, "remote-files")) {
printf("usage: %s remote-files\n", argv[0]);
@@
-623,7
+634,7
@@
mget(argc, argv)
}
mname = argv[0];
mflag = 1;
}
mname = argv[0];
mflag = 1;
- oldintr = signal(SIGINT,mabort);
+ oldintr = signal(SIGINT,
mabort);
(void) setjmp(jabort);
while ((cp = remglob(argv,proxy)) != NULL) {
if (*cp == '\0') {
(void) setjmp(jabort);
while ((cp = remglob(argv,proxy)) != NULL) {
if (*cp == '\0') {
@@
-681,7
+692,7
@@
remglob(argv,doswitch)
ftemp = NULL;
}
}
ftemp = NULL;
}
}
- return(NULL);
+ return
(NULL);
}
if (!doglob) {
if (args == NULL)
}
if (!doglob) {
if (args == NULL)
@@
-715,7
+726,7
@@
remglob(argv,doswitch)
(void) fclose(ftemp), ftemp = NULL;
return (NULL);
}
(void) fclose(ftemp), ftemp = NULL;
return (NULL);
}
- if ((cp =
index
(buf, '\n')) != NULL)
+ if ((cp =
strchr
(buf, '\n')) != NULL)
*cp = '\0';
return (buf);
}
*cp = '\0';
return (buf);
}
@@
-732,6
+743,7
@@
onoff(bool)
* Show status.
*/
/*ARGSUSED*/
* Show status.
*/
/*ARGSUSED*/
+void
status(argc, argv)
int argc;
char *argv[];
status(argc, argv)
int argc;
char *argv[];
@@
-787,7
+799,10
@@
status(argc, argv)
* Set beep on cmd completed mode.
*/
/*VARARGS*/
* Set beep on cmd completed mode.
*/
/*VARARGS*/
-setbell()
+void
+setbell(argc, argv)
+ int argc;
+ char *argv[];
{
bell = !bell;
{
bell = !bell;
@@
-799,7
+814,10
@@
setbell()
* Turn on packet tracing.
*/
/*VARARGS*/
* Turn on packet tracing.
*/
/*VARARGS*/
-settrace()
+void
+settrace(argc, argv)
+ int argc;
+ char *argv[];
{
trace = !trace;
{
trace = !trace;
@@
-811,7
+829,10
@@
settrace()
* Toggle hash mark printing during transfers.
*/
/*VARARGS*/
* Toggle hash mark printing during transfers.
*/
/*VARARGS*/
-sethash()
+void
+sethash(argc, argv)
+ int argc;
+ char *argv[];
{
hash = !hash;
{
hash = !hash;
@@
-826,7
+847,10
@@
sethash()
* Turn on printing of server echo's.
*/
/*VARARGS*/
* Turn on printing of server echo's.
*/
/*VARARGS*/
-setverbose()
+void
+setverbose(argc, argv)
+ int argc;
+ char *argv[];
{
verbose = !verbose;
{
verbose = !verbose;
@@
-838,7
+862,10
@@
setverbose()
* Toggle PORT cmd use before each data connection.
*/
/*VARARGS*/
* Toggle PORT cmd use before each data connection.
*/
/*VARARGS*/
-setport()
+void
+setport(argc, argv)
+ int argc;
+ char *argv[];
{
sendport = !sendport;
{
sendport = !sendport;
@@
-851,7
+878,10
@@
setport()
* during mget, mput, and mdelete.
*/
/*VARARGS*/
* during mget, mput, and mdelete.
*/
/*VARARGS*/
-setprompt()
+void
+setprompt(argc, argv)
+ int argc;
+ char *argv[];
{
interactive = !interactive;
{
interactive = !interactive;
@@
-864,7
+894,10
@@
setprompt()
* on local file names.
*/
/*VARARGS*/
* on local file names.
*/
/*VARARGS*/
-setglob()
+void
+setglob(argc, argv)
+ int argc;
+ char *argv[];
{
doglob = !doglob;
{
doglob = !doglob;
@@
-877,6
+910,7
@@
setglob()
* set level of debugging.
*/
/*VARARGS*/
* set level of debugging.
*/
/*VARARGS*/
+void
setdebug(argc, argv)
int argc;
char *argv[];
setdebug(argc, argv)
int argc;
char *argv[];
@@
-905,6
+939,7
@@
setdebug(argc, argv)
* Set current working directory
* on remote machine.
*/
* Set current working directory
* on remote machine.
*/
+void
cd(argc, argv)
int argc;
char *argv[];
cd(argc, argv)
int argc;
char *argv[];
@@
-926,12
+961,12
@@
cd(argc, argv)
* Set current working directory
* on local machine.
*/
* Set current working directory
* on local machine.
*/
+void
lcd(argc, argv)
int argc;
char *argv[];
{
char buf[MAXPATHLEN];
lcd(argc, argv)
int argc;
char *argv[];
{
char buf[MAXPATHLEN];
- extern char *getwd();
if (argc < 2)
argc++, argv[1] = home;
if (argc < 2)
argc++, argv[1] = home;
@@
-945,7
+980,7
@@
lcd(argc, argv)
return;
}
if (chdir(argv[1]) < 0) {
return;
}
if (chdir(argv[1]) < 0) {
-
fprintf(stderr, "local: %s: %s\n", argv[1], strerror(errno)
);
+
warn("local: %s", argv[1]
);
code = -1;
return;
}
code = -1;
return;
}
@@
-956,6
+991,7
@@
lcd(argc, argv)
/*
* Delete a single file.
*/
/*
* Delete a single file.
*/
+void
delete(argc, argv)
int argc;
char *argv[];
delete(argc, argv)
int argc;
char *argv[];
@@
-972,15
+1008,14
@@
delete(argc, argv)
/*
* Delete multiple files.
*/
/*
* Delete multiple files.
*/
+void
mdelete(argc, argv)
int argc;
char **argv;
{
mdelete(argc, argv)
int argc;
char **argv;
{
- extern jmp_buf jabort;
sig_t oldintr;
int ointer;
char *cp;
sig_t oldintr;
int ointer;
char *cp;
- void mabort();
if (argc < 2 && !another(&argc, &argv, "remote-files")) {
printf("usage: %s remote-files\n", argv[0]);
if (argc < 2 && !another(&argc, &argv, "remote-files")) {
printf("usage: %s remote-files\n", argv[0]);
@@
-1015,6
+1050,7
@@
mdelete(argc, argv)
/*
* Rename a remote file.
*/
/*
* Rename a remote file.
*/
+void
renamefile(argc, argv)
int argc;
char *argv[];
renamefile(argc, argv)
int argc;
char *argv[];
@@
-1036,6
+1072,7
@@
usage:
* Get a directory listing
* of remote files.
*/
* Get a directory listing
* of remote files.
*/
+void
ls(argc, argv)
int argc;
char *argv[];
ls(argc, argv)
int argc;
char *argv[];
@@
-1068,15
+1105,14
@@
ls(argc, argv)
* Get a directory listing
* of multiple remote files.
*/
* Get a directory listing
* of multiple remote files.
*/
+void
mls(argc, argv)
int argc;
char **argv;
{
mls(argc, argv)
int argc;
char **argv;
{
- extern jmp_buf jabort;
sig_t oldintr;
int ointer, i;
char *cmd, mode[1], *dest;
sig_t oldintr;
int ointer, i;
char *cmd, mode[1], *dest;
- void mabort();
if (argc < 2 && !another(&argc, &argv, "remote-files"))
goto usage;
if (argc < 2 && !another(&argc, &argv, "remote-files"))
goto usage;
@@
-1119,11
+1155,12
@@
usage:
* Do a shell escape
*/
/*ARGSUSED*/
* Do a shell escape
*/
/*ARGSUSED*/
+void
shell(argc, argv)
int argc;
char **argv;
{
shell(argc, argv)
int argc;
char **argv;
{
-
in
t pid;
+
pid_
t pid;
sig_t old1, old2;
char shellnam[40], *shell, *namep;
union wait status;
sig_t old1, old2;
char shellnam[40], *shell, *namep;
union wait status;
@@
-1138,7
+1175,7
@@
shell(argc, argv)
shell = getenv("SHELL");
if (shell == NULL)
shell = _PATH_BSHELL;
shell = getenv("SHELL");
if (shell == NULL)
shell = _PATH_BSHELL;
- namep =
rindex
(shell,'/');
+ namep =
strrchr
(shell,'/');
if (namep == NULL)
namep = shell;
(void) strcpy(shellnam,"-");
if (namep == NULL)
namep = shell;
(void) strcpy(shellnam,"-");
@@
-1155,33
+1192,33
@@
shell(argc, argv)
else {
execl(shell,shellnam,(char *)0);
}
else {
execl(shell,shellnam,(char *)0);
}
-
perror(
shell);
+
warn("%s",
shell);
code = -1;
exit(1);
code = -1;
exit(1);
-
}
+ }
if (pid > 0)
while (wait((int *)&status) != pid)
;
(void) signal(SIGINT, old1);
(void) signal(SIGQUIT, old2);
if (pid == -1) {
if (pid > 0)
while (wait((int *)&status) != pid)
;
(void) signal(SIGINT, old1);
(void) signal(SIGQUIT, old2);
if (pid == -1) {
-
perror(
"Try again later");
+
warn("%s",
"Try again later");
code = -1;
}
else {
code = 0;
}
code = -1;
}
else {
code = 0;
}
- return (0);
}
/*
* Send new user information (re-login)
*/
}
/*
* Send new user information (re-login)
*/
+void
user(argc, argv)
int argc;
char **argv;
{
user(argc, argv)
int argc;
char **argv;
{
- char acct[80]
, *getpass()
;
+ char acct[80];
int n, aflag = 0;
if (argc < 2)
int n, aflag = 0;
if (argc < 2)
@@
-1189,7
+1226,7
@@
user(argc, argv)
if (argc < 2 || argc > 4) {
printf("usage: %s username [password] [account]\n", argv[0]);
code = -1;
if (argc < 2 || argc > 4) {
printf("usage: %s username [password] [account]\n", argv[0]);
code = -1;
- return
(0)
;
+ return;
}
n = command("USER %s", argv[1]);
if (n == CONTINUE) {
}
n = command("USER %s", argv[1]);
if (n == CONTINUE) {
@@
-1209,19
+1246,21
@@
user(argc, argv)
}
if (n != COMPLETE) {
fprintf(stdout, "Login failed.\n");
}
if (n != COMPLETE) {
fprintf(stdout, "Login failed.\n");
- return
(0)
;
+ return;
}
if (!aflag && argc == 4) {
(void) command("ACCT %s", argv[3]);
}
}
if (!aflag && argc == 4) {
(void) command("ACCT %s", argv[3]);
}
- return (1);
}
/*
* Print working directory.
*/
/*VARARGS*/
}
/*
* Print working directory.
*/
/*VARARGS*/
-pwd()
+void
+pwd(argc, argv)
+ int argc;
+ char *argv[];
{
int oldverbose = verbose;
{
int oldverbose = verbose;
@@
-1239,6
+1278,7
@@
pwd()
/*
* Make a directory.
*/
/*
* Make a directory.
*/
+void
makedir(argc, argv)
int argc;
char *argv[];
makedir(argc, argv)
int argc;
char *argv[];
@@
-1259,6
+1299,7
@@
makedir(argc, argv)
/*
* Remove a directory.
*/
/*
* Remove a directory.
*/
+void
removedir(argc, argv)
int argc;
char *argv[];
removedir(argc, argv)
int argc;
char *argv[];
@@
-1279,6
+1320,7
@@
removedir(argc, argv)
/*
* Send a line, verbatim, to the remote machine.
*/
/*
* Send a line, verbatim, to the remote machine.
*/
+void
quote(argc, argv)
int argc;
char *argv[];
quote(argc, argv)
int argc;
char *argv[];
@@
-1297,6
+1339,7
@@
quote(argc, argv)
* is sent verbatim to the remote machine, except that the
* word "SITE" is added at the front.
*/
* is sent verbatim to the remote machine, except that the
* word "SITE" is added at the front.
*/
+void
site(argc, argv)
int argc;
char *argv[];
site(argc, argv)
int argc;
char *argv[];
@@
-1314,12
+1357,13
@@
site(argc, argv)
* Turn argv[1..argc) into a space-separated string, then prepend initial text.
* Send the result as a one-line command and get response.
*/
* Turn argv[1..argc) into a space-separated string, then prepend initial text.
* Send the result as a one-line command and get response.
*/
+void
quote1(initial, argc, argv)
char *initial;
int argc;
char **argv;
{
quote1(initial, argc, argv)
char *initial;
int argc;
char **argv;
{
-
register
int i, len;
+ int i, len;
char buf[BUFSIZ]; /* must be >= sizeof(line) */
(void) strcpy(buf, initial);
char buf[BUFSIZ]; /* must be >= sizeof(line) */
(void) strcpy(buf, initial);
@@
-1332,10
+1376,12
@@
quote1(initial, argc, argv)
}
}
if (command(buf) == PRELIM) {
}
}
if (command(buf) == PRELIM) {
- while (getreply(0) == PRELIM);
+ while (getreply(0) == PRELIM)
+ continue;
}
}
}
}
+void
do_chmod(argc, argv)
int argc;
char *argv[];
do_chmod(argc, argv)
int argc;
char *argv[];
@@
-1352,6
+1398,7
@@
usage:
(void) command("SITE CHMOD %s %s", argv[1], argv[2]);
}
(void) command("SITE CHMOD %s %s", argv[1], argv[2]);
}
+void
do_umask(argc, argv)
int argc;
char *argv[];
do_umask(argc, argv)
int argc;
char *argv[];
@@
-1363,6
+1410,7
@@
do_umask(argc, argv)
verbose = oldverbose;
}
verbose = oldverbose;
}
+void
idle(argc, argv)
int argc;
char *argv[];
idle(argc, argv)
int argc;
char *argv[];
@@
-1377,6
+1425,7
@@
idle(argc, argv)
/*
* Ask the other side for help.
*/
/*
* Ask the other side for help.
*/
+void
rmthelp(argc, argv)
int argc;
char *argv[];
rmthelp(argc, argv)
int argc;
char *argv[];
@@
-1392,14
+1441,17
@@
rmthelp(argc, argv)
* Terminate session and exit.
*/
/*VARARGS*/
* Terminate session and exit.
*/
/*VARARGS*/
-quit()
+void
+quit(argc, argv)
+ int argc;
+ char *argv[];
{
if (connected)
{
if (connected)
- disconnect();
+ disconnect(
0, 0
);
pswitch(1);
if (connected) {
pswitch(1);
if (connected) {
- disconnect();
+ disconnect(
0, 0
);
}
exit(0);
}
}
exit(0);
}
@@
-1407,10
+1459,11
@@
quit()
/*
* Terminate session, but don't exit.
*/
/*
* Terminate session, but don't exit.
*/
-disconnect()
+void
+disconnect(argc, argv)
+ int argc;
+ char *argv[];
{
{
- extern FILE *cout;
- extern int data;
if (!connected)
return;
if (!connected)
return;
@@
-1426,6
+1479,7
@@
disconnect()
}
}
}
}
+int
confirm(cmd, file)
char *cmd, *file;
{
confirm(cmd, file)
char *cmd, *file;
{
@@
-1440,12
+1494,12
@@
confirm(cmd, file)
return (*line != 'n' && *line != 'N');
}
return (*line != 'n' && *line != 'N');
}
+void
fatal(msg)
char *msg;
{
fatal(msg)
char *msg;
{
- fprintf(stderr, "ftp: %s\n", msg);
- exit(1);
+ errx(1, "%s", msg);
}
/*
}
/*
@@
-1454,6
+1508,7
@@
fatal(msg)
* Can't control multiple values being expanded
* from the expression, we return only the first.
*/
* Can't control multiple values being expanded
* from the expression, we return only the first.
*/
+int
globulize(cpp)
char **cpp;
{
globulize(cpp)
char **cpp;
{
@@
-1473,14
+1528,15
@@
globulize(cpp)
if (globbed) {
*cpp = *globbed++;
/* don't waste too much memory */
if (globbed) {
*cpp = *globbed++;
/* don't waste too much memory */
- if (
*
globbed) {
- blkfree(
*
globbed);
+ if (globbed) {
+ blkfree(globbed);
free((char *)*globbed);
}
}
return (1);
}
free((char *)*globbed);
}
}
return (1);
}
+void
account(argc,argv)
int argc;
char **argv;
account(argc,argv)
int argc;
char **argv;
@@
-1510,7
+1566,6
@@
jmp_buf abortprox;
void
proxabort()
{
void
proxabort()
{
- extern int proxy;
if (!proxy) {
pswitch(1);
if (!proxy) {
pswitch(1);
@@
-1525,16
+1580,13
@@
proxabort()
longjmp(abortprox,1);
}
longjmp(abortprox,1);
}
-doproxy(argc,argv)
+void
+doproxy(argc, argv)
int argc;
char *argv[];
{
int argc;
char *argv[];
{
- extern struct cmd cmdtab[];
- extern jmp_buf abortprox;
- register struct cmd *c;
- struct cmd *getcmd();
+ struct cmd *c;
sig_t oldintr;
sig_t oldintr;
- void proxabort();
if (argc < 2 && !another(&argc, &argv, "command")) {
printf("usage: %s command\n", argv[0]);
if (argc < 2 && !another(&argc, &argv, "command")) {
printf("usage: %s command\n", argv[0]);
@@
-1585,20
+1637,29
@@
doproxy(argc,argv)
(void) signal(SIGINT, oldintr);
}
(void) signal(SIGINT, oldintr);
}
-setcase()
+void
+setcase(argc, argv)
+ int argc;
+ char *argv[];
{
{
+
mcase = !mcase;
printf("Case mapping %s.\n", onoff(mcase));
code = mcase;
}
mcase = !mcase;
printf("Case mapping %s.\n", onoff(mcase));
code = mcase;
}
-setcr()
+void
+setcr(argc, argv)
+ int argc;
+ char *argv[];
{
{
+
crflag = !crflag;
printf("Carriage Return stripping %s.\n", onoff(crflag));
code = crflag;
}
crflag = !crflag;
printf("Carriage Return stripping %s.\n", onoff(crflag));
code = crflag;
}
+void
setntrans(argc,argv)
int argc;
char *argv[];
setntrans(argc,argv)
int argc;
char *argv[];
@@
-1627,9
+1688,10
@@
dotrans(name)
{
static char new[MAXPATHLEN];
char *cp1, *cp2 = new;
{
static char new[MAXPATHLEN];
char *cp1, *cp2 = new;
-
register
int i, ostop, found;
+ int i, ostop, found;
- for (ostop = 0; *(ntout + ostop) && ostop < 16; ostop++);
+ for (ostop = 0; *(ntout + ostop) && ostop < 16; ostop++)
+ continue;
for (cp1 = name; *cp1; cp1++) {
found = 0;
for (i = 0; *(ntin + i) && i < 16; i++) {
for (cp1 = name; *cp1; cp1++) {
found = 0;
for (i = 0; *(ntin + i) && i < 16; i++) {
@@
-1646,9
+1708,10
@@
dotrans(name)
}
}
*cp2 = '\0';
}
}
*cp2 = '\0';
- return(new);
+ return
(new);
}
}
+void
setnmap(argc, argv)
int argc;
char *argv[];
setnmap(argc, argv)
int argc;
char *argv[];
@@
-1668,15
+1731,17
@@
setnmap(argc, argv)
}
mapflag = 1;
code = 1;
}
mapflag = 1;
code = 1;
- cp =
index
(altarg, ' ');
+ cp =
strchr
(altarg, ' ');
if (proxy) {
if (proxy) {
- while(*++cp == ' ');
+ while(*++cp == ' ')
+ continue;
altarg = cp;
altarg = cp;
- cp =
index
(altarg, ' ');
+ cp =
strchr
(altarg, ' ');
}
*cp = '\0';
(void) strncpy(mapin, altarg, MAXPATHLEN - 1);
}
*cp = '\0';
(void) strncpy(mapin, altarg, MAXPATHLEN - 1);
- while (*++cp == ' ');
+ while (*++cp == ' ')
+ continue;
(void) strncpy(mapout, cp, MAXPATHLEN - 1);
}
(void) strncpy(mapout, cp, MAXPATHLEN - 1);
}
@@
-1685,7
+1750,7
@@
domap(name)
char *name;
{
static char new[MAXPATHLEN];
char *name;
{
static char new[MAXPATHLEN];
-
register
char *cp1 = name, *cp2 = mapin;
+ char *cp1 = name, *cp2 = mapin;
char *tp[9], *te[9];
int i, toks[9], toknum = 0, match = 1;
char *tp[9], *te[9];
int i, toks[9], toknum = 0, match = 1;
@@
-1791,7
+1856,7
@@
LOOP:
}
if (!*cp2) {
printf("nmap: unbalanced brackets\n");
}
if (!*cp2) {
printf("nmap: unbalanced brackets\n");
- return(name);
+ return
(name);
}
match = 1;
cp2--;
}
match = 1;
cp2--;
@@
-1804,7
+1869,7
@@
LOOP:
}
if (!*cp2) {
printf("nmap: unbalanced brackets\n");
}
if (!*cp2) {
printf("nmap: unbalanced brackets\n");
- return(name);
+ return
(name);
}
break;
}
}
break;
}
@@
-1845,28
+1910,40
@@
LOOP:
}
*cp1 = '\0';
if (!*new) {
}
*cp1 = '\0';
if (!*new) {
- return(name);
+ return
(name);
}
}
- return(new);
+ return
(new);
}
}
-setsunique()
+void
+setsunique(argc, argv)
+ int argc;
+ char *argv[];
{
{
+
sunique = !sunique;
printf("Store unique %s.\n", onoff(sunique));
code = sunique;
}
sunique = !sunique;
printf("Store unique %s.\n", onoff(sunique));
code = sunique;
}
-setrunique()
+void
+setrunique(argc, argv)
+ int argc;
+ char *argv[];
{
{
+
runique = !runique;
printf("Receive unique %s.\n", onoff(runique));
code = runique;
}
/* change directory to perent directory */
runique = !runique;
printf("Receive unique %s.\n", onoff(runique));
code = runique;
}
/* change directory to perent directory */
-cdup()
+void
+cdup(argc, argv)
+ int argc;
+ char *argv[];
{
{
+
if (command("CDUP") == ERROR && code == 500) {
if (verbose)
printf("CDUP command not recognized, trying XCUP\n");
if (command("CDUP") == ERROR && code == 500) {
if (verbose)
printf("CDUP command not recognized, trying XCUP\n");
@@
-1876,11
+1953,16
@@
cdup()
/* show remote system type */
/* show remote system type */
-syst()
+void
+syst(argc, argv)
+ int argc;
+ char *argv[];
{
{
+
(void) command("SYST");
}
(void) command("SYST");
}
+void
macdef(argc, argv)
int argc;
char *argv[];
macdef(argc, argv)
int argc;
char *argv[];
@@
-1944,6
+2026,7
@@
macdef(argc, argv)
/*
* get size of file on remote machine
*/
/*
* get size of file on remote machine
*/
+void
sizecmd(argc, argv)
int argc;
char *argv[];
sizecmd(argc, argv)
int argc;
char *argv[];
@@
-1960,6
+2043,7
@@
sizecmd(argc, argv)
/*
* get last modification time of file on remote machine
*/
/*
* get last modification time of file on remote machine
*/
+void
modtime(argc, argv)
int argc;
char *argv[];
modtime(argc, argv)
int argc;
char *argv[];
@@
-1989,9
+2073,11
@@
modtime(argc, argv)
/*
* show status on remote machine
*/
/*
* show status on remote machine
*/
+void
rmtstatus(argc, argv)
int argc;
char *argv[];
{
rmtstatus(argc, argv)
int argc;
char *argv[];
{
+
(void) command(argc > 1 ? "STAT %s" : "STAT" , argv[1]);
}
(void) command(argc > 1 ? "STAT %s" : "STAT" , argv[1]);
}