Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site elsie.UUCP Path: utzoo!watmath!clyde!burl!ulysses!mhuxl!ihnp4!zehntel!hplabs!hao!seismo!umcp-cs!cvl!elsie!ado From: ado@elsie.UUCP (Arthur David Olson) Newsgroups: net.bugs.uucp Subject: uucico misses OO messages (with fix) Message-ID: <1216@elsie.UUCP> Date: Fri, 14-Sep-84 19:04:49 EDT Article-I.D.: elsie.1216 Posted: Fri Sep 14 19:04:49 1984 Date-Received: Tue, 25-Sep-84 02:31:44 EDT Organization: NIH-LEC, Bethesda, MD Lines: 87 Apologies if this is the fifth time around the net for this. And if anyone has wiser words on the subject, let me and others know! Subject-- imsg.c Problem-- uucico can miss "OO" messages. Since uucico eventually times out, the only bad thing about this is that a phone line gets tied up until the timeout occurs. Repeat by-- Pick another system. Ensure that there's no work in your uucp directory for the other system, and that there's no work in the other system's uucp directory for your system. Use the comand /usr/lib/uucp/uucico -r1 -x9 -sothersys >& /tmp/# & Then look at the file "/tmp/#" If you see something like --*!----*"---"*----"*---OOOOOO-imsg >- exit code 0 at the end of the file, it means you've got the problem-- there was an "imsg" (Input MeSsaGe) call at the end of the uucico session that never completed. If, on the other hand, the end of the file looks something like OOOOOO- exit code 0 you're okay. N.B.: I've seen this problem on our 4.1bsd system when calling 4.2bsd systems; it may only occur on this system combination. Discussion-- The papers "A Dial-Up Network of UNIX (tm) Systems" and "Uucp Implementation Description" both state that: When a HY message is received by the MASTER it is echoed back to the SLAVE and the protocols are turned off. Each program sends a final "OO" message to the other. Alas, after the MASTER sends a H message and the SLAVE sends a HY message and the MASTER receives the HY message and the master echoes back the HY message, the SLAVE does not immediately turn off the protocol but rather first sends out a second HY message. It's this second HY message that (at least in part) accounts for the characters preceding "OOOOOO" in the line that looks like --*!----*"---"*----"*---OOOOOO-imsg >- in the "uucico" diagnostic output file. The presence of these characters causes "imsg" to miss the "OO" message. Fix-- Here are the relevant lines from "imsg.c"--the idea is to always be on the lookout for uucp's "message synchronization" character, "rewinding" the message buffer if it is seen. ... #ifdef OLDVERSION imsg(msg, fn) char *msg; int fn; { #else imsg(amsg, fn) char * amsg; int fn; { register char * msg = amsg; #endif ... #ifndef OLDVERSION if (*msg == Msync[0]) { msg = amsg; continue; } #endif if (*msg == '\n') break; ... -- UNIX is an AT&T Bell Laboratories trademark. -- ...decvax!seismo!umcp-cs!elsie!ado (301) 496-5688 (DEC, VAX and Elsie are Digital Equipment Corp. and Borden's trademarks)