I needed to take a break from finishing up the Tops-20 DECnet/SMTP code,
so I finally looked into doing a Tops-20 finger server.Over the weekend,
I cobbled something together.For example, on TOMMYT::
FINGER>oinky@venti2 /no-plan
OINKYGuinea PigOINKY not logged in
Last logout Sun 1-Sep-2024 1:40AM from TTY6 (NRT)
No new mail, last read on Tue 12-Apr-2022 10:00PM
The finger server is multi-forking and works by creating a group of
forks, putting the finger program in each fork and changing the primary
input and output to whatever connection is being served.It is general
enough so that you could probably have it run any program with little
tinkering.
Right now, it is in debugging mode and typing a lot of diagnostic
information about the link.So, for the above attempt from the client,
the finger server console output was:
FNGSRV: Connection from TOMMYT, User: SLOGIN, Data: Tops-20_Finger
Object Type: Generic (165), Segment Size: 1459
Local Flow Control: Segment, Remote Flow Control: Segment
Link Quota: Input Percentage: 50, Buffers: 16, Input Goal: 0
As can be seen, the Tops-20 finger client has been modified to send the
name of the local user and optional data identifying the finger
client.Probably I’ll change that to the finger version.The RFC for
TCP/IP finger is (naturally) silent on what you can send over DECnet, so
this doesn’t break anything.So, I can finger myself on MIM:: just fine, viz:
FINGER>debellis@mim
[Default directory: US00:[DEBELLIS]CLI: DCLSID: TDB
Last seen Sep 16 2024 23:04:37 on RT0: from VENTI2::
Logged on 16 times.
No plan.
Unfortunately, it /doesn’t /work when I sign on to MIM:: and try the
local finger client there, viz:
$ finger -d VENTI2::OINKY
[VENTI2::]
$
So, no obvious failure, but no output, either. On VENTI2::, what I’m
seeing appears to be a successful connection and that the finger program
running in the sub-fork is opening OINKY’s finger plan and sending it
back over the link, viz:
[Fork FNGSRV opening SRV:117 for reading, writing]
FNGSRV: Connection from MIM, Task: DEBELLIS
Object Type: Generic (165), Segment Size: 558
Local Flow Control: Segment, Remote Flow Control: Message
Link Quota: Input Percentage: 50, Buffers: 16, Input Goal: 0
[Fork 2 opening TOMMYT:FINGER.BIN.5 for reading thawed]
[Fork 2 opening TOMMYT:<OINKY>FINGER.PLAN.4 for reading]
Currently, the finger server is highly instrumented, so if it detected
that something was amiss (like the finger sub-fork was flat out
croaking), it would complain about it. Or it should… Finger itself is
not so highly instrumented as I wanted to make the changes there as
small as possible.
If you have a finger client that can do DECnet connections on another
platform (I’m thinking VMS or maybe RSTS) and can try it, let me know
how you make out. Be aware that I did just hack this together in two and
a half days, so I make no claims to any sort of stability. I'm just
trying to trouble shoot at this point.
—T