DNS resolver for LMI Lambda and TI Explorer Lisp Machines
The implementation can be downloaded as a tape file for the LambdaDelta emulator. See here for a possibly newer version. If you want it in other formats, ask me (firstname.lastname@example.org).
The Lambda portion of the -READ-ME-.TEXT file can be found below.
Quick introduction to the Domain Name System and Stub Resolver for the TI Explorer and LMI Lambda
initially written 1988-1989 for the TI Explorer,
ported to the LMI Lambda in 2017.
After copying the tape to disk, copy DNS.TRANSLATIONS, DNS.SYSTEM and STUB-RESOLVER.SYSTEM to your SYS:SITE; directory. Then you may want to modify DNS.TRANSLATIONS depending on where you store the code.
Then load the code by (MAKE-SYSTEM :DNS) and (MAKE-SYSTEM :STUB-RESOLVER).
Notes for LMI Lambda:
The implementation works by setting the variable SI:UNKNOWN-HOST-FUNCTION to one which tries finding unknown hosts (which are not found in the host table) in the DNS, and also adds a corresponding variable SI:UNKNOWN-ADDRESS-FUNCTION and sets it to use the DNS also in this case.
Hosts found in the DNS are defined at runtime, and data is periodically refreshed. There is no purging of hosts no longer known (except at boot) since that might complicate pathname objects etc.
The following site options are used to configure the system.
- This should be a list of IP addresses to servers that support recursive queries. These are typically your local ISPs DNS servers.
- This should be a list of domain names to search in, for unqualified names (without dots in them). For example it could be (“Victor.se” “Update.UU.SE”), with the effect that if only “psilo” is given as a host name, first “psilo.Victor.se” and then “psilo.Update.UU.SE” are tried. The domain “aosnet.CH” might be interesting to add. (NOTE that this is different from the :LOCAL-INTERNET-DOMAINS option, which also has the effect of removing the domain from the host name.)
- This should be T if you are using DNS for Chaosnet data as well as Internet data. If you set this, you should most likely also set the following option.
- This should be a list of IP addresses of DNS servers supporting recursive queries and having Chaosnet data. This is extremely rare, but if you have such a server… or use 184.108.40.206.
Tuning parameters (see the variable doc or the code):
- in case you want to disable it
- since HINFO records are not always there
- how often to try to refresh DNS data
Possibly user-friendly/useful functions:
- This function shows info about the hosts found through DNS, and their expiry time (i.e. when they should be refreshed).
- Shows info about negative caches and what's in them.
- Does that.
Please let me know if you use the system(s) and if you find it useful, useless, or if you need new features.
– Bjorn Victor (email@example.com), August 2017.