A couple of quick ones again then. :-)
On 2026-01-12 07:56, Terri Kennedy wrote:
On 2026-01-11 23:17, Johnny Billquist wrote:
Just a few comments, as I really should try to
get some sleep... :-)
I know the feeling...
I changed the RSTS/E finger to no longer send /IAM, which
helped.
Well. That should just create some message about something not
understood. I might not be parsing things good enough on the RSX side,
which I might need to improve. But anyway...
But a subsequent change to remove "FINGER
" from the command sent to
either a remote host or a local host breaks a great many things, both
in RSTS/E Finger (both fingering local users and remote node:: stuff)
as well as breaking VMS Finger in the same way you say - getting a bunch
of "oops" for qualifiers you didn't specify.
This appears to be a DECnet-only thing, as VMS finger does not pre-
fix the command lines it sends to TCP/IP hosts with "FINGER ".
Ok. So confirmed an unfortunate difference in the request format here.
2BSD finger doesn't send "finger "
either, but when I say "finger
terry@server", a tcpdump on server shows that the expected command
line end isn't there (got a hex C9 instead):
No. 2.11BSD is in fact sending the same thing as any other finger client
you've seen. The c9 is not even sent. Just something you "think" is there.
01:29:18.31 spc11e.glaver.org.1028 >
server.glaver.org.finger: P 1:6(5)
ack 1 win 4096
4500 002d b258 0000 4006 e834 cc8d 23e4 E..-.X..@..4..#.
cc8d 233f 0404 004f 0206 3502 cbef b2dd ..#?...O..5.....
5018 1000 a588 0000 7465 7272 79c9 P.......terry.
Note that the length of the data is actually 5 bytes. Ie. "terry". The
c9 after is just some cruft hanging around because of the minimum length
of a packet on ethernet, but is not actually a part of the actual tcp
data sent.
And if you check more, you'll see that 2.11BSD then sends another
packet, which contains just the CR+LF. Which completes the request line.
FreeBSD doesn't send "finger " either,
but does correctly terminate
the command line with CR/LF:
All TCP/IP finger clients/servers are doing this right. You just have to
remember that TCP does really do a stream of bytes. Where things might
be chopped up between underlying IP packets don't matter.
So the "must prefix with 'FINGER
'" business seems to be a DECnet-
only thing. The RSTS/E version must have inherited it from DECUS
Finger, which looks like it was doing it long before I took over
the maintainership of the DECUS VMS Finger project. The reason why
is probably lost to history.
Seems that DECnet fingers of old did that, yeah.
I just checked the old finger client/server from DECUS for RSX, and it
also did that. I hadn't checked that detail before.
Much more investigation is needed, as I assume
nobody else wants to
modify their DECnet Finger implementation to make my life easier. 8-}
It would be an option, but I would prefer to have a consistent format
and semantics across different protocols, and not start adding/removing
that extra string and possibly also consider other differences in
behavior based on transport.
How many more Finger implementations that handle
DECnet are outthere?
I know of my VMS Finger and RSTS/E Finger, Johnny's RSX Finger and the
TOPS-20 one (ones?) Any others? I'm curious where the "send 'FINGER
'"
in the command came from. I wonder if it has something to do with VMS
and its oddball ideas about generic DECnet objects.
Like I said - there is a DECUS implementation in FORTRAN for RSX. Seems
to be doing things the same way you are, from a cursory glance.
But in most ways that implementation is much less capable than the one
I've written.
Anyway, so long and thanks for all the fish -
I'll report back once
I have at least a conforming RSTS/E implementation. VMS may take longer.
Have fun. :-)
Johnny
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: bqt(a)softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol