155682Smarkm/*-
255682Smarkm * Copyright (c) 1994 The Regents of the University of California.
355682Smarkm * All rights reserved.
455682Smarkm *
555682Smarkm * Redistribution and use in source and binary forms, with or without
655682Smarkm * modification, are permitted provided that the following conditions
755682Smarkm * are met:
855682Smarkm * 1. Redistributions of source code must retain the above copyright
955682Smarkm *    notice, this list of conditions and the following disclaimer.
1055682Smarkm * 2. Redistributions in binary form must reproduce the above copyright
1155682Smarkm *    notice, this list of conditions and the following disclaimer in the
1255682Smarkm *    documentation and/or other materials provided with the distribution.
1355682Smarkm * 3. All advertising materials mentioning features or use of this software
1455682Smarkm *    must display the following acknowledgement:
1555682Smarkm *	This product includes software developed by the University of
1655682Smarkm *	California, Berkeley and its contributors.
1755682Smarkm * 4. Neither the name of the University nor the names of its contributors
1855682Smarkm *    may be used to endorse or promote products derived from this software
1955682Smarkm *    without specific prior written permission.
2055682Smarkm *
2155682Smarkm * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
2255682Smarkm * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
2355682Smarkm * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2455682Smarkm * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
2555682Smarkm * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2655682Smarkm * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2755682Smarkm * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2855682Smarkm * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2955682Smarkm * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
3055682Smarkm * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
3155682Smarkm * SUCH DAMAGE.
3255682Smarkm *
3355682Smarkm *	@(#)extern.h	8.3 (Berkeley) 10/9/94
3455682Smarkm */
3555682Smarkm
36233294Sstas/* $Id$ */
3755682Smarkm
3855682Smarkm#include <setjmp.h>
3955682Smarkm#include <stdlib.h>
4055682Smarkm#ifdef TIME_WITH_SYS_TIME
4155682Smarkm#include <sys/time.h>
4255682Smarkm#include <time.h>
4355682Smarkm#elif defined(HAVE_SYS_TIME_H)
4455682Smarkm#include <sys/time.h>
4555682Smarkm#else
4655682Smarkm#include <time.h>
4755682Smarkm#endif
4855682Smarkm#ifdef HAVE_SYS_SELECT_H
4955682Smarkm#include <sys/select.h>
5055682Smarkm#endif
5155682Smarkm
5255682Smarkmvoid    abort_remote (FILE *);
5355682Smarkmvoid    abortpt (int);
5455682Smarkmvoid    abortrecv (int);
5555682Smarkmvoid	account (int, char **);
5655682Smarkmint	another (int *, char ***, char *);
5755682Smarkmvoid	blkfree (char **);
5855682Smarkmvoid	cd (int, char **);
5955682Smarkmvoid	cdup (int, char **);
6055682Smarkmvoid	changetype (int, int);
6155682Smarkmvoid	cmdabort (int);
6255682Smarkmvoid	cmdscanner (int);
6372445Sassarint	command (char *fmt, ...)
6472445Sassar    __attribute__ ((format (printf, 1,2)));
6555682Smarkmint	confirm (char *, char *);
6655682SmarkmFILE   *dataconn (const char *);
6755682Smarkmvoid	delete (int, char **);
6855682Smarkmvoid	disconnect (int, char **);
6955682Smarkmvoid	do_chmod (int, char **);
7055682Smarkmvoid	do_umask (int, char **);
7155682Smarkmvoid	domacro (int, char **);
7255682Smarkmchar   *domap (char *);
7355682Smarkmvoid	doproxy (int, char **);
7455682Smarkmchar   *dotrans (char *);
7555682Smarkmint     empty (fd_set *, int);
7655682Smarkmvoid	fatal (char *);
7755682Smarkmvoid	get (int, char **);
7855682Smarkmstruct cmd *getcmd (char *);
7955682Smarkmint	getit (int, char **, int, char *);
8055682Smarkmint	getreply (int);
8155682Smarkmint	globulize (char **);
8255682Smarkmchar   *gunique (char *);
8355682Smarkmvoid	help (int, char **);
8455682Smarkmchar   *hookup (const char *, int);
8555682Smarkmvoid	ftp_idle (int, char **);
8655682Smarkmint     initconn (void);
8755682Smarkmvoid	intr (int);
8855682Smarkmvoid	lcd (int, char **);
8955682Smarkmint	login (char *);
9055682SmarkmRETSIGTYPE	lostpeer (int);
9155682Smarkmvoid	ls (int, char **);
9255682Smarkmvoid	macdef (int, char **);
9355682Smarkmvoid	makeargv (void);
9455682Smarkmvoid	makedir (int, char **);
9555682Smarkmvoid	mdelete (int, char **);
9655682Smarkmvoid	mget (int, char **);
9755682Smarkmvoid	mls (int, char **);
9855682Smarkmvoid	modtime (int, char **);
9955682Smarkmvoid	mput (int, char **);
10055682Smarkmchar   *onoff (int);
10155682Smarkmvoid	newer (int, char **);
10255682Smarkmvoid    proxtrans (char *, char *, char *);
10355682Smarkmvoid    psabort (int);
10455682Smarkmvoid    pswitch (int);
10555682Smarkmvoid    ptransfer (char *, long, struct timeval *, struct timeval *);
10655682Smarkmvoid	put (int, char **);
10755682Smarkmvoid	pwd (int, char **);
10855682Smarkmvoid	quit (int, char **);
10955682Smarkmvoid	quote (int, char **);
11055682Smarkmvoid	quote1 (char *, int, char **);
11155682Smarkmvoid    recvrequest (char *, char *, char *, char *, int, int);
11255682Smarkmvoid	reget (int, char **);
11355682Smarkmchar   *remglob (char **, int);
11455682Smarkmvoid	removedir (int, char **);
11555682Smarkmvoid	renamefile (int, char **);
11655682Smarkmvoid    reset (int, char **);
11755682Smarkmvoid	restart (int, char **);
11855682Smarkmvoid	rmthelp (int, char **);
11955682Smarkmvoid	rmtstatus (int, char **);
120233294Sstasint	ruserpassword (char *, char **, char **, char **);
12155682Smarkmvoid    sendrequest (char *, char *, char *, char *, int);
12255682Smarkmvoid	setascii (int, char **);
12355682Smarkmvoid	setbell (int, char **);
12455682Smarkmvoid	setbinary (int, char **);
12555682Smarkmvoid	setcase (int, char **);
12655682Smarkmvoid	setcr (int, char **);
12755682Smarkmvoid	setdebug (int, char **);
12855682Smarkmvoid	setform (int, char **);
12955682Smarkmvoid	setftmode (int, char **);
13055682Smarkmvoid	setglob (int, char **);
13155682Smarkmvoid	sethash (int, char **);
13255682Smarkmvoid	setnmap (int, char **);
13355682Smarkmvoid	setntrans (int, char **);
13455682Smarkmvoid	setpassive (int, char **);
13555682Smarkmvoid	setpeer (int, char **);
13655682Smarkmvoid	setport (int, char **);
13755682Smarkmvoid	setprompt (int, char **);
13855682Smarkmvoid	setrunique (int, char **);
13955682Smarkmvoid	setstruct (int, char **);
14055682Smarkmvoid	setsunique (int, char **);
14155682Smarkmvoid	settenex (int, char **);
14255682Smarkmvoid	settrace (int, char **);
14355682Smarkmvoid	settype (int, char **);
14455682Smarkmvoid	setverbose (int, char **);
14555682Smarkmvoid	shell (int, char **);
14655682Smarkmvoid	site (int, char **);
14755682Smarkmvoid	sizecmd (int, char **);
14855682Smarkmchar   *slurpstring (void);
14955682Smarkmvoid	status (int, char **);
15055682Smarkmvoid	syst (int, char **);
15155682Smarkmvoid    tvsub (struct timeval *, struct timeval *, struct timeval *);
15255682Smarkmvoid	user (int, char **);
15355682Smarkm
15455682Smarkmextern jmp_buf	abortprox;
15555682Smarkmextern int	abrtflag;
15655682Smarkmextern struct	cmd cmdtab[];
15755682Smarkmextern FILE	*cout;
15855682Smarkmextern int	data;
15955682Smarkmextern char    *home;
16055682Smarkmextern jmp_buf	jabort;
16155682Smarkmextern int	proxy;
16255682Smarkmextern char	reply_string[];
16355682Smarkmextern off_t	restart_point;
16455682Smarkmextern int	NCMDS;
16555682Smarkm
16655682Smarkmextern char 	username[32];
16755682Smarkmextern char	myhostname[];
16855682Smarkmextern char	*mydomain;
16955682Smarkm
17055682Smarkmvoid afslog (int, char **);
17155682Smarkmvoid kauth (int, char **);
17255682Smarkmvoid kdestroy (int, char **);
17355682Smarkmvoid klist (int, char **);
17455682Smarkmvoid krbtkfile (int, char **);
175