Path: utzoo!utgpu!news-server.csri.toronto.edu!mailrus!uunet!thehulk!munroe From: munroe@thehulk.dmc.com (Dick Munroe, Doyle Munroe Consultants, Inc.) Newsgroups: comp.mail.uucp Subject: Re: Problems with DECUS UUCP and UUPC communications Message-ID: <90@thehulk.dmc.com> Date: 29 May 90 09:14:54 GMT References: <27@thehulk.dmc.com> Organization: Doyle Munroe Consultants, Inc., Hudson, MA Lines: 64 In article <27@thehulk.dmc.com>, munroe@thehulk.dmc.com (Dick Munroe, Doyle Munroe Consultants, Inc.) writes: > All implementations of UUPC send the following during the initial > g protocol handshake: > > \000\020 handshake message \000 > > While not, strictly speaking, a violation of g protocol (as I > understand it) it does give some uucico implementations a > problem, notably DECUS UUCP, which is where I ran into it. > > I plan to fix the uucico in DECUS UUCP but it was easier to fix > the UUPC implementation (because I understand it better, not due > to any flaw in DECUS UUCP). > > ... Several lines deleted ... And here, as promised, is the fix for DECUS UUCP V1.1. The attached file is used as input to the SLP editor and applied against the version of CALL.C that ships with V1.1 of DECUS UUCP. It has been tested against UUPC and the UUCP running on uunet. Use it in good health. -- Dick Munroe Internet: munroe@thehulk.dmc.com Doyle Munroe Consultants, Inc. UUCP: ...uunet!thehulk!munroe 267 Cox St. Office: (508) 568-1618 Hudson, Ma. FAX: (508) 562-1133 -------------------- cut here for SLP file -------------------- - 2 * * 0.000 Dick Munroe 28-May-90 * Fix getstring to operate properly on g protocol framed strings. - 774, 776 * Read a framed, null-terminated string for the protocol initialization * sequence. String starts with character following the first DLE (0x10) * character and goes until the next null character. - 787 while ( ((data = xgetc(10)) != EOF)) { data &= 0x7f ; /* Trim to 7 bits */ if (data == 0x10) { goto DLE_seen ; } ; /* End if */ } ; /* End while */ /* ** There was no DLE character in the data stream within the ** timeout period. This means there was no frame and, by implication, ** no string. */ DEBUG(DB_LGI, "\nTimeout in Getstring while scanning for DLE\n", 0); return FAIL; DLE_seen : - 805, 808 } DEBUG(DB_LGI, "\nTimeout in Getstring while collecting string\n", 0); /