#include <sys/types.h>
#include <machine/endian.h>
#include <sys/time.h>
#include <limits.h>
#include <sys/ioctl.h>
#include <sys/filio.h>
#include <fcntl.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <pwd.h>
#include <ctype.h>
#include <setjmp.h>
#include <termios.h>
#include <unistd.h>
#include <errno.h>
#ifndef EXTERN
#define EXTERN extern
#endif
EXTERN char *DV;
EXTERN char *EL;
EXTERN char *CM;
EXTERN char *IE;
EXTERN char *OE;
EXTERN char *CU;
EXTERN char *AT;
EXTERN char *PN;
EXTERN char *DI;
EXTERN char *PA;
EXTERN char *PH;
EXTERN char *RM;
EXTERN char *HO;
EXTERN char *LI;
EXTERN char *LO;
EXTERN long BR;
EXTERN long FS;
EXTERN char DU;
EXTERN char HW;
EXTERN char *ES;
EXTERN char *EX;
EXTERN char *FO;
EXTERN char *RC;
EXTERN char *RE;
EXTERN char *PR;
EXTERN long DL;
EXTERN long CL;
EXTERN long ET;
EXTERN char HD;
typedef
struct {
char *v_name;
char v_type;
char v_access;
char *v_abrev;
char *v_value;
}
value_t;
#define STRING 01
#define BOOL 02
#define NUMBER 04
#define CHAR 010
#define WRITE 01
#define READ 02
#define CHANGED 01
#define PUBLIC 1
#define PRIVATE 03
#define ROOT 05
#define TRUE 1
#define FALSE 0
#define ENVIRON 020
#define IREMOTE 040
#define INIT 0100
#define TMASK 017
typedef
struct {
char *acu_name;
int (*acu_dialer)(char *, char *);
void (*acu_disconnect)(void);
void (*acu_abort)(void);
}
acu_t;
#define equal(a, b) (strcmp(a,b)==0)
typedef
union {
int zz_number;
short zz_boolean[2];
char zz_character[4];
int *zz_address;
}
zzhack;
#define value(v) vtable[v].v_value
#define number(v) ((((zzhack *)(&(v))))->zz_number)
#if BYTE_ORDER == LITTLE_ENDIAN
#define boolean(v) ((((zzhack *)(&(v))))->zz_boolean[0])
#define character(v) ((((zzhack *)(&(v))))->zz_character[0])
#endif
#if BYTE_ORDER == BIG_ENDIAN
#define boolean(v) ((((zzhack *)(&(v))))->zz_boolean[1])
#define character(v) ((((zzhack *)(&(v))))->zz_character[3])
#endif
#define address(v) ((((zzhack *)(&(v))))->zz_address)
typedef
struct {
char e_char;
char e_flags;
char *e_help;
void (*e_func)(int);
}
esctable_t;
#define NORM 00
#define EXP 01
#define PRIV 02
extern value_t vtable[];
void logent(char *, char *, char *, char*);
void loginit(void);
#define BEAUTIFY 0
#define BAUDRATE 1
#define DIALTIMEOUT 2
#define EOFREAD 3
#define EOFWRITE 4
#define EOL 5
#define ESCAPE 6
#define EXCEPTIONS 7
#define FORCE 8
#define FRAMESIZE 9
#define HOST 10
#define LOG 11
#define LOGIN 12
#define LOGOUT 13
#define PHONES 14
#define PROMPT 15
#define RAISE 16
#define RAISECHAR 17
#define RECORD 18
#define REMOTE 19
#define SCRIPT 20
#define TABEXPAND 21
#define VERBOSE 22
#define SHELL 23
#define HOME 24
#define ECHOCHECK 25
#define DISCONNECT 26
#define TAND 27
#define LDELAY 28
#define CDELAY 29
#define ETIMEOUT 30
#define RAWFTP 31
#define HALFDUPLEX 32
#define LECHO 33
#define PARITY 34
#define DEFBR 1200
EXTERN struct termios otermios;
EXTERN struct termios ctermios;
EXTERN FILE *fscript;
EXTERN int fildes[2];
EXTERN int repdes[2];
EXTERN int FD;
EXTERN int AC;
EXTERN int vflag;
EXTERN int sfd;
EXTERN int pid;
EXTERN uid_t uid, euid;
EXTERN gid_t gid, egid;
EXTERN int stop;
EXTERN int quit;
EXTERN int intflag;
EXTERN int stoprompt;
EXTERN int timedout;
EXTERN int cumode;
EXTERN char fname[PATH_MAX];
EXTERN char copyname[PATH_MAX];
EXTERN char ccc;
EXTERN char ch;
EXTERN char *uucplock;
EXTERN int odisc;
extern int disc;
char *ctrl(char);
char *vinterp(char *, char);
char *connect(void);
int size(char *);
int any(char, char *);
void setscript(void);
void tipout(void) __dead2;
void vinit(void);
long hunt(char *);
int vstring(char *, char *);
void setparity(char *);
void vlex(char *);
void daemon_uid(void);
void disconnect(char *);
void shell_uid(void);
void unraw(void);
void user_uid(void);
void xpwrite(int, char *, int);
int prompt(char *, char *, size_t);
void tipabort(char *) __dead2;
void cumain(int, char **) __dead2;
char *getremote(char *);
char *interp(char *);
void chdirectory(int);
void cleanup(int) __dead2;
void consh(int);
void cu_put(int);
void cu_take(int);
void dollar(int);
char *expand(char *);
void finish(int) __dead2;
void genbrk(int);
void getfl(int);
void help(int);
void pipefile(int);
void pipeout(int);
void sendfile(int);
void shell(int);
int speed(int);
void suspend(int);
void timeoutfunc(int);
void ttysetup(int);
void variable(int);
void biz22_abort(void);
int biz22f_dialer(char *, char *);
int biz22w_dialer(char *, char *);
void biz22_disconnect(void);
void cour_abort(void);
int cour_dialer(char *, char *);
void cour_disconnect(void);
void df_abort(void);
int df02_dialer(char *, char *);
int df03_dialer(char *, char *);
void df_disconnect(void);
void dn_abort(void);
int dn_dialer(char *, char *);
void dn_disconnect(void);
void hay_abort(void);
int hay_dialer(char *, char *);
void hay_disconnect(void);
void multitech_abort(void);
int multitech_dialer(char *, char *);
void multitech_disconnect(void);
void t3000_abort(void);
int t3000_dialer(char *, char *);
void t3000_disconnect(void);
acu_t *unidialer_getmodem(const char *);
void v3451_abort(void);
int v3451_dialer(char *, char *);
void v3451_disconnect(void);
void v831_abort(void);
int v831_dialer(char *, char *);
void v831_disconnect(void);
void ven_abort(void);
int ven_dialer(char *, char *);
void ven_disconnect(void);
#define TL_VERBOSE 0x00000001
#define TL_SIGNAL_TIPOUT 0x00000002
int tiplink(char *cmd, unsigned int flags);
void raw(void);