|
|
1.1 root 1: #ifndef lint
2: static char sccsid[] = "@(#)cu.c 4.6 (Berkeley) 6/28/83";
3: #endif
4:
5: #include "tip.h"
6:
7: int cleanup();
8: int timeout();
9:
10: /*
11: * Botch the interface to look like cu's
12: */
13: cumain(argc, argv)
14: char *argv[];
15: {
16: register int i;
17: static char sbuf[12];
18:
19: if (argc < 2) {
20: printf("usage: cu telno [-t] [-s speed] [-a acu] [-l line] [-#]\n");
21: exit(8);
22: }
23: CU = DV = NOSTR;
24: for (; argc > 1; argv++, argc--) {
25: if (argv[1][0] != '-')
26: PN = argv[1];
27: else switch (argv[1][1]) {
28:
29: case 't':
30: HW = 1, DU = -1;
31: --argc;
32: continue;
33:
34: case 'a':
35: CU = argv[2]; ++argv; --argc;
36: break;
37:
38: case 's':
39: if (speed(atoi(argv[2])) == 0) {
40: fprintf(stderr, "cu: unsupported speed %s\n",
41: argv[2]);
42: exit(3);
43: }
44: BR = atoi(argv[2]); ++argv; --argc;
45: break;
46:
47: case 'l':
48: DV = argv[2]; ++argv; --argc;
49: break;
50:
51: case '0': case '1': case '2': case '3': case '4':
52: case '5': case '6': case '7': case '8': case '9':
53: if (CU)
54: CU[strlen(CU)-1] = argv[1][1];
55: if (DV)
56: DV[strlen(DV)-1] = argv[1][1];
57: break;
58:
59: default:
60: printf("Bad flag %s", argv[1]);
61: break;
62: }
63: }
64: signal(SIGINT, cleanup);
65: signal(SIGQUIT, cleanup);
66: signal(SIGHUP, cleanup);
67: signal(SIGTERM, cleanup);
68:
69: /*
70: * The "cu" host name is used to define the
71: * attributes of the generic dialer.
72: */
73: if ((i = hunt(sprintf(sbuf, "cu%d", BR))) == 0) {
74: printf("all ports busy\n");
75: exit(3);
76: }
77: if (i == -1) {
78: printf("link down\n");
79: delock(uucplock);
80: exit(3);
81: }
82: setbuf(stdout, NULL);
83: loginit();
84: setuid(getuid());
85: setgid(getgid());
86: vinit();
87: setparity("none");
88: boolean(value(VERBOSE)) = 0;
89: if (HW)
90: ttysetup(speed(BR));
91: if (connect()) {
92: printf("Connect failed\n");
93: delock(uucplock);
94: exit(1);
95: }
96: if (!HW)
97: ttysetup(speed(BR));
98: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.