386BSD 0.1 development
[unix-history] / usr / src / usr.bin / ftp / ftp_var.h
index b0e2142..81143d7 100644 (file)
@@ -1,4 +1,37 @@
-/*     ftp_var.h       4.3     83/03/01        */
+/*
+ * Copyright (c) 1985, 1989 Regents of the University of California.
+ * All rights reserved.
+ *
+ * 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.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *     This product includes software developed by the University of
+ *     California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
+ *
+ *     @(#)ftp_var.h   5.9 (Berkeley) 6/1/90
+ */
 
 /*
  * FTP global variables.
 
 /*
  * FTP global variables.
@@ -8,6 +41,8 @@
  * Options and other state info.
  */
 int    trace;                  /* trace packets exchanged */
  * Options and other state info.
  */
 int    trace;                  /* trace packets exchanged */
+int    hash;                   /* print # for each buffer transferred */
+int    sendport;               /* use PORT cmd for each data connection */
 int    verbose;                /* print messages coming back from server */
 int    connected;              /* connected to server */
 int    fromatty;               /* input is from a terminal */
 int    verbose;                /* print messages coming back from server */
 int    connected;              /* connected to server */
 int    fromatty;               /* input is from a terminal */
@@ -16,9 +51,25 @@ int  debug;                  /* debugging level */
 int    bell;                   /* ring bell on cmd completion */
 int    doglob;                 /* glob local file names */
 int    autologin;              /* establish user account on connection */
 int    bell;                   /* ring bell on cmd completion */
 int    doglob;                 /* glob local file names */
 int    autologin;              /* establish user account on connection */
-
+int    proxy;                  /* proxy server connection active */
+int    proxflag;               /* proxy connection exists */
+int    sunique;                /* store files on server with unique name */
+int    runique;                /* store local files with unique name */
+int    mcase;                  /* map upper to lower case for mget names */
+int    ntflag;                 /* use ntin ntout tables for name translation */
+int    mapflag;                /* use mapin mapout templates on file names */
+int    code;                   /* return/reply code for ftp command */
+int    crflag;                 /* if 1, strip car. rets. on ascii gets */
+char   pasv[64];               /* passive port for proxy data connection */
+char   *altarg;                /* argv[1] with no shell-like preprocessing  */
+char   ntin[17];               /* input translation table */
+char   ntout[17];              /* output translation table */
+#include <sys/param.h>
+char   mapin[MAXPATHLEN];      /* input map template */
+char   mapout[MAXPATHLEN];     /* output map template */
 char   typename[32];           /* name of file transfer type */
 char   typename[32];           /* name of file transfer type */
-int    type;                   /* file transfer type */
+int    type;                   /* requested file transfer type */
+int    curtype;                /* current file transfer type */
 char   structname[32];         /* name of file transfer structure */
 int    stru;                   /* file transfer structure */
 char   formname[32];           /* name of file transfer format */
 char   structname[32];         /* name of file transfer structure */
 int    stru;                   /* file transfer structure */
 char   formname[32];           /* name of file transfer format */
@@ -29,6 +80,8 @@ char  bytename[32];           /* local byte size in ascii */
 int    bytesize;               /* local byte size in binary */
 
 char   *hostname;              /* name of host connected to */
 int    bytesize;               /* local byte size in binary */
 
 char   *hostname;              /* name of host connected to */
+int    unix_server;            /* server is unix, can use binary for ascii */
+int    unix_proxy;             /* proxy is unix, can use binary for ascii */
 
 struct servent *sp;            /* service spec for tcp/ftp */
 
 
 struct servent *sp;            /* service spec for tcp/ftp */
 
@@ -41,6 +94,8 @@ char  argbuf[200];            /* argument storage buffer */
 char   *argbase;               /* current storage point in arg buffer */
 int    margc;                  /* count of arguments on input line */
 char   *margv[20];             /* args parsed from input line */
 char   *argbase;               /* current storage point in arg buffer */
 int    margc;                  /* count of arguments on input line */
 char   *margv[20];             /* args parsed from input line */
+int     cpend;                  /* flag: if != 0, then pending server reply */
+int    mflag;                  /* flag: if != 0, then active multi command */
 
 int    options;                /* used during socket creation */
 
 
 int    options;                /* used during socket creation */
 
@@ -51,10 +106,28 @@ struct cmd {
        char    *c_name;        /* name of command */
        char    *c_help;        /* help string */
        char    c_bell;         /* give bell when command completes */
        char    *c_name;        /* name of command */
        char    *c_help;        /* help string */
        char    c_bell;         /* give bell when command completes */
+       char    c_conn;         /* must be connected to use command */
+       char    c_proxy;        /* proxy server may execute */
        int     (*c_handler)(); /* function to call */
 };
 
        int     (*c_handler)(); /* function to call */
 };
 
+struct macel {
+       char mac_name[9];       /* macro name */
+       char *mac_start;        /* start of macro in macbuf */
+       char *mac_end;          /* end of macro in macbuf */
+};
+
+int macnum;                    /* number of defined macros */
+struct macel macros[16];
+char macbuf[4096];
+
 extern char *tail();
 extern char *index();
 extern char *rindex();
 extern char *tail();
 extern char *index();
 extern char *rindex();
+extern char *remglob();
 extern int errno;
 extern int errno;
+extern char *mktemp();
+extern char *strncpy();
+extern char *strncat();
+extern char *strcat();
+extern char *strcpy();