Xref: utzoo comp.sources.wanted:5858 comp.protocols.misc:421 comp.protocols.tcp-ip:5808 Path: utzoo!attcan!uunet!auspex!guy From: guy@auspex.UUCP (Guy Harris) Newsgroups: comp.sources.wanted,comp.protocols.misc,comp.protocols.tcp-ip Subject: Re: 'Talk' command and protocol Keywords: Is this a standard anywhere? Message-ID: <772@auspex.UUCP> Date: 21 Dec 88 18:21:41 GMT References: <1468@cseg.uucp> Reply-To: guy@auspex.UUCP (Guy Harris) Organization: Auspex Systems, Santa Clara Lines: 83 Hoo boy, have *you* opened a can of worms.... > My main question is: Is there a standard yet for this 'talk' > protocol? Not unless you count the code.... >If so, where could I find it? In the code. >If not, then why not, Beats me. Probably either 1) they were too lazy to write it down 2) they thought it was too err, umm, *specialized* to deserve a protocol spec 3) they didn't think it was finished yet or some linear combination of the above. >and what would it take to produce one? At minimum, a copy of the 4.3BSD version - which is different from the 4.2BSD version, and even uses a different port number (518 rather than 517), and which makes at least more of an attempt to be machine-independent. At most, some more work to fix it up to be machine-independent.... >What is strange is that on each of our different types of computers, >there was a 'talk 517/udp' entry in the /etc/services file which >led me to believe that everyone knew about it. However, I could find NOTHING >that even referenced it during my search of the RFC's. "Everybody" who got a BSD source license and ported it, and "everybody" who got somebody else to do same (compute "transitive closure", if you will) knows about it. It's not an official Internet protocol, though, any more than say "rlogin" is. CCI got a BSD source license and ported it; that's why Harris has it. > My only solution at the moment seems to be to heavily hack the code to work >for both Harris and Berkeley versions..... Since you say "talk" and "517", rather than "ntalk" and "518", I assume the one on the Harris is the 4.2BSD version. The author of this version seemed not to be aware, or seemed to have forgotten, that not all machines have the same byte order as a VAX. One such machine is the HCX-7; it has the same byte order as a 68000, which is the opposite byte order to that of the VAX. This means that "talk" packets sent out by the VAX are gibberish to the HCX-7, and *vice versa*. The "ntalk" version puts the data into a standard byte order before sending it out on the wire. Unfortunately, it still sends C structures over the wire directly; fortunately, the structure *appears* to be laid out so that the alignment and padding will be the same on most C implementations where "short" is 2 bytes and "long" is 4 bytes. If you FTPed the "talk" daemon from the "AT&T-free BSD stuff" on "uunet", it's probably the 4.3BSD version. As such, it stands at least a fighting chance of, if successfully made to work on the HP and the HCX-7, working compatibly on both those machines, as well as many other machines on your network. First, check whether either the HP or the Harris have an entry of the form ntalk 518/udp in "/etc/services". If they do, they probably have the 4.3BSD version, which I suspect might work between at least some set of different machines. If not, try to make the 4.3BSD version work on them, and if you can do so, replace the native version with it. (The 4.3BSD version may depend on some 4.3BSD-isms that may not be present on the HP or the Harris; you may have to tweak the code a bit for that.) If *that* doesn't work, the stuff pushed out on the wire may, in fact, still be different; time to start digging and debugging.