xref: /csrg-svn/usr.bin/uucp/libuu/xqt.c (revision 13699)
1*13699Ssam #ifndef lint
2*13699Ssam static char sccsid[] = "@(#)xqt.c	5.1 (Berkeley) 07/02/83";
3*13699Ssam #endif
4*13699Ssam 
5*13699Ssam #include "uucp.h"
6*13699Ssam #include <signal.h>
7*13699Ssam 
8*13699Ssam /*******
9*13699Ssam  *	xuucico(rmtname)		start up uucico for rmtname
10*13699Ssam  *	char *rmtname;
11*13699Ssam  *
12*13699Ssam  *	return codes:  none
13*13699Ssam  */
14*13699Ssam 
15*13699Ssam xuucico(rmtname)
16*13699Ssam char *rmtname;
17*13699Ssam {
18*13699Ssam 	if (fork() == 0) {
19*13699Ssam 		/*  start uucico for rmtname system  */
20*13699Ssam 		char opt[100];
21*13699Ssam 		close(0);
22*13699Ssam 		close(1);
23*13699Ssam 		close(2);
24*13699Ssam 		open("/dev/null", 0);
25*13699Ssam 		open("/dev/null", 1);
26*13699Ssam 		open("/dev/null", 1);
27*13699Ssam 		signal(SIGINT, SIG_IGN);
28*13699Ssam 		signal(SIGHUP, SIG_IGN);
29*13699Ssam 		signal(SIGQUIT, SIG_IGN);
30*13699Ssam 		signal(SIGKILL, SIG_IGN);
31*13699Ssam 		if (rmtname[0] != '\0')
32*13699Ssam 			sprintf(opt, "-s%.7s", rmtname);
33*13699Ssam 		else
34*13699Ssam 			opt[0] = '\0';
35*13699Ssam 		execl(UUCICO, "UUCICO", "-r1", opt, (char *)0);
36*13699Ssam 		exit(100);
37*13699Ssam 	}
38*13699Ssam 	return;
39*13699Ssam }
40*13699Ssam 
41*13699Ssam 
42*13699Ssam /*******
43*13699Ssam  *	xuuxqt()		start up uuxqt
44*13699Ssam  *
45*13699Ssam  *	return codes:  none
46*13699Ssam  */
47*13699Ssam 
48*13699Ssam xuuxqt()
49*13699Ssam {
50*13699Ssam 	if (fork() == 0) {
51*13699Ssam 		/*  start uuxqt  */
52*13699Ssam 		close(0);
53*13699Ssam 		close(1);
54*13699Ssam 		close(2);
55*13699Ssam 		open("/dev/null", 2);
56*13699Ssam 		open("/dev/null", 2);
57*13699Ssam 		open("/dev/null", 2);
58*13699Ssam 		signal(SIGINT, SIG_IGN);
59*13699Ssam 		signal(SIGHUP, SIG_IGN);
60*13699Ssam 		signal(SIGQUIT, SIG_IGN);
61*13699Ssam 		signal(SIGKILL, SIG_IGN);
62*13699Ssam 		execl(UUXQT, "UUXQT",  (char *)0);
63*13699Ssam 		exit(100);
64*13699Ssam 	}
65*13699Ssam 	return;
66*13699Ssam }
67*13699Ssam xuucp(str)
68*13699Ssam char *str;
69*13699Ssam {
70*13699Ssam 	char text[300];
71*13699Ssam 	if (fork() == 0) {
72*13699Ssam 		/*  start uucp  */
73*13699Ssam 		close(0);
74*13699Ssam 		close(1);
75*13699Ssam 		close(2);
76*13699Ssam 		open("/dev/null", 0);
77*13699Ssam 		open("/dev/null", 1);
78*13699Ssam 		open("/dev/null", 1);
79*13699Ssam 		signal(SIGINT, SIG_IGN);
80*13699Ssam 		signal(SIGHUP, SIG_IGN);
81*13699Ssam 		signal(SIGQUIT, SIG_IGN);
82*13699Ssam 		signal(SIGKILL, SIG_IGN);
83*13699Ssam 		sprintf(text, "%s -r %s", UUCP, str);
84*13699Ssam 		execl(SHELL, "sh", "-c", text, (char *)0);
85*13699Ssam 		exit(100);
86*13699Ssam 	}
87*13699Ssam 	sleep(15);	/* Give uucp chance to finish */
88*13699Ssam 	return;
89*13699Ssam }
90