-
Notifications
You must be signed in to change notification settings - Fork 85
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DQDEV support (DNS in ITS) #2073
base: master
Are you sure you want to change the base?
Conversation
with some minor touchups.
but HSTSIX implementation should go in RESOLV
since that was already implemented.
Thanks! It's not really necessary to convert to a draft but it could be nice to signal the intent. There's a small line saying "Still in progress? Convert to draft" in the right sidebar on this page. |
and use it in SUPDUP
for simplicity etc
But for now, use only the HSTSIX of NETWRK (HOSTS3) since it's faster and hard to tell if it failed.
which decides whether to use DQ: (DQXDEV) or DOMAIN: (DQDEV). Default DQ:. Support that in NAME, SUPDUP and COMSAT.
and rename DODQ to DODNS for a little less confusion.
I think it's polite to ping @cstacy and explain the DQDEV code is being hacked here. |
Reviewing the changes to NAME took me on a tour in time to see the ups and downs of ITS.
|
@@ -146,13 +175,20 @@ CVH3NA: PUSH P,B | |||
CAIL B,1000 ; If any of high 3 bits were set, | |||
JRST CVH3N3 ; it must be a HOSTS3 strange-fmt addr. | |||
JUMPN B,CVH3N2 ; If not zero, then must assume HOSTS2 fmt. | |||
;; Noone uses Arpanet anymore - but some use Chaosnet. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I WANT TO USE ARPANET!
Check out this [external guide](https://its.victor.se/wiki/dqdev) | ||
To make ITS use DNS like a modern netizen, you need to do the following: | ||
|
||
1. Compile the handler for the DOMAIN: device, which interfaces to DNS. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Explain about DQ, DQX, and DOMAIN?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, somewhere. I'm not sure where to document what really, this file seems to be "user friendly" while explaining DQ/DQXDEV and DOMAIN/DQDEV might be more low-level info?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Info can go in INFO. :-)
@@ -273,9 +281,24 @@ SUPDU1: MOVEI A,HSTPAG | |||
.VALUE | |||
MOVEI A,JCLBUF | |||
PUSHJ P,NETWRK"HSTLOOK ;GET HOST NUMBER INTO A, NETWORK NUMBER INTO TT | |||
ifn DODNS,[ | |||
;; NETWRK failed, try DNS |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why can't NETWRK"HSTLOOK do DNS under the covers?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It would make sense, except it would (under the hood) make many programs larger and more complex/slower. Consider e.g. PEEK which is in a sense a real-time program, and might need to resolve addresses quite a few times per time unit in some circumstances.
The other way around might be more reasonable: let RESOLV use NETWRK under the hood?
But it's really unsustainable to have "all these programs" do both, in a manual fashion, reproducing the same code.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see your point about size/speed considerations. I don't know what PEEK does with hostnames. Would it make sense for programs to say $$DNS==0 or 1 before .INSRTing NETWRK to control whether to use DNS or not? It seems to me HSTLOOK is the natural entry point for any program that want to look up a host name, and it might be possible to extend this API in a way to make all callers happy.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
And then again, NETWRK is not only about name/address resolution, and RESOLV is not only about name<->address but also other DNS things. Hmm.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ho hum, reading the code is a way to learn. DQDEV already uses NETWRK if asked for it (e.g. domain:HOSTS3;ch;a;no.nocrew.org rather than domain:QUERY;ch;a;no.nocrew.org), so making RESOLV first ask for HOSTS3 and then DNS data should be easy - not efficient, but easy. ;-)
/T would be ok. Or people can also just edit the file.
|
also spelling error fix
Need to develop HOSTNM replacement in resolv or telnet.
Needed after PR PDP-10#2061, where the address is read from the IMP rather than hardcoded.
I'm still working on this - there is plenty still to do - but I find it a bit convenient to have the sum of all the commits visible in a PR. (Maybe there is another way?) |
I think it's perfectly fine to have an evolving work in progress as a draft pull request. |
(plus typo fix)
Is this still in (intermittent) progress? |
It is, indeed, but as you say, intermittently. Will find the time! |
This is a cleanup of the stuff I did back in 2005, previously "documented" at http://its.victor.se/wiki/dqdev. I added support in SUPDUP, and changed the default DNS server to 1.1.1.1.
To make this work, I think the only thing you might need is
It might not be needed if your ITS has a "real" IP address (rather than a tun address). For Chaosnet support, you need a DNS server which knows about DNS.Chaosnet.NET and allows recursion (for your requests).
Before merging, it needs some more/better documentation, and perhaps some testing. (Some of the fixes in DQDEV I admit I haven't understood now - there are some odd comments, but "it seems to work".)
How do I make this a "draft" pull request, or is that not necessary?