1: #ifndef lint
   2: static char sccsid[] = "@(#)pen.c	4.2 (Berkeley) 10/10/85";
   3: #endif
   4: 
   5: /*
   6:  *	Speaker's quick and dirty penril hack.  STA 4/1/85.
   7:  */
   8: #include "../condevs.h"
   9: #ifdef  PENRIL
  10: 
  11: penopn(telno, flds, dev)
  12: char *flds[], *telno;
  13: struct Devices *dev;
  14: {
  15:     int dh;
  16:     int i, ok = -1;
  17:     char dcname[20];
  18: 
  19:     sprintf(dcname, "/dev/%s", dev->D_line);
  20:     if (setjmp(Sjbuf)) {
  21:         DEBUG(1, "timeout penril open\n", "");
  22:         logent("penril open", "TIMEOUT");
  23:         if (dh >= 0)
  24:             close(dh);
  25:         delock(dev->D_line);
  26:         return CF_NODEV;
  27:     }
  28:     signal(SIGALRM, alarmtr);
  29:     getnextfd();
  30:     alarm(10);
  31:     dh = open(dcname, 2);
  32:     alarm(0);
  33:     next_fd = -1;
  34:     if (dh < 0) {
  35:         DEBUG(4,"%s\n", errno == 4 ? "no carrier" : "can't open modem");
  36:         delock(dev->D_line);
  37:         return errno == 4 ? CF_DIAL : CF_NODEV;
  38:     }
  39: 
  40:     /* modem is open */
  41:     fixline(dh, dev->D_speed);
  42: 
  43:     /* translate - to P and = to W for Penril */
  44:     DEBUG(4, "calling %s -> ", telno);
  45:     for (i = 0; i < strlen(telno); ++i) {
  46:         switch(telno[i]) {
  47:         case '-':   /* delay */
  48:             telno[i] = 'P';
  49:             break;
  50:         case '=':   /* await dial tone */
  51:             telno[i] = 'W';
  52:             break;
  53:         case '<':
  54:             telno[i] = 'P';
  55:             break;
  56:         }
  57:     }
  58:     DEBUG(4, "%s\n", telno);
  59:     sleep(1);
  60:     for(i = 0; i < 5; ++i) {    /* make up to 5 tries */
  61:         slowrite(dh, "\r");/* awake, thou lowly Penril! */
  62: 
  63:         DEBUG(4, "wanted %s ", ">");
  64:         ok = expect(">", dh);
  65:         DEBUG(4, "got %s\n", ok ? "?" : "that");
  66:         if (ok != 0)
  67:             continue;
  68:         slowrite(dh, "K");  /* "K" (enter number) command */
  69:         DEBUG(4, "wanted %s ", "NO.: ");
  70:         ok = expect("NO.: ", dh);
  71:         DEBUG(4, "got %s\n", ok ? "?" : "that");
  72:         if (ok == 0)
  73:             break;
  74:     }
  75: 
  76:     if (ok == 0) {
  77:         slowrite(dh, telno); /* send telno, send \r */
  78:         slowrite(dh, "\r");
  79:         DEBUG(4, "wanted %s ", "OK");
  80:         ok = expect("OK", dh);
  81:         DEBUG(4, "got %s\n", ok ? "?" : "that");
  82:     }
  83:     if (ok != 0) {
  84:         if (dh > 2)
  85:             close(dh);
  86:         DEBUG(4, "penDial failed\n", "");
  87:         return CF_DIAL;
  88:     }
  89:     else
  90:         DEBUG(4, "penDial ok\n", "");
  91:     return dh;
  92: }
  93: 
  94: pencls(fd)
  95: int fd;
  96: {
  97:     if (fd > 0) {
  98:         close(fd);
  99:         sleep(5);
 100:         delock(devSel);
 101:     }
 102: }
 103: #endif PENRIL

Defined functions

pencls defined in line 94; never used
penopn defined in line 11; never used

Defined variables

sccsid defined in line 2; never used
Last modified: 1987-02-17
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1387
Valid CSS Valid XHTML 1.0 Strict