ftp_var.h
上传用户:sddyfurun
上传日期:2007-01-04
资源大小:525k
文件大小:7k
源码类别:

代理服务器

开发平台:

Unix_Linux

  1. /*
  2.  * Copyright (c) 1985, 1989 Regents of the University of California.
  3.  * All rights reserved.
  4.  *
  5.  * Redistribution and use in source and binary forms, with or without
  6.  * modification, are permitted provided that the following conditions
  7.  * are met:
  8.  * 1. Redistributions of source code must retain the above copyright
  9.  *    notice, this list of conditions and the following disclaimer.
  10.  * 2. Redistributions in binary form must reproduce the above copyright
  11.  *    notice, this list of conditions and the following disclaimer in the
  12.  *    documentation and/or other materials provided with the distribution.
  13.  * 3. All advertising materials mentioning features or use of this software
  14.  *    must display the following acknowledgement:
  15.  * This product includes software developed by the University of
  16.  * California, Berkeley and its contributors.
  17.  * 4. Neither the name of the University nor the names of its contributors
  18.  *    may be used to endorse or promote products derived from this software
  19.  *    without specific prior written permission.
  20.  *
  21.  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  22.  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  23.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  24.  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  25.  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  26.  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  27.  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  28.  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  29.  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  30.  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  31.  * SUCH DAMAGE.
  32.  *
  33.  * @(#)ftp_var.h 5.9 (Berkeley) 6/1/90
  34.  */
  35. #ifndef FTP_VAR_H
  36. #define FTP_VAR_H
  37. #include "config.h"
  38. #include "includes.h"
  39. #include "defs.h"
  40. #include "protos.h"
  41. #include "socks.h"
  42. /*
  43.  * Options and other state info.
  44.  */
  45. extern int trace; /* trace packets exchanged */
  46. extern int hash; /* print # for each buffer transferred */
  47. extern int sendport; /* use PORT cmd for each data connection */
  48. extern int verbose; /* print messages coming back from server */
  49. extern int connected; /* connected to server */
  50. extern int fromatty; /* input is from a terminal */
  51. extern int interactive; /* interactively prompt on m* cmds */
  52. extern int debug; /* debugging level */
  53. extern int bell; /* ring bell on cmd completion */
  54. extern int doglob; /* glob local file names */
  55. extern int autologin; /* establish user account on connection */
  56. extern int proxy; /* proxy server connection active */
  57. extern int proxflag; /* proxy connection exists */
  58. extern int sunique; /* store files on server with unique name */
  59. extern int runique; /* store local files with unique name */
  60. extern int mcase; /* map upper to lower case for mget names */
  61. extern int ntflag; /* use ntin ntout tables for name translation */
  62. extern int mapflag; /* use mapin mapout templates on file names */
  63. extern int code; /* return/reply code for ftp command */
  64. extern int crflag; /* if 1, strip car. rets. on ascii gets */
  65. extern char pasv[64]; /* passive port for proxy data connection */
  66. extern char *altarg; /* argv[1] with no shell-like preprocessing  */
  67. extern char ntin[17]; /* input translation table */
  68. extern char ntout[17]; /* output translation table */
  69. #ifdef SCO
  70. #include <arpa/ftp.h> /* Must be a #*%$ SCO system */
  71. #endif
  72. extern char mapin[MAXPATHLEN]; /* input map template */
  73. extern char mapout[MAXPATHLEN]; /* output map template */
  74. extern char typename[32]; /* name of file transfer type */
  75. extern int type; /* requested file transfer type */
  76. extern int curtype; /* current file transfer type */
  77. extern char structname[32]; /* name of file transfer structure */
  78. extern int stru; /* file transfer structure */
  79. extern char formname[32]; /* name of file transfer format */
  80. extern int form; /* file transfer format */
  81. extern char modename[32]; /* name of file transfer mode */
  82. extern int mode; /* file transfer mode */
  83. extern char bytename[32]; /* local byte size in ascii */
  84. extern int bytesize; /* local byte size in binary */
  85. extern char *hostname; /* name of host connected to */
  86. extern int unix_server; /* server is unix, can use binary for ascii */
  87. extern int unix_proxy; /* proxy is unix, can use binary for ascii */
  88. extern struct servent *sp; /* service spec for tcp/ftp */
  89. /* >>> YDL */
  90. extern int ftp_s_port; /* save ftp's sp->s_port value here */
  91. /* <<< YDL */
  92. #include <setjmp.h>
  93. extern jmp_buf toplevel; /* non-local goto stuff for cmd scanner */
  94. extern char line[200]; /* input line buffer */
  95. extern char *stringbase; /* current scan point in line buffer */
  96. extern char argbuf[200]; /* argument storage buffer */
  97. extern char *argbase; /* current storage point in arg buffer */
  98. extern int margc; /* count of arguments on input line */
  99. extern char *margv[20]; /* args parsed from input line */
  100. extern int     cpend;                  /* flag: if != 0, then pending server reply */
  101. extern int mflag; /* flag: if != 0, then active multi command */
  102. extern int options; /* used during socket creation */
  103. /*
  104.  * Format of command table.
  105.  */
  106. struct cmd {
  107. char *c_name; /* name of command */
  108. char *c_help; /* help string */
  109. char c_bell; /* give bell when command completes */
  110. char c_conn; /* must be connected to use command */
  111. char c_proxy; /* proxy server may execute */
  112. int (*c_handler)(); /* function to call */
  113. };
  114. struct macel {
  115. char mac_name[9]; /* macro name */
  116. char *mac_start; /* start of macro in macbuf */
  117. char *mac_end; /* end of macro in macbuf */
  118. };
  119. extern int macnum; /* number of defined macros */
  120. extern struct macel macros[16];
  121. extern char macbuf[4096];
  122. #ifndef HAVE_INDEX
  123. #define index strchr
  124. #endif
  125. #ifndef HAVE_RINDEX
  126. #define rindex strrchr
  127. #endif
  128. extern char *tail();
  129. extern char *remglob();
  130. extern char *mktemp();
  131. extern int errno;
  132. #if (defined(COMPAT) || defined(ultrix) || defined(SCO) || defined(__alpha__)) && !defined(__bsdi__)
  133. typedef void (*_sig_t)();
  134. #define sig_t _sig_t
  135. #endif
  136. extern void makeargv P(());
  137. extern void pswitch  P((int));
  138. extern void fatal    P((char *));
  139. extern void blkfree  P((char **));
  140. extern int  quit     P(());
  141. extern int  getreply P((int));
  142. /*
  143. extern int  login    P((char *));
  144. */
  145. extern void sendrequest P((char *, char *, char *, int));
  146. extern void recvrequest P((char *, char *, char *, char *, int));
  147. extern void setpeer     P((int, char *[]));
  148. extern void domacro     P((int, char *[]));
  149. extern void changetype  P((int, int));
  150. extern int ruserpass    P((char *, char **, char **, char **));
  151. extern int another      P((int *, char ***, char *));
  152. #endif