1: /*
2: * Copyright (c) 1983 Regents of the University of California.
3: * All rights reserved. The Berkeley software License Agreement
4: * specifies the terms and conditions for redistribution.
5: */
6:
7: #ifndef lint
8: static char sccsid[] = "@(#)df.c 5.1 (Berkeley) 6/6/85";
9: #endif not lint
10:
11: /*
12: * Dial the DF02-AC or DF03-AC
13: */
14:
15: #include "tip.h"
16:
17: static jmp_buf Sjbuf;
18: static timeout();
19:
20: df02_dialer(num, acu)
21: char *num, *acu;
22: {
23:
24: return (df_dialer(num, acu, 0));
25: }
26:
27: df03_dialer(num, acu)
28: char *num, *acu;
29: {
30:
31: return (df_dialer(num, acu, 1));
32: }
33:
34: df_dialer(num, acu, df03)
35: char *num, *acu;
36: int df03;
37: {
38: register int f = FD;
39: struct sgttyb buf;
40: int speed = 0, rw = 2;
41: char c = '\0';
42:
43: ioctl(f, TIOCHPCL, 0); /* make sure it hangs up when done */
44: if (setjmp(Sjbuf)) {
45: printf("connection timed out\r\n");
46: df_disconnect();
47: return (0);
48: }
49: if (boolean(value(VERBOSE)))
50: printf("\ndialing...");
51: fflush(stdout);
52: #ifdef TIOCMSET
53: if (df03) {
54: int st = TIOCM_ST; /* secondary Transmit flag */
55:
56: ioctl(f, TIOCGETP, &buf);
57: if (buf.sg_ospeed != B1200) { /* must dial at 1200 baud */
58: speed = buf.sg_ospeed;
59: buf.sg_ospeed = buf.sg_ispeed = B1200;
60: ioctl(f, TIOCSETP, &buf);
61: ioctl(f, TIOCMBIC, &st); /* clear ST for 300 baud */
62: } else
63: ioctl(f, TIOCMBIS, &st); /* set ST for 1200 baud */
64: }
65: #endif
66: signal(SIGALRM, timeout);
67: alarm(5 * strlen(num) + 10);
68: ioctl(f, TIOCFLUSH, &rw);
69: write(f, "\001", 1);
70: sleep(1);
71: write(f, "\002", 1);
72: write(f, num, strlen(num));
73: read(f, &c, 1);
74: #ifdef TIOCMSET
75: if (df03 && speed) {
76: buf.sg_ispeed = buf.sg_ospeed = speed;
77: ioctl(f, TIOCSETP, &buf);
78: }
79: #endif
80: return (c == 'A');
81: }
82:
83: df_disconnect()
84: {
85: int rw = 2;
86:
87: write(FD, "\001", 1);
88: sleep(1);
89: ioctl(FD, TIOCFLUSH, &rw);
90: }
91:
92:
93: df_abort()
94: {
95:
96: df_disconnect();
97: }
98:
99:
100: static
101: timeout()
102: {
103:
104: longjmp(Sjbuf, 1);
105: }
Defined functions
Defined variables
sccsid
defined in line
8;
never used