xref: /original-bsd/usr.bin/uucp/vms/uucp.h (revision 7c7c9d58)
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();
293