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