Import of NetBSD's ftp client under its new name (tnftp)
[dragonfly.git] / contrib / tnftp / extern.h
1 /*      $NetBSD: extern.h,v 1.70 2006/01/31 20:01:23 christos Exp $     */
2
3 /*-
4  * Copyright (c) 1996-2005 The NetBSD Foundation, Inc.
5  * All rights reserved.
6  *
7  * This code is derived from software contributed to The NetBSD Foundation
8  * by Luke Mewburn.
9  *
10  * Redistribution and use in source and binary forms, with or without
11  * modification, are permitted provided that the following conditions
12  * are met:
13  * 1. Redistributions of source code must retain the above copyright
14  *    notice, this list of conditions and the following disclaimer.
15  * 2. Redistributions in binary form must reproduce the above copyright
16  *    notice, this list of conditions and the following disclaimer in the
17  *    documentation and/or other materials provided with the distribution.
18  * 3. All advertising materials mentioning features or use of this software
19  *    must display the following acknowledgement:
20  *      This product includes software developed by the NetBSD
21  *      Foundation, Inc. and its contributors.
22  * 4. Neither the name of The NetBSD Foundation nor the names of its
23  *    contributors may be used to endorse or promote products derived
24  *    from this software without specific prior written permission.
25  *
26  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
27  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
28  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
29  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
30  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
33  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
34  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
35  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
36  * POSSIBILITY OF SUCH DAMAGE.
37  */
38
39 /*-
40  * Copyright (c) 1994 The Regents of the University of California.
41  * All rights reserved.
42  *
43  * Redistribution and use in source and binary forms, with or without
44  * modification, are permitted provided that the following conditions
45  * are met:
46  * 1. Redistributions of source code must retain the above copyright
47  *    notice, this list of conditions and the following disclaimer.
48  * 2. Redistributions in binary form must reproduce the above copyright
49  *    notice, this list of conditions and the following disclaimer in the
50  *    documentation and/or other materials provided with the distribution.
51  * 3. Neither the name of the University nor the names of its contributors
52  *    may be used to endorse or promote products derived from this software
53  *    without specific prior written permission.
54  *
55  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
56  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
57  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
58  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
59  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
60  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
61  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
62  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
63  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
64  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
65  * SUCH DAMAGE.
66  *
67  *      @(#)extern.h    8.3 (Berkeley) 10/9/94
68  */
69
70 /*
71  * Copyright (C) 1997 and 1998 WIDE Project.
72  * All rights reserved.
73  *
74  * Redistribution and use in source and binary forms, with or without
75  * modification, are permitted provided that the following conditions
76  * are met:
77  * 1. Redistributions of source code must retain the above copyright
78  *    notice, this list of conditions and the following disclaimer.
79  * 2. Redistributions in binary form must reproduce the above copyright
80  *    notice, this list of conditions and the following disclaimer in the
81  *    documentation and/or other materials provided with the distribution.
82  * 3. Neither the name of the project nor the names of its contributors
83  *    may be used to endorse or promote products derived from this software
84  *    without specific prior written permission.
85  *
86  * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
87  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
88  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
89  * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
90  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
91  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
92  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
93  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
94  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
95  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
96  * SUCH DAMAGE.
97  */
98
99 struct sockaddr;
100 struct tm;
101 struct addrinfo;
102
103 void    abort_remote(FILE *);
104 void    abort_squared(int);
105 void    abortpt(int);
106 void    abortxfer(int);
107 void    account(int, char **);
108 void    ai_unmapped(struct addrinfo *);
109 int     another(int *, char ***, const char *);
110 int     auto_fetch(int, char **);
111 int     auto_put(int, char **, const char *);
112 void    blkfree(char **);
113 void    cd(int, char **);
114 void    cdup(int, char **);
115 void    changetype(int, int);
116 void    cleanuppeer(void);
117 void    cmdabort(int);
118 void    cmdtimeout(int);
119 void    cmdscanner(void);
120 int     command(const char *, ...)
121      __attribute__((__format__(__printf__, 1, 2)));
122 #ifndef NO_EDITCOMPLETE
123 unsigned char complete(EditLine *, int);
124 void    controlediting(void);
125 #endif /* !NO_EDITCOMPLETE */
126 void    crankrate(int);
127 FILE   *dataconn(const char *);
128 void    delete(int, char **);
129 void    disconnect(int, char **);
130 void    do_chmod(int, char **);
131 void    do_umask(int, char **);
132 void    domacro(int, char **);
133 void    doproxy(int, char **);
134 void    feat(int, char **);
135 void    fget(int, char **);
136 int     fileindir(const char *, const char *);
137 int     foregroundproc(void);
138 void    formatbuf(char *, size_t, const char *);
139 void    ftpvis(char *, size_t, const char *, size_t);
140 int     ftp_login(const char *, const char *, const char *);
141 void    get(int, char **);
142 struct cmd *getcmd(const char *);
143 int     getit(int, char **, int, const char *);
144 int     getline(FILE *, char *, size_t, const char **);
145 struct option *getoption(const char *);
146 char   *getoptionvalue(const char *);
147 void    getremoteinfo(void);
148 int     getreply(int);
149 char   *globulize(const char *);
150 char   *gunique(const char *);
151 void    help(int, char **);
152 char   *hookup(char *, char *);
153 void    idlecmd(int, char **);
154 int     initconn(void);
155 void    intr(int);
156 int     isipv6addr(const char *);
157 void    list_vertical(StringList *);
158 void    lcd(int, char **);
159 void    lostpeer(int);
160 void    lpage(int, char **);
161 void    lpwd(int, char **);
162 void    ls(int, char **);
163 void    mabort(void);
164 void    macdef(int, char **);
165 void    makeargv(void);
166 void    makedir(int, char **);
167 void    mdelete(int, char **);
168 void    mget(int, char **);
169 void    mintr(int);
170 void    mls(int, char **);
171 void    mlst(int, char **);
172 void    modtime(int, char **);
173 void    mput(int, char **);
174 const char *onoff(int);
175 void    opts(int, char **);
176 void    newer(int, char **);
177 void    page(int, char **);
178 int     parseport(const char *, int);
179 int     parserate(int, char **, int);
180 char   *prompt(void);
181 void    proxabort(int);
182 void    proxtrans(const char *, const char *, const char *);
183 void    psabort(int);
184 void    pswitch(int);
185 void    put(int, char **);
186 void    pwd(int, char **);
187 void    quit(int, char **);
188 void    quote(int, char **);
189 void    quote1(const char *, int, char **);
190 void    recvrequest(const char *, const char *, const char *,
191             const char *, int, int);
192 void    reget(int, char **);
193 char   *remglob(char **, int, const char **);
194 time_t  remotemodtime(const char *, int);
195 off_t   remotesize(const char *, int);
196 void    removedir(int, char **);
197 void    renamefile(int, char **);
198 void    reset(int, char **);
199 void    restart(int, char **);
200 void    rmthelp(int, char **);
201 void    rmtstatus(int, char **);
202 char   *rprompt(void);
203 int     ruserpass(const char *, char **, char **, char **);
204 void    sendrequest(const char *, const char *, const char *, int);
205 void    setascii(int, char **);
206 void    setbell(int, char **);
207 void    setbinary(int, char **);
208 void    setcase(int, char **);
209 void    setcr(int, char **);
210 void    setdebug(int, char **);
211 void    setedit(int, char **);
212 void    setepsv4(int, char **);
213 void    setform(int, char **);
214 void    setftmode(int, char **);
215 void    setgate(int, char **);
216 void    setglob(int, char **);
217 void    sethash(int, char **);
218 void    setnmap(int, char **);
219 void    setntrans(int, char **);
220 void    setoption(int, char **);
221 void    setpassive(int, char **);
222 void    setpeer(int, char **);
223 void    setport(int, char **);
224 void    setpreserve(int, char **);
225 void    setprogress(int, char **);
226 void    setprompt(int, char **);
227 void    setrate(int, char **);
228 void    setrunique(int, char **);
229 void    setstruct(int, char **);
230 void    setsunique(int, char **);
231 void    settenex(int, char **);
232 void    settrace(int, char **);
233 void    setttywidth(int);
234 void    settype(int, char **);
235 void    setupsockbufsize(int);
236 void    setverbose(int, char **);
237 void    setxferbuf(int, char **);
238 void    shell(int, char **);
239 void    site(int, char **);
240 void    sizecmd(int, char **);
241 char   *slurpstring(void);
242 void    status(int, char **);
243 int     strsuftoi(const char *);
244 void    syst(int, char **);
245 int     togglevar(int, char **, int *, const char *);
246 void    unsetoption(int, char **);
247 void    updatelocalcwd(void);
248 void    updateremotecwd(void);
249 void    usage(void);
250 void    user(int, char **);
251 int     ftp_connect(int, const struct sockaddr *, socklen_t);
252 int     ftp_listen(int, int);
253 int     ftp_poll(struct pollfd *, int, int);
254 void   *ftp_malloc(size_t);
255 StringList *ftp_sl_init(void);
256 void    ftp_sl_add(StringList *, char *);
257 char   *ftp_strdup(const char *);