1223328Sgavin/*	$NetBSD: extern.h,v 1.12 2009/11/15 10:12:37 lukem Exp $	*/
2223328Sgavin/*	from	NetBSD: extern.h,v 1.77 2009/07/13 19:05:41 roy Exp	*/
379971Sobrien
479971Sobrien/*-
5223328Sgavin * Copyright (c) 1996-2009 The NetBSD Foundation, Inc.
679971Sobrien * All rights reserved.
779971Sobrien *
879971Sobrien * This code is derived from software contributed to The NetBSD Foundation
979971Sobrien * by Luke Mewburn.
1079971Sobrien *
1179971Sobrien * Redistribution and use in source and binary forms, with or without
1279971Sobrien * modification, are permitted provided that the following conditions
1379971Sobrien * are met:
1479971Sobrien * 1. Redistributions of source code must retain the above copyright
1579971Sobrien *    notice, this list of conditions and the following disclaimer.
1679971Sobrien * 2. Redistributions in binary form must reproduce the above copyright
1779971Sobrien *    notice, this list of conditions and the following disclaimer in the
1879971Sobrien *    documentation and/or other materials provided with the distribution.
1979971Sobrien *
2079971Sobrien * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
2179971Sobrien * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
2279971Sobrien * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
2379971Sobrien * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
2479971Sobrien * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
2579971Sobrien * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
2679971Sobrien * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
2779971Sobrien * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
2879971Sobrien * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
2979971Sobrien * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
3079971Sobrien * POSSIBILITY OF SUCH DAMAGE.
3179971Sobrien */
3279971Sobrien
3379971Sobrien/*-
3479971Sobrien * Copyright (c) 1994 The Regents of the University of California.
3579971Sobrien * All rights reserved.
3679971Sobrien *
3779971Sobrien * Redistribution and use in source and binary forms, with or without
3879971Sobrien * modification, are permitted provided that the following conditions
3979971Sobrien * are met:
4079971Sobrien * 1. Redistributions of source code must retain the above copyright
4179971Sobrien *    notice, this list of conditions and the following disclaimer.
4279971Sobrien * 2. Redistributions in binary form must reproduce the above copyright
4379971Sobrien *    notice, this list of conditions and the following disclaimer in the
4479971Sobrien *    documentation and/or other materials provided with the distribution.
45121966Smikeh * 3. Neither the name of the University nor the names of its contributors
4679971Sobrien *    may be used to endorse or promote products derived from this software
4779971Sobrien *    without specific prior written permission.
4879971Sobrien *
4979971Sobrien * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
5079971Sobrien * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
5179971Sobrien * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
5279971Sobrien * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
5379971Sobrien * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
5479971Sobrien * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
5579971Sobrien * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
5679971Sobrien * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
5779971Sobrien * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
5879971Sobrien * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
5979971Sobrien * SUCH DAMAGE.
6079971Sobrien *
6179971Sobrien *	@(#)extern.h	8.3 (Berkeley) 10/9/94
6279971Sobrien */
6379971Sobrien
6479971Sobrien/*
6579971Sobrien * Copyright (C) 1997 and 1998 WIDE Project.
6679971Sobrien * All rights reserved.
67146309Smikeh *
6879971Sobrien * Redistribution and use in source and binary forms, with or without
6979971Sobrien * modification, are permitted provided that the following conditions
7079971Sobrien * are met:
7179971Sobrien * 1. Redistributions of source code must retain the above copyright
7279971Sobrien *    notice, this list of conditions and the following disclaimer.
7379971Sobrien * 2. Redistributions in binary form must reproduce the above copyright
7479971Sobrien *    notice, this list of conditions and the following disclaimer in the
7579971Sobrien *    documentation and/or other materials provided with the distribution.
7679971Sobrien * 3. Neither the name of the project nor the names of its contributors
7779971Sobrien *    may be used to endorse or promote products derived from this software
7879971Sobrien *    without specific prior written permission.
79146309Smikeh *
8079971Sobrien * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
8179971Sobrien * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
8279971Sobrien * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
8379971Sobrien * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
8479971Sobrien * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
8579971Sobrien * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
8679971Sobrien * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
8779971Sobrien * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
8879971Sobrien * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
8979971Sobrien * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
9079971Sobrien * SUCH DAMAGE.
9179971Sobrien */
9279971Sobrien
9379971Sobrienstruct sockaddr;
9479971Sobrienstruct tm;
9579971Sobrienstruct addrinfo;
9679971Sobrien
9779971Sobrienvoid	abort_remote(FILE *);
9879971Sobrienvoid	abort_squared(int);
9979971Sobrienvoid	abortpt(int);
10079971Sobrienvoid	abortxfer(int);
10179971Sobrienvoid	account(int, char **);
10279971Sobrienvoid	ai_unmapped(struct addrinfo *);
10379971Sobrienint	another(int *, char ***, const char *);
10479971Sobrienint	auto_fetch(int, char **);
10579971Sobrienint	auto_put(int, char **, const char *);
10679971Sobrienvoid	blkfree(char **);
10779971Sobrienvoid	cd(int, char **);
10879971Sobrienvoid	cdup(int, char **);
10979971Sobrienvoid	changetype(int, int);
11079971Sobrienvoid	cleanuppeer(void);
11179971Sobrienvoid	cmdabort(int);
11279971Sobrienvoid	cmdtimeout(int);
11379971Sobrienvoid	cmdscanner(void);
11498247Smikehint	command(const char *, ...)
115223328Sgavin     ;
11679971Sobrien#ifndef NO_EDITCOMPLETE
11779971Sobrienunsigned char complete(EditLine *, int);
11879971Sobrienvoid	controlediting(void);
11979971Sobrien#endif /* !NO_EDITCOMPLETE */
12079971Sobrienvoid	crankrate(int);
12179971SobrienFILE   *dataconn(const char *);
12279971Sobrienvoid	delete(int, char **);
12379971Sobrienvoid	disconnect(int, char **);
12479971Sobrienvoid	do_chmod(int, char **);
12579971Sobrienvoid	do_umask(int, char **);
12679971Sobrienvoid	domacro(int, char **);
12779971Sobrienvoid	doproxy(int, char **);
12879971Sobrienvoid	feat(int, char **);
12979971Sobrienvoid	fget(int, char **);
130142129Smikehint	fileindir(const char *, const char *);
13179971Sobrienint	foregroundproc(void);
13279971Sobrienvoid	formatbuf(char *, size_t, const char *);
13379971Sobrienvoid	ftpvis(char *, size_t, const char *, size_t);
13479971Sobrienint	ftp_login(const char *, const char *, const char *);
13579971Sobrienvoid	get(int, char **);
13679971Sobrienstruct cmd *getcmd(const char *);
13779971Sobrienint	getit(int, char **, int, const char *);
138223328Sgavinint	get_line(FILE *, char *, size_t, const char **);
13979971Sobrienstruct option *getoption(const char *);
14079971Sobrienchar   *getoptionvalue(const char *);
14179971Sobrienvoid	getremoteinfo(void);
14279971Sobrienint	getreply(int);
14379971Sobrienchar   *globulize(const char *);
14479971Sobrienchar   *gunique(const char *);
14579971Sobrienvoid	help(int, char **);
146223328Sgavinchar   *hookup(const char *, const char *);
14779971Sobrienvoid	idlecmd(int, char **);
14879971Sobrienint	initconn(void);
14979971Sobrienvoid	intr(int);
15079971Sobrienint	isipv6addr(const char *);
15179971Sobrienvoid	list_vertical(StringList *);
15279971Sobrienvoid	lcd(int, char **);
15379971Sobrienvoid	lostpeer(int);
15479971Sobrienvoid	lpage(int, char **);
15579971Sobrienvoid	lpwd(int, char **);
15679971Sobrienvoid	ls(int, char **);
15779971Sobrienvoid	macdef(int, char **);
15879971Sobrienvoid	makeargv(void);
15979971Sobrienvoid	makedir(int, char **);
16079971Sobrienvoid	mdelete(int, char **);
16179971Sobrienvoid	mget(int, char **);
16279971Sobrienvoid	mls(int, char **);
16379971Sobrienvoid	mlst(int, char **);
16479971Sobrienvoid	modtime(int, char **);
16579971Sobrienvoid	mput(int, char **);
166223328Sgavinconst char *onoff(int);
16779971Sobrienvoid	opts(int, char **);
16879971Sobrienvoid	newer(int, char **);
16979971Sobrienvoid	page(int, char **);
17079971Sobrienint	parserate(int, char **, int);
17179971Sobrienchar   *prompt(void);
17279971Sobrienvoid	proxabort(int);
17379971Sobrienvoid	proxtrans(const char *, const char *, const char *);
17479971Sobrienvoid	psabort(int);
17579971Sobrienvoid	pswitch(int);
17679971Sobrienvoid	put(int, char **);
17779971Sobrienvoid	pwd(int, char **);
17879971Sobrienvoid	quit(int, char **);
17979971Sobrienvoid	quote(int, char **);
18079971Sobrienvoid	quote1(const char *, int, char **);
18179971Sobrienvoid	recvrequest(const char *, const char *, const char *,
18279971Sobrien	    const char *, int, int);
18379971Sobrienvoid	reget(int, char **);
184223328Sgavinchar   *remglob(char **, int, const char **);
18579971Sobrientime_t	remotemodtime(const char *, int);
18679971Sobrienoff_t	remotesize(const char *, int);
18779971Sobrienvoid	removedir(int, char **);
18879971Sobrienvoid	renamefile(int, char **);
18979971Sobrienvoid	reset(int, char **);
19079971Sobrienvoid	restart(int, char **);
191223328Sgavinconst char *rfc2822time(const struct tm *);
19279971Sobrienvoid	rmthelp(int, char **);
19379971Sobrienvoid	rmtstatus(int, char **);
19479971Sobrienchar   *rprompt(void);
195223328Sgavinint	ruserpass(const char *, char **, char **, char **);
19679971Sobrienvoid	sendrequest(const char *, const char *, const char *, int);
19779971Sobrienvoid	setascii(int, char **);
19879971Sobrienvoid	setbell(int, char **);
19979971Sobrienvoid	setbinary(int, char **);
20079971Sobrienvoid	setcase(int, char **);
20179971Sobrienvoid	setcr(int, char **);
20279971Sobrienvoid	setdebug(int, char **);
20379971Sobrienvoid	setedit(int, char **);
20479971Sobrienvoid	setepsv4(int, char **);
205223328Sgavinvoid	setepsv6(int, char **);
206223328Sgavinvoid	setepsv(int, char **);
20779971Sobrienvoid	setform(int, char **);
20879971Sobrienvoid	setftmode(int, char **);
20979971Sobrienvoid	setgate(int, char **);
21079971Sobrienvoid	setglob(int, char **);
21179971Sobrienvoid	sethash(int, char **);
21279971Sobrienvoid	setnmap(int, char **);
21379971Sobrienvoid	setntrans(int, char **);
21479971Sobrienvoid	setoption(int, char **);
21579971Sobrienvoid	setpassive(int, char **);
21679971Sobrienvoid	setpeer(int, char **);
21779971Sobrienvoid	setport(int, char **);
21879971Sobrienvoid	setpreserve(int, char **);
21979971Sobrienvoid	setprogress(int, char **);
22079971Sobrienvoid	setprompt(int, char **);
22179971Sobrienvoid	setrate(int, char **);
22279971Sobrienvoid	setrunique(int, char **);
22379971Sobrienvoid	setstruct(int, char **);
22479971Sobrienvoid	setsunique(int, char **);
22579971Sobrienvoid	settenex(int, char **);
22679971Sobrienvoid	settrace(int, char **);
22779971Sobrienvoid	setttywidth(int);
22879971Sobrienvoid	settype(int, char **);
22979971Sobrienvoid	setupsockbufsize(int);
23079971Sobrienvoid	setverbose(int, char **);
23179971Sobrienvoid	setxferbuf(int, char **);
232223328Sgavinvoid	set_option(const char *, const char *, int);
23379971Sobrienvoid	shell(int, char **);
23479971Sobrienvoid	site(int, char **);
23579971Sobrienvoid	sizecmd(int, char **);
23679971Sobrienchar   *slurpstring(void);
23779971Sobrienvoid	status(int, char **);
23879971Sobrienint	strsuftoi(const char *);
23979971Sobrienvoid	syst(int, char **);
24079971Sobrienint	togglevar(int, char **, int *, const char *);
24179971Sobrienvoid	unsetoption(int, char **);
242142129Smikehvoid	updatelocalcwd(void);
243142129Smikehvoid	updateremotecwd(void);
24479971Sobrienvoid	usage(void);
24579971Sobrienvoid	user(int, char **);
246223328Sgavinint	ftp_connect(int, const struct sockaddr *, socklen_t);
247223328Sgavinint	ftp_listen(int, int);
248223328Sgavinint	ftp_poll(struct pollfd *, int, int);
249223328Sgavinvoid   *ftp_malloc(size_t);
250223328SgavinStringList *ftp_sl_init(void);
251223328Sgavinvoid	ftp_sl_add(StringList *, char *);
252223328Sgavinchar   *ftp_strdup(const char *);
253