# 2.11BSD#431 - /usr/src/usr.bin/uucp/aculib/hys24.c

##### Functions

    hyscls24          X
    hysopn24          X
    hyspopn24         X
    hystopn24         X

       1: #ifndef lint
       2: static char sccsid[] = "@(#)hys24.c	1.1 (Berkeley) 1/13/86";
       3: #endif !lint
       4:
       5: #include "../condevs.h"
       6:
       7: #ifdef HAYES2400
       8: /*
       9:  *	hyspopn24(telno, flds, dev) connect to hayes smartmodem (pulse call)
      10:  *	hystopn24(telno, flds, dev) connect to hayes smartmodem (tone call)
      11:  *	char *flds[], *dev[];
      12:  *
      13:  *	return codes:
      14:  *		>0  -  file number  -  ok
      15:  *		CF_DIAL,CF_DEVICE  -  failed
      16:  */
      17:
      18: hyspopn24(telno, flds, dev)
      19: char *telno, *flds[];
      20: struct Devices *dev;
      21: {
      22:     return hysopn24(telno, flds, dev, 0);
      23: }
      24:
      25: hystopn24(telno, flds, dev)
      26: char *telno, *flds[];
      27: struct Devices *dev;
      28: {
      29:     return hysopn24(telno, flds, dev, 1);
      30: }
      31:
      32: /* ARGSUSED */
      33: hysopn24(telno, flds, dev, toneflag)
      34: char *telno;
      35: char *flds[];
      36: struct Devices *dev;
      37: int toneflag;
      38: {
      39:     int dh = -1;
      40:     char *ii;
      41:     extern errno;
      42:     char dcname[20];
      43:
      44:     sprintf(dcname, "/dev/%s", dev->D_line);
      45:     DEBUG(4, "dc - %s\n", dcname);
      46:     if (setjmp(Sjbuf)) {
      47:         logent(dcname, "TIMEOUT");
      48:         if (dh >= 0)
      49:             hyscls24(dh);
      50:         return CF_DIAL;
      51:     }
      52:     signal(SIGALRM, alarmtr);
      53:     getnextfd();
      54:     alarm(10);
      55:     dh = open(dcname, 2); /* read/write */
      56:     alarm(0);
      57:
      58:     for (ii = telno; *ii; ii++)
      59:         if (*ii == '=')
      60:             *ii = ',';
      61:
      62:     /* modem is open */
      63:     next_fd = -1;
      64:     if (dh >= 0) {
      65:         fixline(dh, dev->D_speed);
      66:         write(dh, "\rATZH\r", 6);
      67:         sleep(2);
      68:         if (dochat(dev, flds, dh)) {
      69:             logent(dcname, "CHAT FAILED");
      70:             hyscls24(dh);
      71:             return CF_DIAL;
      72:         }
      73:         write(dh, "AT&F&D3&C1E0X1\r", 15);
      74:         if (expect("OK\r\n", dh) != 0) {
      75:             logent(dcname, "HSM not responding OK");
      76:             hyscls24(dh);
      77:             return CF_DIAL;
      78:         }
      79:         if (toneflag)
      80:             write(dh, "\rATDT", 5);
      81:         else
      82:             write(dh, "\rATDP", 5);
      83:         write(dh, telno, strlen(telno));
      84:         write(dh, "\r", 1);
      85:
      86:         if (expect("CONNECT", dh) != 0) {
      87:             logent("HSM no carrier", _FAILED);
      88:             strcpy(devSel, dev->D_line);
      89:             hyscls24(dh);
      90:             return CF_DIAL;
      91:         }
      92:
      93:     }
      94:     if (dh < 0) {
      95:         logent(dcname, "CAN'T OPEN");
      96:         return dh;
      97:     }
      98:     DEBUG(4, "hayes ok\n", CNULL);
      99:     return dh;
     100: }
     101:
     102: hyscls24(fd)
     103: int fd;
     104: {
     105:     char dcname[20];
     106:
     107:     if (fd > 0) {
     108:         sprintf(dcname, "/dev/%s", devSel);
     109:         DEBUG(4, "Hanging up fd = %d\n", fd);
     110:         sleep(1);
     111: /*
     112:  * Since we have a getty sleeping on this line, when it wakes up it sends
     113:  * all kinds of garbage to the modem.  Unfortunatly, the modem likes to
     114:  * execute the previous command when it sees the garbage.  The previous
     115:  * command was to dial the phone, so let's make the last command reset
     116:  * the modem.
     117:  */
     118:         write(fd, "\r+++", 4);
     119:         sleep(2);
     120:         write(fd, "\rATH\rATZ\r", 9);
     121:         sleep(2);
     122:         close(fd);
     123:         delock(devSel);
     124:     }
     125: }
     126: #endif HAYES2400

#### Defined functions

hyscls24 defined in line 102; used 4 times

- in line 49, 70, 76, 89

hysopn24 defined in line 33; used 2 times

- in line 22, 29

hyspopn24 defined in line 18; never used
hystopn24 defined in line 25; 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: 1245 |