|
|
1.1 ! root 1: /* uucp.h 5.2 83/07/19 */ ! 2: ! 3: #include "stdio.h" ! 4: ! 5: /* ! 6: * Determine local uucp name of this machine. ! 7: * Define one of the following: ! 8: * ! 9: * For UCB 4.1A and later systems, you will have the gethostname(2) call. ! 10: * If this call exists, define GETHOSTNAME. ! 11: * ! 12: * For USG 3.0 and later systems, you will have the uname(2) call. ! 13: * If this call exists, define UNAME. ! 14: * ! 15: * Some systems have a line of the form '#define sysname "myuucpname",' ! 16: * in the file /usr/include/whoami.h, to identify their machine. ! 17: * If your site does that, define WHOAMI. ! 18: * ! 19: * If your site has <whoami.h>, but you do not want to read ! 20: * that file every time uucp runs, you can compile sysname into uucp. ! 21: * This is faster and more reliable, but binaries do not port. ! 22: * If you want to do that, define CCWHOAMI. ! 23: * ! 24: * Some systems put the local uucp name in a single-line file ! 25: * named /etc/uucpname or /local/uucpname. ! 26: * If your site does that, define UUNAME. ! 27: * ! 28: * Systems running 3Com's UNET will have the getmyhname() call. ! 29: * If you want to, define GETMYHNAME. ! 30: * ! 31: * You should also define MYNANE to be your uucp name. ! 32: * ! 33: * For each of the above that are defined, uucp checks them in order. ! 34: * It stops on the first method that returns a non null name. ! 35: * If everything fails, it uses "unknown" for the system name. ! 36: */ ! 37: #define GETHOSTNAME ! 38: /* If the above fails ... */ ! 39: #define MYNAME "erewhon" ! 40: ! 41: /* ! 42: * If you have it, include <sysexits.h> to use exit ! 43: * codes that will be understood by sendmail. ! 44: * Otherwise, define EX_NOHOST, EX_CANTCREAT, and EX_NOINPUT. ! 45: */ ! 46: #include <sysexits.h> ! 47: /*#define EX_NOHOST 101*/ ! 48: /*#define EX_CANTCREAT 1*/ ! 49: /*#define EX_NOINPUT 2*/ ! 50: ! 51: /* define UUDIR for uucp subdirectory kludge (recommended) */ ! 52: #define UUDIR ! 53: ! 54: /* ! 55: * Define the various kinds of connections to include. ! 56: * The complete list is in the condevs array in condevs.c ! 57: */ ! 58: #define DN11 /* standard dialer */ ! 59: /*#define DATAKIT /* ATT's datakit */ ! 60: /*#define PNET /* Purdue network */ ! 61: /*#define DF02 /* Dec's DF02/DF03 */ ! 62: #define HAYES /* Hayes' Smartmodem */ ! 63: #define VENTEL /* ventel dialer */ ! 64: #define VADIC /* Racal-Vadic 3450 */ ! 65: #define ANCHOR /* Anchor Signalman */ ! 66: /*#define RVMACS /* Racal-Vadic MACS 831 */ ! 67: /*#define UNET /* 3Com's UNET */ ! 68: /*#define MICOM /* micom mux port */ ! 69: ! 70: #ifdef VENTEL ! 71: /* ! 72: * We need a timer to write slowly to ventels. ! 73: * define INTERVALTIMER to use 4.2 bsd interval timer. ! 74: * define FASTTIMER if you have the nap() system call. ! 75: * define FTIME if you have the ftime() system call. ! 76: * define BUSYLOOP if you must do a busy loop. ! 77: * Look at uucpdelay() in condevs.c for details. ! 78: */ ! 79: #define FTIME ! 80: #endif ! 81: ! 82: /* ! 83: * If your site is using "ndir.h" to retrofit the Berkeley ! 84: * directory reading routines, define NDIR. ! 85: * You will probably also have to set LIBNDIR in Makefile. ! 86: * Otherwise, <dir.h> is assumed to have the Berkeley directory definitions. ! 87: */ ! 88: /*#define NDIR*/ ! 89: ! 90: /* ! 91: * If yours is a BTL system III, IV, or so-on site, define SYSIII. ! 92: * Conditional compilations should produce the right code, ! 93: * but if it doesn't (the compiler will probably complain loudly), ! 94: * make the needed adjustments and guard the code with ! 95: * #ifdef SYSIII, (code for system III), #else, (code for V7), #endif ! 96: */ ! 97: /*#define SYSIII*/ ! 98: ! 99: /* define the last characters for ACU */ ! 100: /* burl!lda, rti!trt, isn't "<" more widely used than "-"? */ ! 101: /* rti!trt: use -< as is done in 4.1c uucp */ ! 102: #define ACULAST "-<" ! 103: ! 104: /* define the value of WFMASK - for umask call - used for all uucp work files */ ! 105: #define WFMASK 0137 ! 106: ! 107: /* define the value of LOGMASK - for LOGFILE, SYSLOG, ERRLOG */ ! 108: #define LOGMASK 0133 ! 109: ! 110: /* All files are given at least the following at the final destination */ ! 111: /* It is also the default mode, so '666' is recommended */ ! 112: /* and 444 is minimal (minimally useful, maximally annoying) */ ! 113: #define BASEMODE 0666 ! 114: ! 115: /* All users with getuid() <= PRIV_UIDS are 'privileged'. */ ! 116: /* Was 10, reduced to 3 as suggested by duke!dbl (David Leonard) */ ! 117: #define PRIV_UIDS 3 ! 118: ! 119: #define XQTDIR "/usr/spool/uucp/XTMP" ! 120: #define SQFILE "/usr/lib/uucp/SQFILE" ! 121: #define SQTMP "/usr/lib/uucp/SQTMP" ! 122: #define SLCKTIME 5400 /* system/device timeout (LCK.. files) */ ! 123: #define SEQFILE "/usr/lib/uucp/SEQF" ! 124: #define SYSFILE "/usr/lib/uucp/L.sys" ! 125: #define DEVFILE "/usr/lib/uucp/L-devices" ! 126: #define DIALFILE "/usr/lib/uucp/L-dialcodes" ! 127: #define USERFILE "/usr/lib/uucp/USERFILE" ! 128: #define CMDFILE "/usr/lib/uucp/L.cmds" ! 129: ! 130: #define SPOOL "/usr/spool/uucp" ! 131: #define SQLOCK "/usr/spool/uucp/LCK.SQ" ! 132: #define SYSLOG "/usr/spool/uucp/SYSLOG" ! 133: #define PUBDIR "/usr/spool/uucppublic" ! 134: ! 135: #define SEQLOCK "LCK.SEQL" ! 136: #define CMDPRE 'C' ! 137: #define DATAPRE 'D' ! 138: #define XQTPRE 'X' ! 139: ! 140: #define LOGFILE "/usr/spool/uucp/LOGFILE" ! 141: #define ERRLOG "/usr/spool/uucp/ERRLOG" ! 142: ! 143: #define RMTDEBUG "AUDIT" ! 144: #define SQTIME 60 ! 145: #define TRYCALLS 2 /* number of tries to dial call */ ! 146: ! 147: /*define PROTODEBUG = 1 if testing protocol - introduce errors */ ! 148: #define DEBUG(l, f, s) if (Debug >= l) fprintf(stderr, f, s); else ! 149: ! 150: #define ASSERT(e, s1, s2, i1) if (!(e)) {\ ! 151: assert(s1, s2, i1);\ ! 152: cleanup(FAIL);} else ! 153: ! 154: ! 155: #define SAME 0 ! 156: #define ANYREAD 04 ! 157: #define ANYWRITE 02 ! 158: #define FAIL -1 ! 159: #define SUCCESS 0 ! 160: #define CNULL (char *) 0 ! 161: #define STBNULL (struct sgttyb *) 0 ! 162: #define MASTER 1 ! 163: #define SLAVE 0 ! 164: #define MAXFULLNAME 250 ! 165: #define MAXMSGTIME 45 ! 166: #define NAMESIZE 15 ! 167: #define EOTMSG "\04\n\04\n" ! 168: #define CALLBACK 1 ! 169: ! 170: /* commands */ ! 171: #define SHELL "/bin/sh" ! 172: #define MAIL "mail" ! 173: #define UUCICO "/usr/lib/uucp/uucico" ! 174: #define UUXQT "/usr/lib/uucp/uuxqt" ! 175: #define UUCP "uucp" ! 176: ! 177: /* call connect fail stuff */ ! 178: #define CF_SYSTEM -1 ! 179: #define CF_TIME -2 ! 180: #define CF_LOCK -3 ! 181: #define CF_NODEV -4 ! 182: #define CF_DIAL -5 ! 183: #define CF_LOGIN -6 ! 184: ! 185: #define F_NAME 0 ! 186: #define F_TIME 1 ! 187: #define F_LINE 2 ! 188: #define F_CLASS 3 /* an optional prefix and the speed */ ! 189: #define F_PHONE 4 ! 190: #define F_LOGIN 5 ! 191: ! 192: #define MAXPH 60 /* maximum length of a phone number */ ! 193: ! 194: /* This structure tells how to get to a device */ ! 195: struct condev { ! 196: char *CU_meth; /* method, such as 'ACU' or 'DIR' */ ! 197: char *CU_brand; /* brand, such as 'Hayes' or 'Vadic' */ ! 198: int (*CU_gen)(); /* what to call to search for brands */ ! 199: int (*CU_open)(); /* what to call to open brand */ ! 200: int (*CU_clos)(); /* what to call to close brand */ ! 201: }; ! 202: ! 203: /* This structure tells about a device */ ! 204: struct Devices { ! 205: char D_type[20]; ! 206: char D_line[20]; ! 207: char D_calldev[20]; ! 208: char D_class[20]; ! 209: int D_speed; ! 210: char D_brand[20]; /* brand name, as 'Hayes' or 'Vadic' */ ! 211: }; ! 212: ! 213: /* system status stuff */ ! 214: #define SS_OK 0 ! 215: #define SS_FAIL 4 ! 216: #define SS_NODEVICE 1 ! 217: #define SS_CALLBACK 2 ! 218: #define SS_INPROGRESS 3 ! 219: #define SS_BADSEQ 5 ! 220: ! 221: /* fail/retry parameters */ ! 222: #define RETRYTIME 3300 ! 223: #define MAXRECALLS 20 ! 224: ! 225: /* stuff for command execution */ ! 226: #define X_RQDFILE 'F' ! 227: #define X_STDIN 'I' ! 228: #define X_STDOUT 'O' ! 229: #define X_CMD 'C' ! 230: #define X_USER 'U' ! 231: #define X_SENDFILE 'S' ! 232: #define X_NONOTI 'N' ! 233: #define X_NONZERO 'Z' ! 234: #define X_LOCK "LCK.XQT" ! 235: #define X_LOCKTIME 3600 ! 236: ! 237: #define WKDSIZE 100 /* size of work dir name */ ! 238: ! 239: extern int Ifn, Ofn; ! 240: extern char Rmtname[]; ! 241: extern char User[]; ! 242: extern char Loginuser[]; ! 243: extern char *Spool; ! 244: extern char Myname[]; ! 245: extern int Debug; ! 246: extern int Pkdebug; ! 247: extern int Pkdrvon; ! 248: extern int Bspeed; ! 249: extern char Wrkdir[]; ! 250: extern long Retrytime; ! 251: extern int Unet; ! 252: extern char Progname[]; ! 253: extern int (*CU_end)(); ! 254: extern struct condev condevs[]; ! 255: ! 256: #ifdef UUDIR ! 257: #define subfile(s) SubFile(s) ! 258: #define subdir(d, p) SubDir(d, p) ! 259: #define subchdir(d) SubChDir(d) ! 260: extern char DLocal[], DLocalX[], *SubFile(), *SubDir(); ! 261: #else ! 262: #define subfile(s) s ! 263: #define subdir(d, p) d ! 264: #define subchdir(d) chdir(d) ! 265: #endif ! 266: ! 267: /* Commonly called routines which return non-int value */ ! 268: extern char *ttyname(), *strcpy(), *strcat(), *index(), *rindex(), ! 269: *fgets(), *calloc(), *malloc(), ! 270: *cfgets(); ! 271: extern long lseek(); ! 272: extern FILE *rpopen();
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.