|
|
1.1 ! root 1: /* @(#)uucp.h 5.17 6/29/90 */ ! 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: * You should also define MYNAME to be your uucp name. ! 29: * ! 30: * For each of the above that are defined, uucp checks them in order. ! 31: * It stops on the first method that returns a non null name. ! 32: * If everything fails, it uses "unknown" for the system name. ! 33: */ ! 34: #define GETHOSTNAME /**/ ! 35: /* #define UNAME /**/ ! 36: /* #define WHOAMI /**/ ! 37: /* #define CCWHOAMI /**/ ! 38: /* #define UUNAME /**/ ! 39: /* If the above fails ... */ ! 40: #define MYNAME "erehwon" ! 41: ! 42: /* ! 43: * Define the various kinds of connections to include. ! 44: * The complete list is in the condevs array in condevs.c ! 45: */ ! 46: #define ATT2224 /* AT&T 2224 */ ! 47: #define BSDTCP /* 4.2bsd TCP/IP */ ! 48: #define CDS224 /* Concord Data Systems 2400 */ ! 49: /* #define DATAKIT /* ATT's datakit */ ! 50: #define DF02 /* Dec's DF02/DF03 */ ! 51: #define DF112 /* Dec's DF112 */ ! 52: #define DN11 /* "standard" DEC dialer */ ! 53: #define HAYES /* Hayes' Smartmodem */ ! 54: #define HAYES2400 /* Hayes' 2400 baud Smartmodem */ ! 55: /* #define MICOM /* Micom Mux port */ ! 56: #define NOVATION /* Novation modem */ ! 57: #define PAD /* X.25 PAD */ ! 58: #define PENRIL /* PENRIL Dialer */ ! 59: /* #define PNET /* Purdue network */ ! 60: #define RVMACS /* Racal-Vadic MACS 820 dialer, 831 adaptor */ ! 61: /* #define SYTEK /* Sytek Local Area Net */ ! 62: /* #define UNETTCP /* 3Com's UNET */ ! 63: #define USR2400 /* USRobotics Courier 2400 */ ! 64: #define VA212 /* Racal-Vadic 212 */ ! 65: #define VA811S /* Racal-Vadic 811S dialer, 831 adaptor */ ! 66: #define VA820 /* Racal-Vadic 820 dialer, 831 adaptor */ ! 67: #define VADIC /* Racal-Vadic 345x */ ! 68: #define VENTEL /* Ventel Dialer */ ! 69: #define VMACS /* Racal-Vadic MACS 811 dialer, 831 adaptor */ ! 70: ! 71: #if defined(USR2400) && !defined(HAYES) ! 72: #define HAYES ! 73: #endif USR2400 && !HAYES ! 74: ! 75: #if defined(UNETTCP) || defined(BSDTCP) ! 76: #define TCPIP ! 77: #endif ! 78: ! 79: /* ! 80: * We need a timer to write slowly to certain modems. ! 81: * and for generating breaks. ! 82: * ! 83: * define INTERVALTIMER to use 4.[23] bsd interval timer. ! 84: * define FASTTIMER if you have the nap() system call. ! 85: * define FTIME if you have the ftime() system call. ! 86: * define BUSYLOOP if you must do a busy loop. ! 87: * Look at uucpdelay() in condevs.c for details. ! 88: */ ! 89: #define INTERVALTIMER ! 90: /*#define FASTTIMER /**/ ! 91: /*#define FTIME /**/ ! 92: /*#define BUSYLOOP /**/ ! 93: ! 94: /* ! 95: * If your site is using "ndir.h" to retrofit the Berkeley ! 96: * directory reading routines, define NDIR. ! 97: * You will probably also have to set LIBNDIR in Makefile. ! 98: * Otherwise, <dir.h> is assumed to have the Berkeley directory definitions. ! 99: */ ! 100: /*#define NDIR /**/ ! 101: ! 102: /* ! 103: * If yours is a BTL system III, IV, V or so-on site, define USG. ! 104: */ ! 105: /*#define USG /**/ ! 106: ! 107: /* ! 108: * If you are running 4.3bsd, define BSD4_3 and BSD4_2 ! 109: * If you are just running 4.2bsd, define BSD4_2 ! 110: * If you are running the BRL version of 4.2BSD define BRL4_2, NOT BSD4_3 ! 111: */ ! 112: #define BSD4_3 /**/ ! 113: #define BSD4_2 /**/ ! 114: /*#define BRL4_2 /**/ ! 115: ! 116: #if defined(BRL4_2) && !defined(BSD4_2) ! 117: #define BSD4_2 ! 118: #undef BSD4_3 ! 119: #endif BRL4_2 ! 120: ! 121: /* ! 122: * If you are using /etc/inetd with 4.2bsd, define BSDINETD ! 123: */ ! 124: #define BSDINETD /**/ ! 125: ! 126: /* ! 127: * If you are running 4.3bsd or BRL 4.2, you are running the inetd ! 128: */ ! 129: ! 130: #if (defined(BSD4_3) || defined(BRL4_2)) && !defined(BSDINETD) ! 131: #define BSDINETD ! 132: #endif (BSD4_3 ||BRL4_2) && !BSDINETD ! 133: ! 134: /*#define VMSDTR /* Turn on modem control on vms(works DTR) for ! 135: develcon and gandalf ports to gain access */ ! 136: /* ! 137: * If you want to use the same modem for dialing in and out define ! 138: * DIALINOUT to be the localtion of the acucntrl program ! 139: */ ! 140: /* #define DIALINOUT "/usr/lib/uucp/acucntrl" /**/ ! 141: ! 142: /* ! 143: * If you want all ACU lines to be DIALINOUT, define ALLACUINOUT ! 144: */ ! 145: /* #define ALLACUINOUT /**/ ! 146: ! 147: /* define the value of WFMASK - for umask call - used for all uucp work files */ ! 148: #define WFMASK 0137 ! 149: ! 150: /* define the value of LOGMASK - for LOGFILE, SYSLOG, ERRLOG */ ! 151: #define LOGMASK 0133 ! 152: ! 153: /* All files are given at least the following at the final destination */ ! 154: /* It is also the default mode, so '666' is recommended */ ! 155: /* and 444 is minimal (minimally useful, maximally annoying) */ ! 156: #define BASEMODE 0666 ! 157: ! 158: /* ! 159: * Define NOSTRANGERS if you don't want to accept transactions from ! 160: * sites that are not in your L.sys file (see cico.c) ! 161: */ ! 162: #define NOSTRANGERS /**/ ! 163: ! 164: /* ! 165: * Traditionally LCK (lock) files have been kept in /var/spool/uucp. ! 166: * If you want that define LOCKDIR to be ".". ! 167: * If you want the locks kept in a subdirectory, define LOCKDIR as "LCK". ! 168: * Good news about LCK. subdirectory: the directory can be mode 777 so ! 169: * unprivileged programs can share the uucp locking system, ! 170: * and the subdirectory keeps down clutter in the main directory. ! 171: * The BAD news: you have to change 'tip' and another programs that ! 172: * know where the LCK files are kept, and you have to change your /etc/rc ! 173: * if your rc cleans out the lock files (as it should). ! 174: */ ! 175: /* #define LOCKDIR "LCK" /**/ ! 176: #define LOCKDIR "." /**/ ! 177: ! 178: /* ! 179: * If you want uucp and uux to copy the data files by default, ! 180: * don't define DONTCOPY (This is the way older 4bsd uucps worked) ! 181: * If you want uucp and uux to use the original files instead of ! 182: * copies, define DONTCOPY (This is the way System III and V work) ! 183: */ ! 184: #define DONTCOPY /**/ ! 185: ! 186: /* ! 187: * Very few (that I know of) systems use the sequence checking feature. ! 188: * If you are not going to use it (hint: you are not), ! 189: * do not define GNXSEQ. This saves precious room on PDP11s. ! 190: */ ! 191: /*#define GNXSEQ /* comment this out to save space */ ! 192: ! 193: /* ! 194: * If you want the logfile stored in a file for each site instead ! 195: * of one file ! 196: * define LOGBYSITE as the directory to put the files in ! 197: */ ! 198: /* #define LOGBYSITE "/var/spool/uucp/LOG" /**/ ! 199: ! 200: /* ! 201: * define USE_SYSLOG if you want error messages to use SYSLOG instead ! 202: * of being written to /var/spool/log/ERRLOG ! 203: */ ! 204: #define USE_SYSLOG /**/ ! 205: ! 206: /* ! 207: * If you are doing rebilling and need connect accounting, ! 208: * define DO_CONNECT_ACCOUNTING to be the accounting file name ! 209: */ ! 210: /*#define DO_CONNECT_ACCOUNTING "/var/spool/uucp/CONNECT" /**/ ! 211: ! 212: #define XQTDIR "/var/spool/uucp/XTMP" ! 213: #define SQFILE "/usr/lib/uucp/SQFILE" ! 214: #define SQTMP "/usr/lib/uucp/SQTMP" ! 215: #define SLCKTIME 5400 /* system/device timeout (LCK.. files) */ ! 216: #define SEQFILE "/usr/lib/uucp/SEQF" ! 217: #define SYSFILE "/usr/lib/uucp/L.sys" ! 218: #define DEVFILE "/usr/lib/uucp/L-devices" ! 219: #define DIALFILE "/usr/lib/uucp/L-dialcodes" ! 220: #define USERFILE "/usr/lib/uucp/USERFILE" ! 221: #define CMDFILE "/usr/lib/uucp/L.cmds" ! 222: #define ALIASFILE "/usr/lib/uucp/L.aliases" ! 223: ! 224: #define SPOOL "/var/spool/uucp" ! 225: #define SYSLOG "/var/spool/uucp/SYSLOG" ! 226: #define PUBDIR "/var/spool/uucppublic" ! 227: ! 228: #define SQLOCK "SQ" ! 229: #define SEQLOCK "SEQL" ! 230: #define CMDPRE 'C' ! 231: #define DATAPRE 'D' ! 232: #define XQTPRE 'X' ! 233: ! 234: #define LOGFILE "/var/spool/uucp/LOGFILE" ! 235: #define ERRLOG "/var/spool/uucp/ERRLOG" ! 236: #define CMDSDIR "/var/spool/uucp/C." ! 237: #define DATADIR "/var/spool/uucp/D." ! 238: #define XEQTDIR "/var/spool/uucp/X." ! 239: ! 240: #define RMTDEBUG "AUDIT" ! 241: #define CORRUPT "CORRUPT" ! 242: #define SQTIME 60 ! 243: #define TRYCALLS 2 /* number of tries to dial call */ ! 244: ! 245: #define LLEN 150 ! 246: #define MAXRQST 250 ! 247: ! 248: #define DEBUG(l, f, s) if (Debug >= l) fprintf(stderr, f, s); else ! 249: ! 250: #define delock(dev) rmlock(dev) ! 251: #define mlock(dev) ulockf(dev, SLCKTIME) ! 252: ! 253: #define SAME 0 ! 254: #define ANYREAD 0004 ! 255: #define ANYWRITE 02 ! 256: #define FAIL -1 ! 257: #define SUCCESS 0 ! 258: #define CNULL (char *) 0 ! 259: #define STBNULL (struct sgttyb *) 0 ! 260: #define MASTER 1 ! 261: #define SLAVE 0 ! 262: #define MAXFULLNAME 255 ! 263: #define MAXMSGTIME 45 ! 264: #define NAMESIZE 255 ! 265: #define MAXBASENAME 14 ! 266: #define SYSNSIZE (MAXBASENAME-1-1-1-4) ! 267: #define EOTMSG "\04\n\04\n" ! 268: #define CALLBACK 1 ! 269: #define ONEDAY 86400L ! 270: ! 271: /* commands */ ! 272: #define SHELL "/bin/sh" ! 273: #define MAIL "/usr/lib/sendmail" ! 274: #define UUCICO "/usr/lib/uucp/uucico" ! 275: #define UUXQT "/usr/lib/uucp/uuxqt" ! 276: #define UUCP "uucp" ! 277: ! 278: /* call connect fail stuff */ ! 279: #define CF_SYSTEM -1 ! 280: #define CF_TIME -2 ! 281: #define CF_LOCK -3 ! 282: #define CF_NODEV -4 ! 283: #define CF_DIAL -5 ! 284: #define CF_LOGIN -6 ! 285: ! 286: #define F_NAME 0 ! 287: #define F_TIME 1 ! 288: #define F_LINE 2 ! 289: #define F_CLASS 3 /* an optional prefix and the speed */ ! 290: #define F_PHONE 4 ! 291: #define F_LOGIN 5 ! 292: ! 293: #define MAXPH 60 /* maximum length of a phone number */ ! 294: ! 295: /* This structure tells how to get to a device */ ! 296: struct condev { ! 297: char *CU_meth; /* method, such as 'ACU' or 'DIR' */ ! 298: char *CU_brand; /* brand, such as 'Hayes' or 'Vadic' */ ! 299: int (*CU_gen)(); /* what to call to search for brands */ ! 300: int (*CU_open)(); /* what to call to open brand */ ! 301: int (*CU_clos)(); /* what to call to close brand */ ! 302: }; ! 303: ! 304: /* This structure tells about a device */ ! 305: struct Devices { ! 306: #define D_type D_arg[0] ! 307: #define D_line D_arg[1] ! 308: #define D_calldev D_arg[2] ! 309: #define D_class D_arg[3] ! 310: #define D_brand D_arg[4] ! 311: #define D_CHAT 5 ! 312: int D_numargs; ! 313: int D_speed; ! 314: char *D_arg[20]; ! 315: char D_argbfr[100]; ! 316: }; ! 317: ! 318: /* system status stuff */ ! 319: #define SS_OK 0 ! 320: #define SS_NODEVICE 1 ! 321: #define SS_CALLBACK 2 ! 322: #define SS_INPROGRESS 3 ! 323: #define SS_FAIL 4 ! 324: #define SS_BADSEQ 5 ! 325: #define SS_WRONGTIME 6 ! 326: ! 327: /* fail/retry parameters */ ! 328: #define RETRYTIME 600 ! 329: #define MAXRECALLS 25 ! 330: ! 331: /* stuff for command execution */ ! 332: #define X_RQDFILE 'F' ! 333: #define X_STDIN 'I' ! 334: #define X_STDOUT 'O' ! 335: #define X_CMD 'C' ! 336: #define X_USER 'U' ! 337: #define X_SENDFILE 'S' ! 338: #define X_NONOTI 'N' ! 339: #define X_RETURNTO 'R' ! 340: #define X_NONZERO 'Z' ! 341: #define X_LOCK "XQT" ! 342: #define X_LOCKTIME 3600L ! 343: ! 344: #define WKDSIZE 100 /* size of work dir name */ ! 345: ! 346: #include <sys/types.h> ! 347: #ifndef USG ! 348: #include <sys/timeb.h> ! 349: #else USG ! 350: struct timeb ! 351: { ! 352: time_t time; ! 353: unsigned short millitm; ! 354: short timezone; ! 355: short dstflag; ! 356: }; ! 357: #define rindex strrchr ! 358: #define index strchr ! 359: #endif USG ! 360: ! 361: #ifdef BSD4_2 ! 362: #include <syslog.h> ! 363: #endif /* BSD4_2 */ ! 364: ! 365: extern struct timeb Now; ! 366: ! 367: extern int Ifn, Ofn; ! 368: extern char *Rmtname; ! 369: extern char User[]; ! 370: extern char Loginuser[]; ! 371: extern char *Spool; ! 372: extern char Myname[]; ! 373: extern char Myfullname[]; ! 374: extern int Debug; ! 375: extern int Bspeed; ! 376: extern char Wrkdir[]; ! 377: extern time_t Retrytime; ! 378: extern short Usrf; ! 379: extern int IsTcpIp; ! 380: extern char Progname[]; ! 381: extern int (*CU_end)(); ! 382: extern struct condev condevs[]; ! 383: extern char NOLOGIN[]; ! 384: ! 385: extern char DLocal[], DLocalX[], *subfile(), *subdir(); ! 386: ! 387: /* Commonly called routines which return non-int value */ ! 388: extern char *ttyname(), *strcpy(), *strcat(), *index(), *rindex(), ! 389: *fgets(), *calloc(), *malloc(), *fdig(), *ttyname(), ! 390: *cfgets(), *getwd(), *strpbrk(), *strncpy(); ! 391: extern long lseek(); ! 392: extern time_t time(); ! 393: ! 394: extern char _FAILED[], CANTOPEN[], DEVNULL[]; ! 395: ! 396: #ifdef lint ! 397: /* This horrible gross kludge is the only way I know to ! 398: * convince lint that signal(SIGINT,SIG_IGN) is legal. It hates SIG_IGN. ! 399: */ ! 400: #ifdef SIG_IGN ! 401: #undef SIG_IGN ! 402: #endif /* SIG_IGN */ ! 403: #define SIG_IGN main ! 404: extern int main(); ! 405: #ifdef DEBUG ! 406: #undef DEBUG ! 407: #endif DEBUG ! 408: #define DEBUG(a,b,c) ! 409: #endif /* lint */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.