xref: /original-bsd/usr.bin/uucp/libacu/pnet.c (revision c3e32dec)
1 /*-
2  * Copyright (c) 1985, 1993
3  *	The Regents of the University of California.  All rights reserved.
4  *
5  * %sccs.include.proprietary.c%
6  */
7 
8 #ifndef lint
9 static char sccsid[] = "@(#)pnet.c	8.1 (Berkeley) 06/06/93";
10 #endif /* not lint */
11 
12 #include "condevs.h"
13 #ifdef PNET
14 
15 /***
16  *	pnetopn(flds)
17  *
18  *	call remote machine via Purdue network
19  *	use dial string as host name, speed as socket number
20  *	- Steve Bellovin
21  */
22 pnetopn(flds)
23 char *flds[];
24 {
25 	int fd;
26 	int socket;
27 	register char *cp;
28 
29 	fd = pnetfile();
30 	DEBUG(4, "pnet fd - %d\n", fd);
31 	if (fd < 0) {
32 		logent("AVAILABLE DEVICE", "NO");
33 		return CF_NODEV;
34 	}
35 	socket = 0;
36 	for (cp = flds[F_CLASS]; *cp; cp++)
37 		socket = 10*socket + (*cp - '0');
38 	DEBUG(4, "socket - %d\n", socket);
39 	if (setjmp(Sjbuf)) {
40 		DEBUG(4, "pnet timeout  - %s\n", flds[F_PHONE]);
41 		return CF_DIAL;
42 	}
43 	signal(SIGALRM, alarmtr);
44 	DEBUG(4, "host - %s\n", flds[F_PHONE]);
45 	alarm(15);
46 	if (pnetscon(fd, flds[F_PHONE], socket) < 0) {
47 		DEBUG(4, "pnet connect failed - %s\n", flds[F_PHONE]);
48 		alarm(0);
49 		return CF_DIAL;
50 	}
51 	alarm(0);
52 	return fd;
53 }
54 #endif	PNET
55