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

OINKY    Guinea Pig           OINKY 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: DCL     SID: 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