2009-07-13 23:05:39 +04:00
|
|
|
/* $NetBSD: extern.h,v 1.77 2009/07/13 19:05:41 roy Exp $ */
|
1999-10-05 05:16:11 +04:00
|
|
|
|
|
|
|
/*-
|
2009-04-12 14:18:52 +04:00
|
|
|
* Copyright (c) 1996-2009 The NetBSD Foundation, Inc.
|
1999-10-05 05:16:11 +04:00
|
|
|
* All rights reserved.
|
|
|
|
*
|
|
|
|
* This code is derived from software contributed to The NetBSD Foundation
|
|
|
|
* by Luke Mewburn.
|
|
|
|
*
|
|
|
|
* Redistribution and use in source and binary forms, with or without
|
|
|
|
* modification, are permitted provided that the following conditions
|
|
|
|
* are met:
|
|
|
|
* 1. Redistributions of source code must retain the above copyright
|
|
|
|
* notice, this list of conditions and the following disclaimer.
|
|
|
|
* 2. Redistributions in binary form must reproduce the above copyright
|
|
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
|
|
* documentation and/or other materials provided with the distribution.
|
|
|
|
*
|
|
|
|
* THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
|
|
|
|
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
|
|
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
|
|
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
|
|
|
|
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
|
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
|
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
|
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
|
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
|
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
|
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
*/
|
1999-07-02 12:07:40 +04:00
|
|
|
|
1999-10-01 03:51:26 +04:00
|
|
|
/*-
|
|
|
|
* Copyright (c) 1994 The Regents of the University of California.
|
1999-07-02 12:07:40 +04:00
|
|
|
* All rights reserved.
|
1999-10-01 03:51:26 +04:00
|
|
|
*
|
1999-07-02 12:07:40 +04:00
|
|
|
* Redistribution and use in source and binary forms, with or without
|
|
|
|
* modification, are permitted provided that the following conditions
|
|
|
|
* are met:
|
|
|
|
* 1. Redistributions of source code must retain the above copyright
|
|
|
|
* notice, this list of conditions and the following disclaimer.
|
|
|
|
* 2. Redistributions in binary form must reproduce the above copyright
|
|
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
|
|
* documentation and/or other materials provided with the distribution.
|
2003-08-07 15:13:06 +04:00
|
|
|
* 3. Neither the name of the University nor the names of its contributors
|
1999-07-02 12:07:40 +04:00
|
|
|
* may be used to endorse or promote products derived from this software
|
|
|
|
* without specific prior written permission.
|
1999-10-01 03:51:26 +04:00
|
|
|
*
|
|
|
|
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
1999-07-02 12:07:40 +04:00
|
|
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
|
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
1999-10-01 03:51:26 +04:00
|
|
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
1999-07-02 12:07:40 +04:00
|
|
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
|
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
|
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
|
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
|
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
|
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
|
|
* SUCH DAMAGE.
|
1999-10-01 03:51:26 +04:00
|
|
|
*
|
|
|
|
* @(#)extern.h 8.3 (Berkeley) 10/9/94
|
1999-07-02 12:07:40 +04:00
|
|
|
*/
|
1995-09-08 05:05:59 +04:00
|
|
|
|
1999-10-01 03:51:26 +04:00
|
|
|
/*
|
|
|
|
* Copyright (C) 1997 and 1998 WIDE Project.
|
1994-08-25 07:27:56 +04:00
|
|
|
* All rights reserved.
|
2005-04-11 05:49:31 +04:00
|
|
|
*
|
1994-08-25 07:27:56 +04:00
|
|
|
* Redistribution and use in source and binary forms, with or without
|
|
|
|
* modification, are permitted provided that the following conditions
|
|
|
|
* are met:
|
|
|
|
* 1. Redistributions of source code must retain the above copyright
|
|
|
|
* notice, this list of conditions and the following disclaimer.
|
|
|
|
* 2. Redistributions in binary form must reproduce the above copyright
|
|
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
|
|
* documentation and/or other materials provided with the distribution.
|
1999-10-01 03:51:26 +04:00
|
|
|
* 3. Neither the name of the project nor the names of its contributors
|
1994-08-25 07:27:56 +04:00
|
|
|
* may be used to endorse or promote products derived from this software
|
|
|
|
* without specific prior written permission.
|
2005-04-11 05:49:31 +04:00
|
|
|
*
|
1999-10-01 03:51:26 +04:00
|
|
|
* THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
|
1994-08-25 07:27:56 +04:00
|
|
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
|
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
1999-10-01 03:51:26 +04:00
|
|
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
|
1994-08-25 07:27:56 +04:00
|
|
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
|
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
|
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
|
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
|
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
|
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
|
|
* SUCH DAMAGE.
|
|
|
|
*/
|
|
|
|
|
1998-07-10 08:39:03 +04:00
|
|
|
struct sockaddr;
|
1998-11-18 10:24:25 +03:00
|
|
|
struct tm;
|
2000-05-29 18:57:27 +04:00
|
|
|
struct addrinfo;
|
1994-08-25 07:27:56 +04:00
|
|
|
|
2000-05-01 14:35:16 +04:00
|
|
|
void abort_remote(FILE *);
|
|
|
|
void abort_squared(int);
|
|
|
|
void abortpt(int);
|
|
|
|
void abortxfer(int);
|
|
|
|
void account(int, char **);
|
2000-05-29 18:57:27 +04:00
|
|
|
void ai_unmapped(struct addrinfo *);
|
2000-05-01 14:35:16 +04:00
|
|
|
int another(int *, char ***, const char *);
|
|
|
|
int auto_fetch(int, char **);
|
2000-05-31 18:23:57 +04:00
|
|
|
int auto_put(int, char **, const char *);
|
2000-05-01 14:35:16 +04:00
|
|
|
void blkfree(char **);
|
|
|
|
void cd(int, char **);
|
|
|
|
void cdup(int, char **);
|
|
|
|
void changetype(int, int);
|
|
|
|
void cleanuppeer(void);
|
|
|
|
void cmdabort(int);
|
|
|
|
void cmdtimeout(int);
|
|
|
|
void cmdscanner(void);
|
2000-10-11 18:46:00 +04:00
|
|
|
int command(const char *, ...)
|
|
|
|
__attribute__((__format__(__printf__, 1, 2)));
|
1999-06-21 02:07:28 +04:00
|
|
|
#ifndef NO_EDITCOMPLETE
|
2000-05-01 14:35:16 +04:00
|
|
|
unsigned char complete(EditLine *, int);
|
|
|
|
void controlediting(void);
|
1999-06-21 02:07:28 +04:00
|
|
|
#endif /* !NO_EDITCOMPLETE */
|
2000-05-01 14:35:16 +04:00
|
|
|
void crankrate(int);
|
|
|
|
FILE *dataconn(const char *);
|
|
|
|
void delete(int, char **);
|
|
|
|
void disconnect(int, char **);
|
|
|
|
void do_chmod(int, char **);
|
|
|
|
void do_umask(int, char **);
|
|
|
|
void domacro(int, char **);
|
|
|
|
void doproxy(int, char **);
|
add support for FEAT and OPTS commands with `features' and `opts'.
(from RFC 2389).
add support for MLST & MLSD (machine parseble listings) with 'mlst', 'mlsd'
and 'pmlsd' (mlsd |$PAGER) commands. (from draft-ietf-ftpext-mlst-11)
rename remotesyst() to getremoteinfo(), and modify to parse the result from
FEAT (if supported), and take into account the support for the various
extensions such as MDTM, SIZE, REST (STREAM), MLSD, and FEAT/OPTS.
put each feature into one of the following categories:
- known to work (explicit FEAT)
- unknown but assume works until explicit failure, when it's
then tagged as `known not to work'.
- known not to work (FEAT succeeded but didn't return anything,
or was unknown and then explicit failure)
assign results into features[] matrix.
add support to getreply() so that an optional callback will be called
for each line received from the server except for the first and last.
this is used in FEAT (and MLST) parsing.
modify various commands to check if REST (STREAM), MDTM and SIZE are
explicitly or implicitly supported before using.
fix `syst' when verbose is off.
minor knf (indent goto labels by one space, etc).
simply various command usage handlers by assuming that argv != NULL except
for quit() and disconnect().
2000-07-18 11:16:52 +04:00
|
|
|
void feat(int, char **);
|
2000-05-01 14:35:16 +04:00
|
|
|
void fget(int, char **);
|
2005-01-03 12:50:09 +03:00
|
|
|
int fileindir(const char *, const char *);
|
2000-05-01 14:35:16 +04:00
|
|
|
int foregroundproc(void);
|
|
|
|
void formatbuf(char *, size_t, const char *);
|
|
|
|
void ftpvis(char *, size_t, const char *, size_t);
|
|
|
|
int ftp_login(const char *, const char *, const char *);
|
|
|
|
void get(int, char **);
|
|
|
|
struct cmd *getcmd(const char *);
|
|
|
|
int getit(int, char **, int, const char *);
|
2009-07-13 23:05:39 +04:00
|
|
|
int get_line(FILE *, char *, size_t, const char **);
|
2000-05-01 14:35:16 +04:00
|
|
|
struct option *getoption(const char *);
|
|
|
|
char *getoptionvalue(const char *);
|
add support for FEAT and OPTS commands with `features' and `opts'.
(from RFC 2389).
add support for MLST & MLSD (machine parseble listings) with 'mlst', 'mlsd'
and 'pmlsd' (mlsd |$PAGER) commands. (from draft-ietf-ftpext-mlst-11)
rename remotesyst() to getremoteinfo(), and modify to parse the result from
FEAT (if supported), and take into account the support for the various
extensions such as MDTM, SIZE, REST (STREAM), MLSD, and FEAT/OPTS.
put each feature into one of the following categories:
- known to work (explicit FEAT)
- unknown but assume works until explicit failure, when it's
then tagged as `known not to work'.
- known not to work (FEAT succeeded but didn't return anything,
or was unknown and then explicit failure)
assign results into features[] matrix.
add support to getreply() so that an optional callback will be called
for each line received from the server except for the first and last.
this is used in FEAT (and MLST) parsing.
modify various commands to check if REST (STREAM), MDTM and SIZE are
explicitly or implicitly supported before using.
fix `syst' when verbose is off.
minor knf (indent goto labels by one space, etc).
simply various command usage handlers by assuming that argv != NULL except
for quit() and disconnect().
2000-07-18 11:16:52 +04:00
|
|
|
void getremoteinfo(void);
|
2000-05-01 14:35:16 +04:00
|
|
|
int getreply(int);
|
|
|
|
char *globulize(const char *);
|
|
|
|
char *gunique(const char *);
|
|
|
|
void help(int, char **);
|
2009-04-12 14:18:52 +04:00
|
|
|
char *hookup(const char *, const char *);
|
2000-05-01 14:35:16 +04:00
|
|
|
void idlecmd(int, char **);
|
|
|
|
int initconn(void);
|
|
|
|
void intr(int);
|
|
|
|
int isipv6addr(const char *);
|
|
|
|
void list_vertical(StringList *);
|
|
|
|
void lcd(int, char **);
|
|
|
|
void lostpeer(int);
|
|
|
|
void lpage(int, char **);
|
|
|
|
void lpwd(int, char **);
|
|
|
|
void ls(int, char **);
|
|
|
|
void macdef(int, char **);
|
|
|
|
void makeargv(void);
|
|
|
|
void makedir(int, char **);
|
|
|
|
void mdelete(int, char **);
|
|
|
|
void mget(int, char **);
|
|
|
|
void mls(int, char **);
|
add support for FEAT and OPTS commands with `features' and `opts'.
(from RFC 2389).
add support for MLST & MLSD (machine parseble listings) with 'mlst', 'mlsd'
and 'pmlsd' (mlsd |$PAGER) commands. (from draft-ietf-ftpext-mlst-11)
rename remotesyst() to getremoteinfo(), and modify to parse the result from
FEAT (if supported), and take into account the support for the various
extensions such as MDTM, SIZE, REST (STREAM), MLSD, and FEAT/OPTS.
put each feature into one of the following categories:
- known to work (explicit FEAT)
- unknown but assume works until explicit failure, when it's
then tagged as `known not to work'.
- known not to work (FEAT succeeded but didn't return anything,
or was unknown and then explicit failure)
assign results into features[] matrix.
add support to getreply() so that an optional callback will be called
for each line received from the server except for the first and last.
this is used in FEAT (and MLST) parsing.
modify various commands to check if REST (STREAM), MDTM and SIZE are
explicitly or implicitly supported before using.
fix `syst' when verbose is off.
minor knf (indent goto labels by one space, etc).
simply various command usage handlers by assuming that argv != NULL except
for quit() and disconnect().
2000-07-18 11:16:52 +04:00
|
|
|
void mlst(int, char **);
|
2000-05-01 14:35:16 +04:00
|
|
|
void modtime(int, char **);
|
|
|
|
void mput(int, char **);
|
2005-05-19 06:55:37 +04:00
|
|
|
const char *onoff(int);
|
add support for FEAT and OPTS commands with `features' and `opts'.
(from RFC 2389).
add support for MLST & MLSD (machine parseble listings) with 'mlst', 'mlsd'
and 'pmlsd' (mlsd |$PAGER) commands. (from draft-ietf-ftpext-mlst-11)
rename remotesyst() to getremoteinfo(), and modify to parse the result from
FEAT (if supported), and take into account the support for the various
extensions such as MDTM, SIZE, REST (STREAM), MLSD, and FEAT/OPTS.
put each feature into one of the following categories:
- known to work (explicit FEAT)
- unknown but assume works until explicit failure, when it's
then tagged as `known not to work'.
- known not to work (FEAT succeeded but didn't return anything,
or was unknown and then explicit failure)
assign results into features[] matrix.
add support to getreply() so that an optional callback will be called
for each line received from the server except for the first and last.
this is used in FEAT (and MLST) parsing.
modify various commands to check if REST (STREAM), MDTM and SIZE are
explicitly or implicitly supported before using.
fix `syst' when verbose is off.
minor knf (indent goto labels by one space, etc).
simply various command usage handlers by assuming that argv != NULL except
for quit() and disconnect().
2000-07-18 11:16:52 +04:00
|
|
|
void opts(int, char **);
|
2000-05-01 14:35:16 +04:00
|
|
|
void newer(int, char **);
|
|
|
|
void page(int, char **);
|
|
|
|
int parserate(int, char **, int);
|
|
|
|
char *prompt(void);
|
|
|
|
void proxabort(int);
|
|
|
|
void proxtrans(const char *, const char *, const char *);
|
|
|
|
void psabort(int);
|
|
|
|
void pswitch(int);
|
|
|
|
void put(int, char **);
|
|
|
|
void pwd(int, char **);
|
|
|
|
void quit(int, char **);
|
|
|
|
void quote(int, char **);
|
|
|
|
void quote1(const char *, int, char **);
|
|
|
|
void recvrequest(const char *, const char *, const char *,
|
|
|
|
const char *, int, int);
|
|
|
|
void reget(int, char **);
|
2005-05-19 06:55:37 +04:00
|
|
|
char *remglob(char **, int, const char **);
|
2000-05-01 14:35:16 +04:00
|
|
|
time_t remotemodtime(const char *, int);
|
2000-06-15 17:08:23 +04:00
|
|
|
off_t remotesize(const char *, int);
|
2000-05-01 14:35:16 +04:00
|
|
|
void removedir(int, char **);
|
|
|
|
void renamefile(int, char **);
|
|
|
|
void reset(int, char **);
|
|
|
|
void restart(int, char **);
|
2007-05-24 09:05:18 +04:00
|
|
|
const char *rfc2822time(const struct tm *);
|
2000-05-01 14:35:16 +04:00
|
|
|
void rmthelp(int, char **);
|
|
|
|
void rmtstatus(int, char **);
|
|
|
|
char *rprompt(void);
|
2005-06-10 04:18:46 +04:00
|
|
|
int ruserpass(const char *, char **, char **, char **);
|
2000-05-01 14:35:16 +04:00
|
|
|
void sendrequest(const char *, const char *, const char *, int);
|
|
|
|
void setascii(int, char **);
|
|
|
|
void setbell(int, char **);
|
|
|
|
void setbinary(int, char **);
|
|
|
|
void setcase(int, char **);
|
|
|
|
void setcr(int, char **);
|
|
|
|
void setdebug(int, char **);
|
|
|
|
void setedit(int, char **);
|
|
|
|
void setepsv4(int, char **);
|
2008-05-10 04:05:31 +04:00
|
|
|
void setepsv6(int, char **);
|
|
|
|
void setepsv(int, char **);
|
2000-05-01 14:35:16 +04:00
|
|
|
void setform(int, char **);
|
|
|
|
void setftmode(int, char **);
|
|
|
|
void setgate(int, char **);
|
|
|
|
void setglob(int, char **);
|
|
|
|
void sethash(int, char **);
|
|
|
|
void setnmap(int, char **);
|
|
|
|
void setntrans(int, char **);
|
|
|
|
void setoption(int, char **);
|
|
|
|
void setpassive(int, char **);
|
|
|
|
void setpeer(int, char **);
|
|
|
|
void setport(int, char **);
|
|
|
|
void setpreserve(int, char **);
|
|
|
|
void setprogress(int, char **);
|
|
|
|
void setprompt(int, char **);
|
|
|
|
void setrate(int, char **);
|
|
|
|
void setrunique(int, char **);
|
|
|
|
void setstruct(int, char **);
|
|
|
|
void setsunique(int, char **);
|
|
|
|
void settenex(int, char **);
|
|
|
|
void settrace(int, char **);
|
|
|
|
void setttywidth(int);
|
|
|
|
void settype(int, char **);
|
|
|
|
void setupsockbufsize(int);
|
|
|
|
void setverbose(int, char **);
|
|
|
|
void setxferbuf(int, char **);
|
2009-04-12 14:18:52 +04:00
|
|
|
void set_option(const char *, const char *, int);
|
2000-05-01 14:35:16 +04:00
|
|
|
void shell(int, char **);
|
|
|
|
void site(int, char **);
|
|
|
|
void sizecmd(int, char **);
|
|
|
|
char *slurpstring(void);
|
|
|
|
void status(int, char **);
|
|
|
|
int strsuftoi(const char *);
|
|
|
|
void syst(int, char **);
|
|
|
|
int togglevar(int, char **, int *, const char *);
|
|
|
|
void unsetoption(int, char **);
|
2005-01-03 12:50:09 +03:00
|
|
|
void updatelocalcwd(void);
|
|
|
|
void updateremotecwd(void);
|
2000-05-01 14:35:16 +04:00
|
|
|
void usage(void);
|
|
|
|
void user(int, char **);
|
2006-01-31 23:01:23 +03:00
|
|
|
int ftp_connect(int, const struct sockaddr *, socklen_t);
|
|
|
|
int ftp_listen(int, int);
|
|
|
|
int ftp_poll(struct pollfd *, int, int);
|
|
|
|
void *ftp_malloc(size_t);
|
|
|
|
StringList *ftp_sl_init(void);
|
|
|
|
void ftp_sl_add(StringList *, char *);
|
|
|
|
char *ftp_strdup(const char *);
|