2
* Copyright (c) 1985, 1989 Regents of the University of California.
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
8
* 1. Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer.
10
* 2. Redistributions in binary form must reproduce the above copyright
11
* notice, this list of conditions and the following disclaimer in the
12
* documentation and/or other materials provided with the distribution.
13
* 3. All advertising materials mentioning features or use of this software
14
* must display the following acknowledgement:
15
* This product includes software developed by the University of
16
* California, Berkeley and its contributors.
17
* 4. Neither the name of the University nor the names of its contributors
18
* may be used to endorse or promote products derived from this software
19
* without specific prior written permission.
21
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
22
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
25
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33
* from: @(#)ftp_var.h 5.9 (Berkeley) 6/1/90
34
* $Id: ftp_var.h,v 1.12 1999/10/02 18:39:17 dholland Exp $
38
* FTP global variables.
42
#include <sys/param.h>
45
* Tick counter step size.
47
#define TICKBYTES 10240
55
* Options and other state info.
57
Extern int rl_inhibit; /* disable readline support */
58
Extern int traceflag; /* trace packets exchanged */
59
Extern int hash; /* print # for each buffer transferred */
60
Extern int tick; /* print byte counter during transfers */
61
Extern int sendport; /* use PORT cmd for each data connection */
62
Extern int verbose; /* print messages coming back from server */
63
Extern int connected; /* connected to server */
64
Extern int fromatty; /* input is from a terminal */
65
Extern int interactive; /* interactively prompt on m* cmds */
66
Extern int debug; /* debugging level */
67
Extern int bell; /* ring bell on cmd completion */
68
Extern int doglob; /* glob local file names */
69
Extern int autologin; /* establish user account on connection */
70
Extern int proxy; /* proxy server connection active */
71
Extern int proxflag; /* proxy connection exists */
72
Extern int sunique; /* store files on server with unique name */
73
Extern int runique; /* store local files with unique name */
74
Extern int mcase; /* map upper to lower case for mget names */
75
Extern int ntflag; /* use ntin ntout tables for name xlation */
76
Extern int mapflag; /* use mapin mapout templates on file names */
77
Extern int code; /* return/reply code for ftp command */
78
Extern int crflag; /* if 1, strip car. rets. on ascii gets */
79
Extern int qcflag; /* if 1, print ? instead of control chars */
80
Extern char pasv[64]; /* passive port for proxy data connection */
81
Extern int passivemode; /* passive mode enabled */
82
Extern char *altarg; /* argv[1] with no shell-like preprocessing */
83
Extern char ntin[17]; /* input translation table */
84
Extern char ntout[17]; /* output translation table */
85
Extern char mapin[MAXPATHLEN]; /* input map template */
86
Extern char mapout[MAXPATHLEN]; /* output map template */
87
Extern char typename[32]; /* name of file transfer type */
88
Extern int type; /* requested file transfer type */
89
Extern int curtype; /* current file transfer type */
90
Extern char structname[32]; /* name of file transfer structure */
91
Extern int stru; /* file transfer structure */
92
Extern char formname[32]; /* name of file transfer format */
93
Extern int form; /* file transfer format */
94
Extern char modename[32]; /* name of file transfer mode */
95
Extern int mode; /* file transfer mode */
96
Extern char bytename[32]; /* local byte size in ascii */
97
Extern int bytesize; /* local byte size in binary */
99
Extern char *hostname; /* name of host connected to */
100
Extern int unix_server; /* server is unix, can use binary for ascii */
101
Extern int unix_proxy; /* proxy is unix, can use binary for ascii */
103
/*Extern struct servent *sp;*/ /* service spec for tcp/ftp */
104
Extern int ftp_port; /* htons'd port number for ftp service */
106
Extern sigjmp_buf *toplevel; /* non-local goto stuff for cmd scanner */
108
Extern char *line; /* input line buffer */
109
Extern char *stringbase; /* current scan point in line buffer */
110
Extern char *argbuf; /* argument storage buffer */
111
Extern char *argbase; /* current storage point in arg buffer */
112
Extern int cpend; /* flag: if != 0, then pending server reply */
113
Extern int mflag; /* flag: if != 0, then active multi command */
115
Extern int options; /* used during socket creation */
118
* Format of command table.
121
const char *c_name; /* name of command */
122
const char *c_help; /* help string */
123
char c_bell; /* give bell when command completes */
124
char c_conn; /* must be connected to use command */
125
char c_proxy; /* proxy server may execute */
127
/* Exactly one of these should be non-NULL. */
128
void (*c_handler_v)(int, char **); /* function to call */
129
void (*c_handler_0)(void);
130
void (*c_handler_1)(const char *);
134
char mac_name[9]; /* macro name */
135
char *mac_start; /* start of macro in macbuf */
136
char *mac_end; /* end of macro in macbuf */
139
Extern int macnum; /* number of defined macros */
140
Extern struct macel macros[16];
141
Extern char macbuf[4096];
142
#define MACBUF_SIZE 4096
144
char *hookup(char *host, int port);
145
struct cmd *getcmd(const char *);
146
char **makeargv(int *pargc, char **parg);
147
int dologin(const char *host);
148
int command(const char *fmt, ...);
149
void sendrequest(const char *cmd, char *local, char *remote, int printnames);
150
void recvrequest(const char *cmd, char *local, char *remote,
151
const char *lmode, int printnames);
152
int another(int *pargc, char ***pargv, const char *prompt);
153
void blkfree(char **av0);
154
void fatal(const char *msg);
155
int getreply(int expecteof);
156
void domacro(int argc, char *argv[]);
157
void pswitch(int flag);
158
int xruserpass(const char *host, char **aname, char **apass, char **aacct);
159
void setpeer(int argc, char *argv[]);
161
void changetype(int newtype, int show);
164
#include "ssl_port.h"