xref: /csrg-svn/usr.bin/uucp/libacu/pnet.c (revision 23699)
117778Sralph #ifndef lint
2*23699Sbloom static char sccsid[] = "@(#)pnet.c	4.2 (Berkeley) 06/23/85";
317778Sralph #endif
417778Sralph 
517778Sralph #include "../condevs.h"
617778Sralph #ifdef PNET
717778Sralph 
817778Sralph /***
917778Sralph  *	pnetopn(flds)
1017778Sralph  *
1117778Sralph  *	call remote machine via Purdue network
1217778Sralph  *	use dial string as host name, speed as socket number
1317778Sralph  *	- Steve Bellovin
1417778Sralph  */
1517778Sralph pnetopn(flds)
1617778Sralph char *flds[];
1717778Sralph {
1817778Sralph 	int fd;
1917778Sralph 	int socket;
2017778Sralph 	register char *cp;
2117778Sralph 
2217778Sralph 	fd = pnetfile();
2317778Sralph 	DEBUG(4, "pnet fd - %d\n", fd);
2417778Sralph 	if (fd < 0) {
2517778Sralph 		logent("AVAILABLE DEVICE", "NO");
2617778Sralph 		return CF_NODEV;
2717778Sralph 	}
2817778Sralph 	socket = 0;
2917778Sralph 	for (cp = flds[F_CLASS]; *cp; cp++)
3017778Sralph 		socket = 10*socket + (*cp - '0');
3117778Sralph 	DEBUG(4, "socket - %d\n", socket);
3217778Sralph 	if (setjmp(Sjbuf)) {
3317778Sralph 		DEBUG(4, "pnet timeout  - %s\n", flds[F_PHONE]);
3417778Sralph 		return CF_DIAL;
3517778Sralph 	}
3617778Sralph 	signal(SIGALRM, alarmtr);
3717778Sralph 	DEBUG(4, "host - %s\n", flds[F_PHONE]);
3817778Sralph 	alarm(15);
3917778Sralph 	if (pnetscon(fd, flds[F_PHONE], socket) < 0) {
4017778Sralph 		DEBUG(4, "pnet connect failed - %s\n", flds[F_PHONE]);
41*23699Sbloom 		alarm(0);
4217778Sralph 		return CF_DIAL;
4317778Sralph 	}
4417778Sralph 	alarm(0);
4517778Sralph 	return fd;
4617778Sralph }
4717778Sralph #endif	PNET
48