xref: /csrg-svn/usr.bin/uucp/libacu/unet.c (revision 46875)
117781Sralph #ifndef lint
2*46875Sbostic static char sccsid[] = "@(#)unet.c	4.3 (Berkeley) 03/02/91";
317781Sralph #endif
417781Sralph 
5*46875Sbostic #include "condevs.h"
617781Sralph #ifdef UNETTCP
717781Sralph 
817781Sralph /*
917781Sralph  *	unetopn -- make UNET (tcp-ip) connection
1017781Sralph  *
1117781Sralph  *	return codes:
1217781Sralph  *		>0 - file number - ok
1317781Sralph  *		FAIL - failed
1417781Sralph  */
1517781Sralph 
1617781Sralph /* Default port of uucico server */
1717781Sralph #define	DFLTPORT	33
1817781Sralph 
1917781Sralph unetopn(flds)
2017781Sralph register char *flds[];
2117781Sralph {
2217781Sralph 	register int ret, port;
2317781Sralph 	int unetcls();
2417781Sralph 
2517781Sralph 	port = atoi(flds[F_PHONE]);
2617781Sralph 	if (port <= 0 || port > 255)
2717781Sralph 		port = DFLTPORT;
2817781Sralph 	DEBUG(4, "unetopn host %s, ", flds[F_NAME]);
2917781Sralph 	DEBUG(4, "port %d\n", port);
3017781Sralph 	if (setjmp(Sjbuf)) {
3117781Sralph 		logent("tcpopen", "TIMEOUT");
3217781Sralph 		endhnent();	/* see below */
3317781Sralph 		return CF_DIAL;
3417781Sralph 	}
3517781Sralph 	signal(SIGALRM, alarmtr);
3617781Sralph 	alarm(30);
3717781Sralph 	ret = tcpopen(flds[F_NAME], port, 0, TO_ACTIVE, "rw");
3817781Sralph 	alarm(0);
3917781Sralph 	endhnent();	/* wave magic wand at 3com and incant "eat it, bruce" */
4017781Sralph 	if (ret < 0) {
4117781Sralph 		DEBUG(5, "tcpopen failed: errno %d\n", errno);
4217781Sralph 		logent("tcpopen", _FAILED);
4317781Sralph 		return CF_DIAL;
4417781Sralph 	}
4517781Sralph 	CU_end = unetcls;
4617781Sralph 	return ret;
4717781Sralph }
4817781Sralph 
4917781Sralph /*
5017781Sralph  * unetcls -- close UNET connection.
5117781Sralph  */
5217781Sralph unetcls(fd)
5317781Sralph register int fd;
5417781Sralph {
5517781Sralph 	DEBUG(4, "UNET CLOSE called\n", 0);
5617781Sralph 	if (fd > 0) {
5717781Sralph #ifdef notdef
5817781Sralph 		/* disable this until a timeout is put in */
5917781Sralph 		if (ioctl(fd, UIOCCLOSE, STBNULL))
6017781Sralph 			logent("UNET CLOSE", _FAILED);
6117781Sralph #endif notdef
6217781Sralph 		close(fd);
6317781Sralph 		DEBUG(4, "closed fd %d\n", fd);
6417781Sralph 	}
6517781Sralph }
6617781Sralph #endif UNETTCP
67