Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!linus!decvax!bellcore!petrus!sabre!zeta!epsilon!gamma!ulysses!mhuxr!mhuxt!houxm!whuxl!whuxlm!akgua!gatech!seismo!brl-smoke!smoke!es!Robert_Toxen%anvil.UUCP@harvard.harvard.edu From: Robert_Toxen%anvil.UUCP@harvard.harvard.edu Newsgroups: net.unix-wizards Subject: Re: Re: Re: hayes & uucp Message-ID: <1223@brl-smoke.ARPA> Date: Fri, 21-Feb-86 23:55:58 EST Article-I.D.: brl-smok.1223 Posted: Fri Feb 21 23:55:58 1986 Date-Received: Wed, 26-Feb-86 06:28:17 EST Sender: news@brl-smoke.ARPA Lines: 71 > From: Larry Campbell > Subject: Re: Re: hayes & uucp > > Many thanks to all who responded to the hayes modem <==> uucp problem. > > Just put the appropriate hayes commands in the L.sys startup string. > > Larry McVoy > > Arpa: mcvoy@rsch.wisc.edu > > Uucp: {seismo, ihnp4}!uwvax!geowhiz!geophiz!larry > Uucico distinguishes between a dial failure and a login failure. > You can have multiple entries in L.sys for a system, with a > different phone number in each entry; uucico will dial > using each one in turn until it gets through, IF it encounters dial > failures. But if it encounters a login failure (a failure in the > expect-send sequence in L.sys) uucico stops right there and won't try > any subsequent entries for that system in L.sys. > Larry Campbell The Boston Software Works, Inc. > ARPA: maynard.UUCP:campbell@harvard.ARPA 120 Fulton Street > UUCP: {harvard,cbosgd}!wjh12!maynard!campbell Boston MA 02109 For those with source code this bug can be fixed by replacing the original conn() routine in conn.c with this one: conn(system) char *system; { register FILE *fsys; register int nf, fn; int ret; int fcode = 0; char *flds[50]; fsys = fopen(SYSFILE, "r"); ASSERT(fsys != NULL, "CAN'T OPEN", SYSFILE, 0); /* * RT: rearranged so that if login fails it will * look for another entry for the node in L.sys and * try it. This allows trying several phone numbers * and even the same one several times in case it * is flakey. */ for (;;) { DEBUG(4, "finds %s\n", "called"); nf = finds(fsys, system, flds); if (nf < 0) { fclose(fsys); return(fcode ? fcode : nf); } DEBUG(4, "getto %s\n", "called"); if ((fn = getto(flds)) <= 0) { fcode = CF_DIAL; close(fn); /* RT */ continue; } DEBUG(4, "login %s\n", "called"); if (login(nf, flds, fn) == FAIL) { close(fn); sleep(5); fn = -1; fcode = CF_LOGIN; if (lockdev[0]) { delock(lockdev); lockdev[0] = '\0'; } continue; } return(fn); } } ----- Bob Toxen Stratus Computers {ucbvax!ihnp4,harvard}!anvil