BSD 4_4_Lite1 development
authorCSRG <csrg@ucbvax.Berkeley.EDU>
Thu, 16 Mar 1989 06:54:26 +0000 (22:54 -0800)
committerCSRG <csrg@ucbvax.Berkeley.EDU>
Thu, 16 Mar 1989 06:54:26 +0000 (22:54 -0800)
Work on file usr/src/contrib/connectd/tip/tip.h

Synthesized-from: CSRG/cd2/4.4BSD-Lite1

usr/src/contrib/connectd/tip/tip.h [new file with mode: 0644]

diff --git a/usr/src/contrib/connectd/tip/tip.h b/usr/src/contrib/connectd/tip/tip.h
new file mode 100644 (file)
index 0000000..1e8a35b
--- /dev/null
@@ -0,0 +1,200 @@
+/*
+ * tip - terminal interface program
+ */
+
+#include <sys/types.h>
+#include <sys/file.h>
+
+#include <sgtty.h>
+#include <signal.h>
+#include <stdio.h>
+#include <pwd.h>
+#include <ctype.h>
+#include <setjmp.h>
+#include <phonenumber.h>
+#include <connect.h>
+#include <errno.h>
+
+/*
+ * Remote host attributes
+ */
+char   *EL;                    /* chars marking an EOL */
+char   *CM;                    /* initial connection message */
+char   *IE;                    /* EOT to expect on input */
+char   *OE;                    /* EOT to send to complete FT */
+char   *PA;                    /* parity to be generated */
+
+int    FS;                     /* frame size for transfers */
+
+char   *ES;                    /* escape character */
+char   *EX;                    /* exceptions */
+char   *FO;                    /* force (literal next) char*/
+char   *RC;                    /* raise character */
+char   *RE;                    /* script record file */
+char   *PR;                    /* remote prompt */
+int    DL;                     /* line delay for file transfers to remote */
+int    CL;                     /* char delay for file transfers to remote */
+int    ET;                     /* echocheck timeout */
+char   HD;                     /* this host is half duplex - do local echo */
+
+/*
+ * String value table
+ */
+typedef
+       struct {
+               char    *v_name;        /* whose name is it */
+               char    v_type;         /* for interpreting set's */
+               char    v_access;       /* protection of touchy ones */
+               char    *v_abrev;       /* possible abreviation */
+               char    *v_value;       /* casted to a union later */
+       }
+       value_t;
+
+#define STRING 01              /* string valued */
+#define BOOL   02              /* true-false value */
+#define NUMBER 04              /* numeric value */
+#define CHAR   010             /* character value */
+
+#define WRITE  01              /* write access to variable */
+#define        READ    02              /* read access */
+
+#define CHANGED        01              /* low bit is used to show modification */
+#define PUBLIC 1               /* public access rights */
+#define PRIVATE        03              /* private to definer */
+#define ROOT   05              /* root defined */
+
+#define        TRUE    1
+#define FALSE  0
+
+#define ENVIRON        020             /* initialize out of the environment */
+#define IREMOTE        040             /* initialize out of remote structure */
+#define INIT   0100            /* static data space used for initialization */
+#define TMASK  017
+
+#define        equal(a, b)     (strcmp(a,b)==0)/* A nice function to string compare */
+
+/*
+ * variable manipulation stuff --
+ *   if we defined the value entry in value_t, then we couldn't
+ *   initialize it in vars.c, so we cast it as needed to keep lint
+ *   happy.
+ */
+typedef
+       union {
+               int     zz_number;
+               short   zz_boolean;
+               char    zz_character;
+               int     *zz_address;
+       }
+       zzhack;
+
+#define value(v)       vtable[v].v_value
+
+#define boolean(v)     ((((zzhack *)(&(v))))->zz_boolean)
+#define number(v)      ((((zzhack *)(&(v))))->zz_number)
+#define character(v)   ((((zzhack *)(&(v))))->zz_character)
+#define address(v)     ((((zzhack *)(&(v))))->zz_address)
+
+/*
+ * Escape command table definitions --
+ *   lookup in this table is performed when ``escapec'' is recognized
+ *   at the begining of a line (as defined by the eolmarks variable).
+*/
+
+typedef
+       struct {
+               char    e_char;         /* char to match on */
+               char    e_flags;        /* experimental, priviledged */
+               char    *e_help;        /* help string */
+               int     (*e_func)();    /* command */
+       }
+       esctable_t;
+
+#define NORM   00              /* normal protection, execute anyone */
+#define EXP    01              /* experimental, mark it with a `*' on help */
+#define PRIV   02              /* priviledged, root execute only */
+
+extern int     vflag;          /* verbose during reading of .tiprc file */
+extern value_t vtable[];       /* variable table */
+
+/*
+ * Definition of indices into variable table so
+ *  value(DEFINE) turns into a static address.
+ */
+
+#define BEAUTIFY       0
+#define DIALTIMEOUT    1
+#define EOFREAD                2
+#define EOFWRITE       3
+#define EOL            4
+#define ESCAPE         5
+#define EXCEPTIONS     6
+#define FORCE          7
+#define FRAMESIZE      8
+#define LOG            9
+#define PROMPT         10
+#define RAISE          11
+#define RAISECHAR      12
+#define RECORD         13
+#define SCRIPT         14
+#define TABEXPAND      15
+#define VERBOSE                16
+#define SHELL          17
+#define HOME           18
+#define ECHOCHECK      19
+#define TAND           20
+#define LDELAY         21
+#define CDELAY         22
+#define ETIMEOUT       23
+#define RAWFTP         24
+#define HALFDUPLEX     25
+#define        LECHO           26
+#define        PARITY          27
+
+#define NOVAL  ((value_t *)NULL)
+#define NOACU  ((acu_t *)NULL)
+#define NOSTR  ((char *)NULL)
+#define NOFILE ((FILE *)NULL)
+#define NOPWD  ((struct passwd *)0)
+
+struct sgttyb  arg;            /* current mode of local terminal */
+struct sgttyb  defarg;         /* initial mode of local terminal */
+struct tchars  tchars;         /* current state of terminal */
+struct tchars  defchars;       /* initial state of terminal */
+struct ltchars ltchars;        /* current local characters of terminal */
+struct ltchars deflchars;      /* initial local characters of terminal */
+
+FILE   *fscript;               /* FILE for scripting */
+
+int    fildes[2];              /* file transfer synchronization channel */
+int    repdes[2];              /* read process sychronization channel */
+int    FD;                     /* open file descriptor to remote host */
+int    vflag;                  /* print .tiprc initialization sequence */
+int    sfd;                    /* for ~< operation */
+int    pid;                    /* pid of tipout */
+int    stop;                   /* stop transfer session flag */
+int    quit;                   /* same; but on other end */
+int    intflag;                /* recognized interrupt */
+int    stoprompt;              /* for interrupting a prompt session */
+int    timedout;               /* ~> transfer timedout */
+int    cumode;                 /* simulating the "cu" program */
+
+char   fname[80];              /* file name buffer for ~< */
+char   copyname[80];           /* file name buffer for ~> */
+char   ccc;                    /* synchronization character */
+char   ch;                     /* for tipout */
+
+int    odisc;                          /* initial tty line discipline */
+extern int disc;                       /* current tty discpline */
+
+extern char *ctrl();
+extern char *ctime();
+extern long time();
+extern struct passwd *getpwuid();
+extern char *getlogin();
+extern char *vinterp();
+extern char *getenv();
+extern char *rindex();
+extern char *index();
+extern char *malloc();
+extern char *connect();