#include #include #include extern jmp_buf Sjbuf; extern int Debug; extern char tty[]; /* terminal we're talking at */ extern long ttycspeed; /* speed it's at */ extern char ttyprefix[]; /* dial prefix */ extern char ttysuffix[]; /* dial suffix */ extern char ttyinit[]; /* init string */ extern long ttyispeed; /* init speed */ extern char ttybusy[]; extern char ttyfail[]; extern int (*cdf)(); /* * eXaMiNe() matches some reply string against a list of oopsie commands */ static eXaMiNe(list, reply, rx, rsize) register char *list, *reply; register rsize; { register lsize; register i; register rb; for (; *list; list += (1+lsize)) { lsize = strlen(list); rb = (rx-lsize) % rsize; for (i=0; iclock(); ) { if ((*cdf)()) return 0; else while (ttystat()) { reply[rx] = ttyin(); rx = (1+rx) % sizeof reply; if (eXaMiNe(ttybusy, reply, rx, sizeof reply)) goto disable; else if (eXaMiNe(ttyfail, reply, rx, sizeof reply)) { status=2; goto disable; } } sleep(1); } disable:slowputs("\r"); disable(); sleep(2); enable(); slowputs("\r"); } while (status <= 1 && retries-- > 0); return status; }