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

##### Functions

    sykcls            X
    sykopn            X

##### Variables

    sykspeed          X

       1: #ifndef lint
       2: static char sccsid[] = "@(#)sy.c	4.1 (Berkeley) 1/22/85";
       3: #endif
       4:
       5: #include "../condevs.h"
       6:
       7: #ifdef SYTEK
       8:
       9: /*
      10:  *	sykopn: establish connection through a sytek port.
      11:  *	Returns descriptor open to tty for reading and writing.
      12:  *	Negative values (-1...-7) denote errors in connmsg.
      13:  *	Will try to change baud rate of local port to match
      14:  *	that of the remote side.
      15:  */
      16: char sykspeed[50];  /* speed to reset to on close */
      17:
      18: sykopn(flds)
      19: register char *flds[];
      20: {
      21:     extern errno;
      22:     char *rindex(), *fdig(), dcname[20];
      23:     int dh, ok = 0, speed;
      24:     register FILE *dfp;
      25:     struct Devices dev;
      26:     char speedbuf[50];
      27:
      28:     dfp = fopen(DEVFILE, "r");
      29:     ASSERT(dfp != NULL, "Can't open", DEVFILE, 0);
      30:
      31:     signal(SIGALRM, alarmtr);
      32:     dh = -1;
      33:     while(rddev(dfp, &dev) != FAIL) {
      34: /* we'll set our own speed; F_CLASS is how cynthia configures it every night
      35: 		if (strcmp(flds[F_CLASS], dev.D_class) != SAME)
      36: 			continue;
      37: */
      38:         if (snccmp(flds[F_LINE], dev.D_type) != SAME)
      39:             continue;
      40:         if (mlock(dev.D_line) == FAIL)
      41:             continue;
      42:
      43:         sprintf(dcname, "/dev/%s", dev.D_line);
      44:         getnextfd();
      45:         alarm(10);
      46:         if (setjmp(Sjbuf)) {
      47:             delock(dev.D_line);
      48:             logent(dev.D_line,"sytek open TIMEOUT");
      49:             dh = -1;
      50:             break;
      51:             }
      52:         dh = open(dcname, 2);
      53:         alarm(0);
      54:         next_fd = -1;
      55:         if (dh > 0) {
      56:             break;
      57:             }
      58:         devSel[0] = '\0';
      59:         delock(dev.D_line);
      60:     }
      61:     fclose(dfp);
      62:     if (dh < 0)
      63:         return(CF_NODEV);
      64:
      65:     speed = atoi(fdig(dev.D_class));
      66:     fixline(dh, speed);
      67:     sleep(1);
      68:
      69:     /* negotiate with sytek */
      70:     genbrk(dh, 3);
      71:
      72:     DEBUG(4, "wanted %s ", "#");
      73:     ok = expect("#", dh);
      74:     DEBUG(4, "got %s\n", ok ? "?" : "that");
      75:     if(ok != 0){
      76:         if(atoi(fdig(dev.D_class)) == 9600){
      77:             fixline(dh, 2400);
      78:             speed = 2400;
      79:         } else {
      80:             fixline(dh, 9600);
      81:             speed = 9600;
      82:         }
      83:         sleep(1);
      84:         genbrk(dh, 3);
      85:         ok = expect("#", dh);
      86:         if(ok){
      87:             close(dh);
      88:             DEBUG(4, "sytek BREAK failed\n", "");
      89:             delock(dev.D_line);
      90:             return(CF_DIAL);
      91:         }
      92:     }
      93:     write(dh, "done \r", 6);
      94:     ok = expect("#", dh);
      95:     DEBUG(4, "got %s\n", ok ? "?" : "that");
      96:     if(speed != atoi(fdig(flds[F_CLASS]))){
      97:         DEBUG(4, "changing speed\n", "");
      98:         sprintf(speedbuf, "baud %s\r", fdig(flds[F_CLASS]));
      99:         write(dh, speedbuf, strlen(speedbuf));
     100:         sleep(1);
     101:         speed = atoi(fdig(flds[F_CLASS]));
     102:         fixline(dh, speed);
     103:         genbrk(dh, 3);
     104:         ok = expect("#", dh);
     105:         DEBUG(4, "speed set %s\n", ok ? "failed" : flds[F_CLASS]);
     106:     }
     107:     strcpy(sykspeed, dev.D_class);
     108:     write(dh, "command break\r", 14);
     109:     ok = expect("#", dh);
     110:     DEBUG(4, "got %s\n", ok ? "?" : "that");
     111:     if (ok == 0) {
     112:         write(dh, "call ", 5);
     113:         write(dh, flds[F_PHONE], strlen(flds[F_PHONE]));
     114:         write(dh, "\r", 1);
     115:         DEBUG(4, "sytek dial %s\n", flds[F_PHONE]);
     116:         DEBUG(4, "wanted %s ", "COMPLETED TO ");
     117:         ok = expect("COMPLETED TO ", dh);
     118:         DEBUG(4, "got %s\n", ok ? "?" : "that");
     119:     }
     120:
     121:     if (ok != 0) {
     122:         close(dh);
     123:         DEBUG(4, "sytek failed\n", "");
     124:         delock(dev.D_line);
     125:         return(CF_DIAL);
     126:     } else
     127:         DEBUG(4, "sytek ok\n", "");
     128:
     129:     CU_end = sykcls;
     130:     strcpy(devSel, dev.D_line); /* for later unlock */
     131:     return(dh);
     132:
     133: }
     134:
     135: sykcls(fd)
     136: register int fd;
     137: {
     138:     register int ok, speed;
     139:
     140:
     141:     if (fd > 0) {
     142:         genbrk(fd, 3);
     143:         ok = expect("#", fd);
     144:         DEBUG(4, "got %s\n", ok ? "?" : "that");
     145:         if(ok != 0){
     146:             genbrk(fd, 3);
     147:             ok = expect("#", fd);
     148:         }
     149:         if(ok == 0){
     150:             write(fd, "done 1\r", 7);
     151:             ok = expect("#", fd);
     152:             DEBUG(4, "got %s\n", ok ? "?" : "that");
     153:             DEBUG(4, "reset baud to %s\n", sykspeed);
     154:             write(fd, "baud ", 5);
     155:             write(fd, sykspeed, strlen(sykspeed));
     156:             write(fd, "\r", 1);
     157:             sleep(1);
     158:         }
     159:         close(fd);
     160:         delock(devSel);
     161:     }
     162: }
     163: #endif SYTEK

#### Defined functions

sykcls defined in line 135; used 1 times

- in line 129

sykopn defined in line 18; never used

#### Defined variables

sccsid defined in line 2; never used
sykspeed defined in line 16; used 4 times

- in line 107, 153-155(3)

Last modified: 1987-02-17 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 1355 |