Path: utzoo!utgpu!utstat!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!ucbvax!ucsd!sdcsvax!trantor.harris-atd.com!trantor!mwills From: mwills@x102a.harris-atd.com (wills ms 01309) Newsgroups: comp.sys.amiga Subject: Re: DNet on Sys V? Message-ID: Date: 10 Mar 89 17:55:52 GMT References: <572@ivucsb.UUCP> Sender: news@trantor.harris-atd.com Organization: Harris Gov't Aerospace Systems Division Lines: 41 In-reply-to: dan@ivucsb.UUCP's message of 7 Mar 89 07:51:06 GMT Posting-Front-End: GNU Emacs 18.47.1 of Thu Oct 15 1987 on x102a (hcx/ux) Not to get your hopes up, but... I finally got DNET up on our SYS V (+ Berkley extensions) system. We have several Harris HCX-9's running HCX/UX 3.0 with support for Berkley IPC (inter-process communication, aka sockets). After delving into the code and exchanging several email notes with Matt, I found that mine is a problem in my SYS V C-Compiler, manifested in the RS_CCHK (packet error checking) code on the UNIX side. The RS_CCHK problem is as follows: In the dnet/unix/dnet/control.c do_rnet() function, the code (ubyte)(((SYNC<<1)^dctl)) evaluates to a 9 bit quantity which (obviously) fails on conparison with the 8-bit check byte sent along in the incoming packet. (I get a leading "1" on each computation. e.g. 0x1fb instead of 0x0fb) The result is that I got RS_CCHK failures on all incoming packets! I changed the occurance of the above to (ubyte)(((SYNC<<1)^dctl) & 0xff) and it started working! Apparently the ubyte type cast should truncate to 8 bits, but the bit-wise "and" above accomplishes the same effect. Grep reveils many more places where this operation is used and I've only changed one. The protocol did "hang" at one point. I had about 3 fterms, and a loadav running and I tried a "putfiles". Then all windows hung (ceased activity) and I had to reset dnet. This may be attributable to instances requiring this fix. While this is not really a problem with the code, Matt has consented to change all instances of the above appropriately. (Thanks, Matt!!! |-) Suppression of handshaking is accomplished with RAW mode (see tty(4)) on the UNIX side, but the Amiga preferences must have handshaking turned off (XOFF/DTR/NONE -> NONE under WB 1.2) if DC1 and DC3 (XON/XOFF) should not be swallowed. Also you should probably also select 8 data bits, 1 stop bit, no parity. -- - Scott Wills mwills@x102a.harris-atd.com uunet!x102a!mwills