Well, if you are talking about what the system calls
might do in
TOPS-20, then I can't make any comments.
I would guess/assume that the %SOUTR would flush out any buffered data
then.
But down at the DECnet level, it's packets. DECnet don't have a
concept of a stream of bytes.
And yeah, looks correct. A file that is protected from accessing would
give you some sort of error. Someone could check the MAC and MIC code,
if they are really curious, to verify the error.
Johnny
On 2022-11-26 02:02, Thomas DeBellis wrote:
Yes, agreed.
However, I'm not sure if you and I are talking about the same level
in the network stack. I had meant to only talk about the network
stack in an implied and tangential manner.
What I was getting is that SOUTR% is used in TCP to push accumulated
data out. There is no idea of a record, it's just doing a push.
From the code that I am seeing in FAL and NFT, it appears that SOUTR%
is being used in the same way. I should have clarified that both
SOUT% and SOUTR% view the data as a stream of bytes (of varying
widths, of course). There is only a record on those media that
support it, magnetic tape as far as I remember.
I /think/ I may have fixed my most recent bug. I had put a data
transfer optimization in from some code that I wrote in Kermit-20 for
the NRT and PTY driver that I had picked up from my FTP server. It
tickles a completely understandable run condition which can not occur
in Kermit but can in DAP because Kermit is acknowledging individual
packets at the application level while DAP does not.
Well, that's what I think so far while I'm testing. One hopeful
result is that an anonymous directory listing against MIM:: works
now. Well, works /mostly/. I'm getting the error below:
NNQUERY.C;208 Remote status - File protection violation (MAC:4
MIC:125 STV:0)
.
.
.
NNQUERY.C;199 Remote status - File protection violation (MAC:4
MIC:125 STV:0)
NNQUERY.MAP;285;P775656 17 34816(8) 18-Oct-2022 09:59:35
I think this is correct, because when I logged into MIM:: and checked
further, I got:
$ *dsp DU1:[DECNET]NNQUERY.C;208*
?DSP-F-OPNINP, Error opening DU1:[DECNET]NNQUERY.C;208 as input
-RMS-E-ER$PRV, Privilege violation
I don't remember protected files like that in DU1:[DECNET], but it's
been awhile since I've tested against multiple systems (last May, in
fact)
On 11/25/22 6:47 PM, Johnny Billquist wrote:
There is, as far as I know, no equivalent to
push, since in DECnet,
connections are never handled as a stream of bytes, but as packets,
and delivery is always immediate, and the sending side is directly
informed about the receiver actually receiving the packet. It's
essentially much more synchronous than TCP/IP. DECnet don't even
necessarily buffer on the sending side. At least with RSX, transmits
goes directly from the task out on the wire. And the send is only
flagged complete when the receiving side have received it. But on
receiving side it might be in an internal buffer and not actually
delivered to the recipient task.
But I'm sure Paul remember more details.
However, one thing you do have in DECnet, which TCP/IP don't really
do well, is that you can send out of bounds, urgent data in DECnet.
Johnny
On 2022-11-26 00:05, Thomas DeBellis wrote:
In TCP, something called the 'push flag'
can be set to cause
accumulated data in the monitor (which may be one or more packets)
to be sent over the network. It is often abbreviated as "PSH".
The Tops-20 FTP client and server both set PSH on the last packet
of data from a file to send it on its way. This is done with a
SOUTR% JSYS, which stands for *S*tring *OUT* *R*ecord. This is an
overloading of the hardware record concept which is more commonly
associated with nine-track magnetic tape.
PSH can also be detected on input by doing a SINR%, which stops the
network read early, instead of waiting for a full buffer of data
(which might, in fact, never come).
I believe DECnet transport implements the same semantics, but I
would like to double check that. Where would I go in which part of
what specification? Or does anybody know?
_______________________________________________
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