xref: /csrg-svn/usr.bin/uucp/libacu/pnet.c (revision 17778)
1*17778Sralph #ifndef lint
2*17778Sralph static char sccsid[] = "@(#)pnet.c	4.1 (Berkeley) 01/22/85";
3*17778Sralph #endif
4*17778Sralph 
5*17778Sralph #include "../condevs.h"
6*17778Sralph #ifdef PNET
7*17778Sralph 
8*17778Sralph /***
9*17778Sralph  *	pnetopn(flds)
10*17778Sralph  *
11*17778Sralph  *	call remote machine via Purdue network
12*17778Sralph  *	use dial string as host name, speed as socket number
13*17778Sralph  *	- Steve Bellovin
14*17778Sralph  */
15*17778Sralph pnetopn(flds)
16*17778Sralph char *flds[];
17*17778Sralph {
18*17778Sralph 	int fd;
19*17778Sralph 	int socket;
20*17778Sralph 	register char *cp;
21*17778Sralph 
22*17778Sralph 	fd = pnetfile();
23*17778Sralph 	DEBUG(4, "pnet fd - %d\n", fd);
24*17778Sralph 	if (fd < 0) {
25*17778Sralph 		logent("AVAILABLE DEVICE", "NO");
26*17778Sralph 		return CF_NODEV;
27*17778Sralph 	}
28*17778Sralph 	socket = 0;
29*17778Sralph 	for (cp = flds[F_CLASS]; *cp; cp++)
30*17778Sralph 		socket = 10*socket + (*cp - '0');
31*17778Sralph 	DEBUG(4, "socket - %d\n", socket);
32*17778Sralph 	if (setjmp(Sjbuf)) {
33*17778Sralph 		DEBUG(4, "pnet timeout  - %s\n", flds[F_PHONE]);
34*17778Sralph 		return CF_DIAL;
35*17778Sralph 	}
36*17778Sralph 	signal(SIGALRM, alarmtr);
37*17778Sralph 	DEBUG(4, "host - %s\n", flds[F_PHONE]);
38*17778Sralph 	alarm(15);
39*17778Sralph 	if (pnetscon(fd, flds[F_PHONE], socket) < 0) {
40*17778Sralph 		DEBUG(4, "pnet connect failed - %s\n", flds[F_PHONE]);
41*17778Sralph 		return CF_DIAL;
42*17778Sralph 	}
43*17778Sralph 	alarm(0);
44*17778Sralph 	return fd;
45*17778Sralph }
46*17778Sralph #endif	PNET
47