[HECnet] Lynx

Johnny Billquist bqt at softjar.se
Tue Jan 29 11:02:50 PST 2013


On 2013-01-29 19:49, Paul_Koning at Dell.com wrote:

On Jan 29, 2013, at 1:44 PM, Johnny Billquist wrote:

On 2013-01-29 16:52, Paul_Koning at Dell.com wrote:

On Jan 29, 2013, at 10:43 AM, Johnny Billquist wrote:

On 2013-01-29 15:36, Brian Schenkenberger, VAXman- wrote:
Johnny Billquist <bqt at softjar.se> writes:
...
So we'd need to do some changes to the http protocol to adopt it on DECnet...

	Johnny

That should be completely trivial.   First, you assign an object number (pick a number -- 80 would be an obvious choice).   Then you send the data across a DECnet connection.   That too is easy.   Yes, DECnet sends packets, not just a dumb byte stream.   So it has structure, IF you need it.   If you don't, just pour the bytes into the packets and send them.   Ultrix does that -- its DECnet sockets have both a packet and a stream mode.   I'm not entirely sure how stream mode behaves; my guess would be that it just sticks the stream into packets whichever way is convenient.

As for the blank lines, that's not an issue.   A blank line is \r\n (or maybe just \n) but it certainly is not a null string.   So an HTTP request would live inside a packet that contains the text of the request, WITH the newline characters.

Well, I don't expect there to be much work, but it will also not be just a search and replace of a bunch of calls.
Anyway, if anyone ever want to actually do it, we can talk details.
It would be fairly straight forward to adapt my server to talk DECnet.

	Johnny

I was talking about changes needed at the protocol level.   The API level is a different question, that depends on the OS.   For example, on Ultrix and Linux it should be no harder than the protocol changes since both support DECnet sockets.   On other operating systems, the simplest port might be to fake up a "decnet socket" library, so the main program code won't see the rather different API used to talk to DECnet.   Hardest would be RSTS because it expects applications to do the NSP message segmentation and reassembly rather than doing it in the kernel as is done by most other operating systems.

I was actually talking about protocol changes as well, as if it had only been API changes, then it would have been trivial (well, as far as just changing from TCP to DECnet can ever be trivial).

Protocol wise, you could (I guess) just decide to append a CR+LF to each record sent, and then strip those off at the receiving side before processing the data. But that is a protocol change, as these would need to be explicitly added and removed inside the packets sent in DECnet. Also, I guess each packet would be a full line, although doing data merging of packets on the receiving side to get lines could also be done.
Well, actually, http already specifies the CF+LF on each record. The issue is the implicit extra information received by doing packets instead of a stream, but you could just ignore the record metadata, and look at it as a stream of bytes. It does, however, still force you to define that this is how http should be done on top of DECnet, which today is not "defined".

Like I said, I became aware of the issues when doing some MAIL-11 stuff. MAIL-11 sends each line of a mail, as well as various control information in records. It's implied that there are a newline after each record when we talk about the mail body.

The TCP interface in RSX is just a device, which makes it pretty trivial to write code that talks TCP/IP. Changing to DECnet means removing all the nice and easy PRINT and INPUT lines, and instead call explicit DECnet send and receive functions.

	Johnny



More information about the Hecnet-list mailing list