1 /* df.c 4.1 81/05/09 */ 2 /* 3 * Dial the DF02-AC 4 */ 5 6 #include "tip.h" 7 #if DF02 8 #include <setjmp.h> 9 10 static jmp_buf Sjbuf; 11 static timeout(); 12 13 df_dialer(num, acu) 14 char *num, *acu; 15 { 16 register int f = FD; 17 int c; 18 19 ioctl(f, TIOCHPCL, 0); /* make sure it hangs up when done */ 20 if (setjmp(Sjbuf)) { 21 printf("connection timed out\r\n"); 22 df_disconnect(); 23 return(0); 24 } 25 if (boolean(value(VERBOSE))) 26 printf("\ndialing..."); 27 fflush(stdout); 28 signal(SIGALRM, timeout); 29 alarm(5 * strlen(num) + 10); 30 ioctl(f, TIOCFLUSH, 0); 31 write(f, "\001", 1); 32 sleep(0); /* this must waste 70 ms. */ 33 write(f, "\002", 1); 34 write(f, num, strlen(num)); 35 c = 0; 36 read(f, (char *)&c, 1); 37 return(c == 'A'); 38 } 39 40 41 df_disconnect() 42 { 43 write(FD, "\001", 1); 44 sleep(1); 45 ioctl(FD, TIOCFLUSH, 0); 46 } 47 48 49 df_abort() 50 { 51 write(FD, "\001", 1); 52 sleep(1); 53 ioctl(FD, TIOCFLUSH, 0); 54 } 55 56 57 static 58 timeout() 59 { 60 longjmp(Sjbuf, 1); 61 } 62 #endif 63