SCCS-vsn: usr.bin/ftp/ftp.c 5.32
-static char sccsid[] = "@(#)ftp.c 5.31 (Berkeley) %G%";
+static char sccsid[] = "@(#)ftp.c 5.32 (Berkeley) %G%";
#endif /* not lint */
#include <sys/param.h>
#endif /* not lint */
#include <sys/param.h>
int data = -1;
int abrtflag = 0;
int ptflag = 0;
int data = -1;
int abrtflag = 0;
int ptflag = 0;
struct sockaddr_in myctladdr;
uid_t getuid();
sig_t lostpeer();
extern char *strerror();
struct sockaddr_in myctladdr;
uid_t getuid();
sig_t lostpeer();
extern char *strerror();
+extern int connected, errno;
FILE *cin, *cout;
FILE *dataconn();
FILE *cin, *cout;
FILE *dataconn();
- if (setsockopt(s, SOL_SOCKET, SO_OOBINLINE, &on, sizeof(on))
+ if (setsockopt(s, SOL_SOCKET, SO_OOBINLINE, (char *)&on, sizeof(on))
< 0 && debug) {
perror("ftp: setsockopt");
}
< 0 && debug) {
perror("ftp: setsockopt");
}
cmdabort()
{
extern jmp_buf ptabort;
cmdabort()
{
extern jmp_buf ptabort;
va_list ap;
char *fmt;
int r;
va_list ap;
char *fmt;
int r;
- sig_t (*oldintr)(), cmdabort();
+ sig_t oldintr;
+ void cmdabort();
abrtflag = 0;
if (debug) {
abrtflag = 0;
if (debug) {
register int dig;
register char *cp;
int originalcode = 0, continuation = 0;
register int dig;
register char *cp;
int originalcode = 0, continuation = 0;
- sig_t (*oldintr)(), cmdabort();
int pflag = 0;
char *pt = pasv;
int pflag = 0;
char *pt = pasv;
oldintr = signal(SIGINT, cmdabort);
for (;;) {
oldintr = signal(SIGINT, cmdabort);
for (;;) {
char *cmd, *local, *remote;
int printnames;
{
char *cmd, *local, *remote;
int printnames;
{
+ struct stat st;
+ struct timeval start, stop;
+ register int c, d;
FILE *fin, *dout = 0, *popen();
int (*closefunc)(), pclose(), fclose();
FILE *fin, *dout = 0, *popen();
int (*closefunc)(), pclose(), fclose();
- sig_t (*oldintr)(), (*oldintp)();
- int abortsend();
char buf[BUFSIZ], *bufp;
long bytes = 0, hashbytes = HASHBYTES;
char buf[BUFSIZ], *bufp;
long bytes = 0, hashbytes = HASHBYTES;
- register int c, d;
- struct stat st;
- struct timeval start, stop;
- char *mode;
+ char *lmode, buf[BUFSIZ], *bufp;
+ void abortsend();
if (verbose && printnames) {
if (local && *local != '-')
if (verbose && printnames) {
if (local && *local != '-')
closefunc = NULL;
oldintr = NULL;
oldintp = NULL;
closefunc = NULL;
oldintr = NULL;
oldintp = NULL;
if (setjmp(sendabort)) {
while (cpend) {
(void) getreply(0);
if (setjmp(sendabort)) {
while (cpend) {
(void) getreply(0);
(*closefunc)(fin);
return;
}
(*closefunc)(fin);
return;
}
+ dout = dataconn(lmode);
if (dout == NULL)
goto abort;
(void) gettimeofday(&start, (struct timezone *)0);
if (dout == NULL)
goto abort;
(void) gettimeofday(&start, (struct timezone *)0);
-recvrequest(cmd, local, remote, mode, printnames)
- char *cmd, *local, *remote, *mode;
+recvrequest(cmd, local, remote, lmode, printnames)
+ char *cmd, *local, *remote, *lmode;
{
FILE *fout, *din = 0, *popen();
char *bufp, *gunique(), msg;
{
FILE *fout, *din = 0, *popen();
char *bufp, *gunique(), msg;
register int c, d;
struct timeval start, stop;
struct stat st;
register int c, d;
struct timeval start, stop;
struct stat st;
+ off_t lseek();
+ void abortrecv();
+ char *malloc();
is_retr = strcmp(cmd, "RETR") == 0;
if (is_retr && verbose && printnames) {
is_retr = strcmp(cmd, "RETR") == 0;
if (is_retr && verbose && printnames) {
}
closefunc = pclose;
} else {
}
closefunc = pclose;
} else {
- fout = fopen(local, mode);
+ fout = fopen(local, lmode);
if (fout == NULL) {
fprintf(stderr, "local: %s: %s\n", local,
strerror(errno));
if (fout == NULL) {
fprintf(stderr, "local: %s: %s\n", local,
strerror(errno));
- * Need to start a listen on the data channel
- * before we send the command, otherwise the
- * server's connect may fail.
+ * Need to start a listen on the data channel before we send the command,
+ * otherwise the server's connect may fail.
initconn()
{
register char *p, *a;
initconn()
{
register char *p, *a;
-dataconn(mode)
- char *mode;
+dataconn(lmode)
+ char *lmode;
{
struct sockaddr_in from;
int s, fromlen = sizeof (from);
{
struct sockaddr_in from;
int s, fromlen = sizeof (from);
}
(void) close(data);
data = s;
}
(void) close(data);
data = s;
- return (fdopen(data, mode));
+ return (fdopen(data, lmode));
}
ptransfer(direction, bytes, t0, t1)
}
ptransfer(direction, bytes, t0, t1)
tdiff->tv_sec--, tdiff->tv_usec += 1000000;
}
tdiff->tv_sec--, tdiff->tv_usec += 1000000;
}
psabort()
{
extern int abrtflag;
psabort()
{
extern int abrtflag;
int flag;
{
extern int proxy, abrtflag;
int flag;
{
extern int proxy, abrtflag;
static struct comvars {
int connect;
char name[MAXHOSTNAMELEN];
static struct comvars {
int connect;
char name[MAXHOSTNAMELEN];
jmp_buf ptabort;
int ptabflg;
jmp_buf ptabort;
int ptabflg;
abortpt()
{
printf("\n");
abortpt()
{
printf("\n");
proxtrans(cmd, local, remote)
char *cmd, *local, *remote;
{
proxtrans(cmd, local, remote)
char *cmd, *local, *remote;
{
- sig_t (*oldintr)(), abortpt();
int secndflag = 0, prox_type, nfnd;
extern jmp_buf ptabort;
char *cmd2;
struct fd_set mask;
int secndflag = 0, prox_type, nfnd;
extern jmp_buf ptabort;
char *cmd2;
struct fd_set mask;
if (strcmp(cmd, "RETR"))
cmd2 = "RETR";
if (strcmp(cmd, "RETR"))
cmd2 = "RETR";