xref: /openbsd-src/usr.bin/ftp/extern.h (revision ce7279d89b71439c96c854f612f4ac93a461fdc4)
1*ce7279d8Sjsg /*	$OpenBSD: extern.h,v 1.54 2024/05/21 05:00:48 jsg Exp $	*/
2bfd817adSflorian /*	$NetBSD: extern.h,v 1.17 1997/08/18 10:20:19 lukem Exp $	*/
3bfd817adSflorian 
4bfd817adSflorian /*
5bfd817adSflorian  * Copyright (C) 1997 and 1998 WIDE Project.
6bfd817adSflorian  * All rights reserved.
7bfd817adSflorian  *
8bfd817adSflorian  * Redistribution and use in source and binary forms, with or without
9bfd817adSflorian  * modification, are permitted provided that the following conditions
10bfd817adSflorian  * are met:
11bfd817adSflorian  * 1. Redistributions of source code must retain the above copyright
12bfd817adSflorian  *    notice, this list of conditions and the following disclaimer.
13bfd817adSflorian  * 2. Redistributions in binary form must reproduce the above copyright
14bfd817adSflorian  *    notice, this list of conditions and the following disclaimer in the
15bfd817adSflorian  *    documentation and/or other materials provided with the distribution.
16bfd817adSflorian  * 3. Neither the name of the project nor the names of its contributors
17bfd817adSflorian  *    may be used to endorse or promote products derived from this software
18bfd817adSflorian  *    without specific prior written permission.
19bfd817adSflorian  *
20bfd817adSflorian  * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
21bfd817adSflorian  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22bfd817adSflorian  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23bfd817adSflorian  * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
24bfd817adSflorian  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25bfd817adSflorian  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26bfd817adSflorian  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27bfd817adSflorian  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28bfd817adSflorian  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29bfd817adSflorian  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30bfd817adSflorian  * SUCH DAMAGE.
31bfd817adSflorian  */
32bfd817adSflorian 
33bfd817adSflorian /*-
34bfd817adSflorian  * Copyright (c) 1994 The Regents of the University of California.
35bfd817adSflorian  * All rights reserved.
36bfd817adSflorian  *
37bfd817adSflorian  * Redistribution and use in source and binary forms, with or without
38bfd817adSflorian  * modification, are permitted provided that the following conditions
39bfd817adSflorian  * are met:
40bfd817adSflorian  * 1. Redistributions of source code must retain the above copyright
41bfd817adSflorian  *    notice, this list of conditions and the following disclaimer.
42bfd817adSflorian  * 2. Redistributions in binary form must reproduce the above copyright
43bfd817adSflorian  *    notice, this list of conditions and the following disclaimer in the
44bfd817adSflorian  *    documentation and/or other materials provided with the distribution.
45bfd817adSflorian  * 3. Neither the name of the University nor the names of its contributors
46bfd817adSflorian  *    may be used to endorse or promote products derived from this software
47bfd817adSflorian  *    without specific prior written permission.
48bfd817adSflorian  *
49bfd817adSflorian  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
50bfd817adSflorian  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
51bfd817adSflorian  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
52bfd817adSflorian  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
53bfd817adSflorian  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
54bfd817adSflorian  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
55bfd817adSflorian  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
56bfd817adSflorian  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
57bfd817adSflorian  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
58bfd817adSflorian  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
59bfd817adSflorian  * SUCH DAMAGE.
60bfd817adSflorian  *
61bfd817adSflorian  *	@(#)extern.h	8.3 (Berkeley) 10/9/94
62bfd817adSflorian  */
63bfd817adSflorian 
64bfd817adSflorian #include <sys/types.h>
65f37faed6Smillert #include <sys/socket.h>
66bfd817adSflorian 
67bfd817adSflorian void	abort_remote(FILE *);
68bfd817adSflorian void	abortpt(int);
69bfd817adSflorian void	abortrecv(int);
70bfd817adSflorian void	alarmtimer(int);
71bfd817adSflorian int	another(int *, char ***, const char *);
72bfd817adSflorian int	auto_fetch(int, char **, char *);
73bfd817adSflorian void	cdup(int, char **);
74bfd817adSflorian void	cmdabort(int);
75bfd817adSflorian void	cmdscanner(int);
76bfd817adSflorian int	command(const char *, ...);
77bfd817adSflorian int	confirm(const char *, const char *);
78bfd817adSflorian FILE   *dataconn(const char *);
79bfd817adSflorian int	foregroundproc(void);
80bfd817adSflorian int	fileindir(const char *, const char *);
81bfd817adSflorian struct cmd *getcmd(const char *);
82bfd817adSflorian int	getreply(int);
83bfd817adSflorian int	globulize(char **);
84bfd817adSflorian char   *gunique(const char *);
85bfd817adSflorian void	help(int, char **);
86bfd817adSflorian char   *hookup(char *, char *);
87bfd817adSflorian int	initconn(void);
88bfd817adSflorian void	intr(void);
89bfd817adSflorian int	isurl(const char *);
90bfd817adSflorian int	ftp_login(const char *, char *, char *);
91bfd817adSflorian void	lostpeer(void);
92bfd817adSflorian void	makeargv(void);
93bfd817adSflorian void	progressmeter(int, const char *);
94bfd817adSflorian char   *prompt(void);
95bfd817adSflorian void	proxtrans(const char *, const char *, const char *);
96bfd817adSflorian void	psabort(int);
97bfd817adSflorian void	psummary(int);
98bfd817adSflorian void	pswitch(int);
99bfd817adSflorian void	ptransfer(int);
100bfd817adSflorian void	recvrequest(const char *, const char *, const char *,
101bfd817adSflorian 	    const char *, int, int);
102bfd817adSflorian char   *remglob(char **, int, char **);
103bfd817adSflorian off_t	remotesize(const char *, int);
104bfd817adSflorian time_t	remotemodtime(const char *, int);
105bfd817adSflorian void	reset(int, char **);
106bfd817adSflorian void	rmthelp(int, char **);
107bfd817adSflorian void	sethash(int, char **);
108bfd817adSflorian void	setpeer(int, char **);
109bfd817adSflorian void	setttywidth(int);
110bfd817adSflorian char   *slurpstring(void);
111f37faed6Smillert int	timed_connect(int s, const struct sockaddr *, socklen_t, int);
112bfd817adSflorian 
113bfd817adSflorian __dead void	usage(void);
114bfd817adSflorian 
115bfd817adSflorian void	cookie_get(const char *, const char *, int, char **);
116bfd817adSflorian void	cookie_load(void);
117bfd817adSflorian 
118bfd817adSflorian #ifndef SMALL
119bfd817adSflorian void	abortsend(int);
120bfd817adSflorian unsigned char complete(EditLine *, int);
121bfd817adSflorian void	controlediting(void);
122bfd817adSflorian void	domacro(int, char **);
123bfd817adSflorian void	list_vertical(StringList *);
124bfd817adSflorian void	parse_list(char **, char *);
125bfd817adSflorian char   *remglob2(char **, int, char **, FILE **ftemp, char *type);
126bfd817adSflorian int	ruserpass(const char *, char **, char **, char **);
127bfd817adSflorian void	sendrequest(const char *, const char *, const char *, int);
12849dd5d56Srobert ssize_t http_time(time_t, char *, size_t);
129bfd817adSflorian #endif /* !SMALL */
130bfd817adSflorian 
131bfd817adSflorian extern jmp_buf	abortprox;
132bfd817adSflorian extern int	abrtflag;
133bfd817adSflorian extern FILE    *cout;
134bfd817adSflorian extern int	data;
135bfd817adSflorian extern char    *home;
136bfd817adSflorian extern jmp_buf	jabort;
137bfd817adSflorian extern int	family;
138bfd817adSflorian extern int	proxy;
139bfd817adSflorian extern char	reply_string[];
140bfd817adSflorian extern off_t	restart_point;
141bfd817adSflorian extern int	keep_alive_timeout;
142bfd817adSflorian extern int	connect_timeout;
143bfd817adSflorian extern int	pipeout;
144bfd817adSflorian extern char	*action;
145bfd817adSflorian 
146bfd817adSflorian #ifndef SMALL
147bfd817adSflorian extern int	NCMDS;
14849dd5d56Srobert extern int	server_timestamps;
149bfd817adSflorian #endif /* !SMALL */
150bfd817adSflorian 
151bfd817adSflorian extern char *__progname;		/* from crt0.o */
152bfd817adSflorian 
153