xref: /csrg-svn/usr.bin/uucp/libacu/unet.c (revision 17781)
1*17781Sralph #ifndef lint
2*17781Sralph static char sccsid[] = "@(#)unet.c	4.1 (Berkeley) 01/22/85";
3*17781Sralph #endif
4*17781Sralph 
5*17781Sralph #include "../condevs.h"
6*17781Sralph #ifdef UNETTCP
7*17781Sralph 
8*17781Sralph /*
9*17781Sralph  *	unetopn -- make UNET (tcp-ip) connection
10*17781Sralph  *
11*17781Sralph  *	return codes:
12*17781Sralph  *		>0 - file number - ok
13*17781Sralph  *		FAIL - failed
14*17781Sralph  */
15*17781Sralph 
16*17781Sralph /* Default port of uucico server */
17*17781Sralph #define	DFLTPORT	33
18*17781Sralph 
19*17781Sralph unetopn(flds)
20*17781Sralph register char *flds[];
21*17781Sralph {
22*17781Sralph 	register int ret, port;
23*17781Sralph 	int unetcls();
24*17781Sralph 
25*17781Sralph 	port = atoi(flds[F_PHONE]);
26*17781Sralph 	if (port <= 0 || port > 255)
27*17781Sralph 		port = DFLTPORT;
28*17781Sralph 	DEBUG(4, "unetopn host %s, ", flds[F_NAME]);
29*17781Sralph 	DEBUG(4, "port %d\n", port);
30*17781Sralph 	if (setjmp(Sjbuf)) {
31*17781Sralph 		logent("tcpopen", "TIMEOUT");
32*17781Sralph 		endhnent();	/* see below */
33*17781Sralph 		return CF_DIAL;
34*17781Sralph 	}
35*17781Sralph 	signal(SIGALRM, alarmtr);
36*17781Sralph 	alarm(30);
37*17781Sralph 	ret = tcpopen(flds[F_NAME], port, 0, TO_ACTIVE, "rw");
38*17781Sralph 	alarm(0);
39*17781Sralph 	endhnent();	/* wave magic wand at 3com and incant "eat it, bruce" */
40*17781Sralph 	if (ret < 0) {
41*17781Sralph 		DEBUG(5, "tcpopen failed: errno %d\n", errno);
42*17781Sralph 		logent("tcpopen", _FAILED);
43*17781Sralph 		return CF_DIAL;
44*17781Sralph 	}
45*17781Sralph 	CU_end = unetcls;
46*17781Sralph 	return ret;
47*17781Sralph }
48*17781Sralph 
49*17781Sralph /*
50*17781Sralph  * unetcls -- close UNET connection.
51*17781Sralph  */
52*17781Sralph unetcls(fd)
53*17781Sralph register int fd;
54*17781Sralph {
55*17781Sralph 	DEBUG(4, "UNET CLOSE called\n", 0);
56*17781Sralph 	if (fd > 0) {
57*17781Sralph #ifdef notdef
58*17781Sralph 		/* disable this until a timeout is put in */
59*17781Sralph 		if (ioctl(fd, UIOCCLOSE, STBNULL))
60*17781Sralph 			logent("UNET CLOSE", _FAILED);
61*17781Sralph #endif notdef
62*17781Sralph 		close(fd);
63*17781Sralph 		DEBUG(4, "closed fd %d\n", fd);
64*17781Sralph 	}
65*17781Sralph }
66*17781Sralph #endif UNETTCP
67