I think you caught it before I'd reinstalled
the .exe privileged.
There's no way I'm creating a privileged object for it.... and I don't
think the DECnet object privilege settings
work like one might expect anyway.
Incidentally, from
networking-manual/#SEC_ERROR_REPORT (2nd paragraph)
Also, 2nd to last paragraph in
openvms-decnet-networking-manual/#SEC_EXCHNG_MESSAGES
Doesn't bode well.
K
-----Original Message-----
From: Johnny Billquist [mailto:bqt@softjar.se]
Sent: 14 January 2026 21:28
To: hecnet(a)lists.dfupdate.se
Subject: [HECnet] Re: DECnet Finger Specification (Possible re-post)
and Tops-20 Finger Setup Documentation (New)
Also, FYI:
.fin dune::
[DUNE::]
OpenVMS V7.3 on node DUNE 14-JAN-2026 21:26:37.03 Uptime 31
06:59:20Nousers logged in.(end) .
Johnny
On 2026-01-14 22:25, Johnny Billquist wrote:
There must be a way to wait for the I/O to
complete before you deassign/
disconnect/close...
Johnny
On 2026-01-14 20:05, Keith Halewood wrote:
I've put a 4 second delay between the last
$QIOW and the $DASSGN.
It's not brilliant... but more/most/all gets through now.
The $DASSGN is brutal.
K
-----Original Message-----
From: Johnny Billquist [mailto:bqt@softjar.se]
Sent: 14 January 2026 17:49
To: hecnet(a)lists.dfupdate.se
Subject: [HECnet] Re: DECnet Finger Specification (Possible re-post)
and Tops-20 Finger Setup Documentation (New)
Another data point:
.set /host
Host=MIM RSX-11M-PLUS V4.6 BL87mP
.fin dune::
[DUNE::]
.
So I'm not getting anything at all. :-)
Johnny
On 14/01/2026 18.28, Keith Halewood wrote:
> I've put an explicit '(end)' line on the output from DUNE's finger
> server.
> From GUARD, a call to DUNE's finger does not show the last user's
> record or '(end)'
>
> Oh, that's interesting and confusing:
>
> GUARD is X86_64 VMS and in Australia.
> BUZZEL is X86_64 and on the same LAN as DUNE.
> Both are not showing the last two records of output from DUNE's
> fingerserver.
> I thought it might have been a VMS version issue but....
> TUPILE is VAX and on the same LAN as DUNE and is displaying even less.
> In short, it seems I only get a complete output when I'm calling DUNE
> from DUNE.
>
> Weirdness... I'll come back to this later.
>
> K
>
> -----Original Message-----
> From: Johnny Billquist [mailto:bqt@softjar.se]
> Sent: 14 January 2026 17:09
> To: hecnet(a)lists.dfupdate.se
> Subject: [HECnet] Re: DECnet Finger Specification (Possible re-post)
> and Tops-20 Finger Setup Documentation (New)
>
> Maybe I should make a few more comments.
> There might definitely be something VMS specific in your
> observations.I wouldn't know.
>
> With TCP/IP, when data is sent, it's going to be in the queue and be
> delivered even if the sending process closes, finishes and goes away.
> The end-of-file is queued into the sending stream after all the data
> that was sent.
>
> With DECnet, the underlying transport is always record oriented.
> Anything that looks like anything else is always just trying to hide
> that fact. And when you send something, you'll get an indication when
> the send is completed, at which point it shouldn't be possible for it
> not to be delivered, unless connection have completely been lost.
> With RSX not even that is possible, since a completion of a send
> means that the receiving side actually completed the receive. It's
> very synchronous.
>
> If some higher level library hides all of this, then I would expect
> italso have a way of telling if all the I/O have completed.
>
> Basically, server side accepts the connection, reads the single
> requestline, and then sends data until it is done, after which it
> closes the connection. There must be a way to know that the data is
> actually being delivered, so you don't cancel outstanding sends if
> they are done asynchronous.
>
> Johnny
>
> On 14/01/2026 18.00, Johnny Billquist wrote:
>> Hum?
>> I'm not sure I get it.
>>
>> The client does a connection to the server. Sends a single line.
>> Reads until it gets an end-of-file/connection-closed indication when
>> readind, at which point the server is already gone, and the client
>> canfinish.
>>
>> Where are you thinking/seeing that you need to wait for anything?
>>
>> Johnny
>>
>> On 14/01/2026 17.58, Keith Halewood wrote:
>>> There's a simplistic version currently running on DUNE::
>>> I've noticed a few problems with it.
>>>
>>> For transparent DECnet I/O where channels are assigned and I/O
>>> happens as though each end is local, DECnet seems to suggest that
>>> the receiver (finger client in this case) should disconnect when it
>>> has received what it expects to receive. This expectation should be
>>> part of the client/server protocol such as an explicit end of data
>>> record.
>>> In the TCP/IP world, a finger server disconnects when it's finished
>>> sending all that it wants to send. There's no explicit high level
>>> protocol stating end of data received by the client other than a
>>> receive succeeding with zero length response.
>>>
>>> Even with explicit $QIOW (waiting for I/O to complete), a DECnet
>>> finger server will $ASSIGN to the incoming connection, do a few
>>> $QIOWs and do a $DASSGN, which is quite destructive, including
>>> cancelling all pending I/O requests. You would think that a $QIOW
>>> would return when the I/O completes end to end but it seems to
>>> complete when DECnet takes over.
>>> Consequently, on slow links, a $DASSGN could cause DECnet not to
>>> transmit data that's still pending. This is currently happening ona
>>> comparatively slow link between DUNE and and a host in Australia.
>>>
>>> The non-transparent case, where a lot more of the DECnet handshaking
>>> is exposed, offers a synchronous disconnect which is initiated with
>>> a $QIOW. The server would send this and the client would then have
>>> to react as though it had received an EOF. In other words, it seems
>>> that both ends need to be non-transparent.
>>>
>>> A lot of this may be peculiar to DECnet on VMS which tries to hide
>>> much of the complexity unless you go for full non-transparency. Even
>>> then you can treat the connection as record-orientated even though
>>> it's not like that underneath, and listen for events on the attached
>>> mailbox device.
>>>
>>> I really don't feel like doing $ASSIGN, $QIOW(read), a series of
>>> $QIOW(write), then a wait for an unknown amount of time before
>>> $DASSGN.
>>> Judging by some of the behaviour I've seen with user DECnet tasks
>>> implemented by command procedures, that appears to be what VMS does
>>> sometimes.
>>>
>>> Is this what networking used to be like? Weird?
>>>
>>> K
>>>
>>> -----Original Message-----
>>> From: Johnny Billquist [mailto:bqt@softjar.se]
>>> Sent: 14 January 2026 13:42
>>> To: hecnet(a)lists.dfupdate.se
>>> Subject: [HECnet] Re: DECnet Finger Specification (Possible re-post)
>>> and Tops-20 Finger Setup Documentation (New)
>>>
>>> On 14/01/2026 14.36, Keith Halewood wrote:
>>>> Regarding finger for VMS, I have no real recollection of how we
>>>> used to gather idle time for the 'job' (collection of process
and
>>>> subprocesses attached to the terminal).
>>>> Back in the university days, some of the VMS systems had a small
>>>> fixed number of lines connected to the Gandalf (a terminal
>>>> server/switch) so we had to do something to prevent users hogging
>>>> the lines.
>>>> I think we used to enumerate allocated terminal class devices every
>>>> 10 minutes and remember their completed I/O counts. If the count
>>>> hadn't changed since the last sweep, then the user was logged out.
>>>> There may have been other considerations involving CPU time, etc.
>>>> but as I said the details are permanently paged out of my memory.I
>>>> don't think the above would be any good really for finger idle
>>>> time.
>>>
>>> I think this is one of those topics which I would just leave as
>>> implementation specific. It depends on what the OS does, and what
>>> can be easily extracted. Just present users with whatever
>>> information makes sense. THe finger protocol is meant for human
>>> consumption, so there are no hard requirements on what information
>>> is provided, or in which form.
>>>
>>> "Idle" in RSX is defined slightly different than in Unix or VMS. I
>>> can tell you that much. But I can only report what RSX thinks here.
>>> (If you were to hit enter on a terminal in RSX, you are still
>>> considered idle.
>>> No activity happened.)
>>>
>>>> I have the beginnings of a DECnet finger server for VMS in Pascal,
>>>> which will produce summary information for who's logged, when, what
>>>> they're doing and where they're doing it from and also specific
>>>> information for matched users if supplied as a parameter, including
>>>> plan and the read/unread status of their mailbox. I won't do
"poor
>>>> man's routing"
>>>> and I'm tempted to restrict the breadth of partial searches to a
>>>> complete username and/or complete word components of a user's real
>>>> name.
>>>
>>> This is also something I'd happily leave to each implementation. PMR
>>> or not - up to each implementation. Just give some sort of error if
>>> you don't allow it. Same with user matching.
>>>
>>>> It'll fit into the framework I have for a DECnet server that
>>>> declares itself as an object and remains running, handling multiple
>>>> requests... but who wants a finger server hanging around?!
>>>> I don't, so the initial version will be instantiated on incoming
>>>> request.
>>>
>>> That's how I do it in RSX, and that's how Unixes does it as well.I
>>> think it would be the most sensible way to do it.
>>>
>>>> It'll be on DUNE's default DECnet account if/when I finish it.
>>>
>>> Would be nice to see it in operation.
>>>
>>> Johnny
>>>
>>> _______________________________________________
>>> HECnet mailing list -- hecnet(a)lists.dfupdate.se To unsubscribe send
>>> an email to hecnet-leave(a)lists.dfupdate.se
>>> _______________________________________________
>>> HECnet mailing list -- hecnet(a)lists.dfupdate.se To unsubscribe send
>>> an email to hecnet-leave(a)lists.dfupdate.se
>>
>> _______________________________________________
>> HECnet mailing list -- hecnet(a)lists.dfupdate.se To unsubscribe send
>> an email to hecnet-leave(a)lists.dfupdate.se
>
> _______________________________________________
> HECnet mailing list -- hecnet(a)lists.dfupdate.se To unsubscribe sendan
> email to hecnet-leave(a)lists.dfupdate.se
> _______________________________________________
> HECnet mailing list -- hecnet(a)lists.dfupdate.se To unsubscribe sendan
> email to hecnet-leave(a)lists.dfupdate.se
_______________________________________________
HECnet mailing list -- hecnet(a)lists.dfupdate.se To unsubscribe send an
email to hecnet-leave(a)lists.dfupdate.se
_______________________________________________
HECnet mailing list -- hecnet(a)lists.dfupdate.se
To unsubscribe send an email to hecnet-leave(a)lists.dfupdate.se