1
0
mirror of https://github.com/PDP-10/its.git synced 2026-01-11 23:53:12 +00:00

Make BUGHST, TCPGAT, DOMGAT, HDRGAT and GATHST be settable in NAMES.

This commit is contained in:
Björn Victor 2024-09-09 11:44:19 +02:00 committed by Lars Brinkhoff
parent ac4087ffd6
commit 85b2050c82
4 changed files with 107 additions and 7 deletions

View File

@ -372,7 +372,8 @@ $(OUT)/syshst/$(H3TEXT): build/$(H3TEXT)
$(OUT)/_mail_/$(NAMES): build/$(NAMES)
$(MKDIR) $(OUT)/_mail_
$(SED) -e 's/%MCHN%/$(MCHN)/' < $< > $@
$(SED) -e 's/%MCHN%/$(MCHN)/' \
-e 's/%GW%/$(GW)/' < $< > $@
$(KLH10):
cd tools/klh10; \

View File

@ -222,10 +222,7 @@ expect ":KILL"
respond "*" "comsat\033j"
respond "*" "\033l.mail.;comsat bin\r"
respond "*" "bughst/$ip\r"
type "domgat/$gw\r"
type "tcpgat/$gw\r"
type "debug/0\r"
respond "*" "debug/0\r"
type "xvers/0\r"
type "purify\033g"
respond ":PDUMP DSK:.MAIL.;COMSAT LAUNCH" "\r"

View File

@ -25,6 +25,22 @@
(SYS-OPERATING-TROUBLE (EQV-LIST %MCHN%-ADMIN))
(MAGIC-DRAGON-KEEPER (EQV-LIST %MCHN%-ADMIN))
; Gateways and bug host. To set a value, use (EQV-LIST @host), where
; host is a known host name, or an (octal) Chaosnet address, or
; an IP address such as 192.168.1.1. Remember the @.
; *COMSAT-TCP-GATEWAY sets TCPGAT, which is used for all non-Chaosnet mail.
(*COMSAT-TCP-GATEWAY (EQV-LIST @%GW%))
; *COMSAT-DOMAIN-GATEWAY sets DOMGAT, which is used as a relay
; for all unknown hostnames.
(*COMSAT-DOMAIN-GATEWAY (EQV-LIST @%GW%))
; *COMSAT-BUGHOST sets BUGHST: where to send BUG mail which isn't specified
; below. Default is the local host.
; *COMSAT-HEADER-GATEWAY sets HDRGAT, which is used in headers to create
; user%host@HDRGAT headers on outgoing mail through relays.
; *COMSAT-GATEWAY-HOST sets GATHST which is used to set the default
; HDRGAT, TCPGAT, and DOMGAT for Chaos-only hosts. It has no effect on
; Internet-connected hosts. It's better to set the entries above explicitly.
; Mail maintenance stuff. Do not fuck with this.
(BUG-MAIL (EQV-LIST BUG-QMAIL))
(BUG-MAILER (EQV-LIST BUG-QMAIL))

View File

@ -2296,6 +2296,8 @@ INIT10: CALL SCOPN ; Initialize SC statistics channel.
CALL MGCFIX ; Fix whatever.
SETOM GCQFLG ; Garbage collect the queues when convenient
CALL MYGTWS ;Set up gateways etc
; Must initialize Schedule List. This implies setting up
; initial requests for any reminders or network sites which
; are queued.
@ -2307,6 +2309,73 @@ INIT10: CALL SCOPN ; Initialize SC statistics channel.
; sleep...
JRST WAKEUP
;; Set up BUGHST, TCPGAT, DOMGAT and GATHST from entries in NAMES.
;; Get each special name, and update the corresponding setting if found.
MYGTWS: PUSH P,EQVTIB ; Save time of EQV file last loaded
CALL EQVCHK ; Update EQV if needed
POP P,A
CAME A,EQVTIB ; Same EQV time? Then do the update
RET ; If different, EQVCHK already called MYGTW0
; Call here from EQVCHK if EQV was updated.
MYGTW0: MOVE A,[ASCNT [*COMSAT-BUGHOST]]
CALL MYGTW
MOVEM A,BUGHST
MOVE A,[ASCNT [*COMSAT-TCP-GATEWAY]]
CALL MYGTW
MOVEM A,TCPGAT
MOVE A,[ASCNT [*COMSAT-DOMAIN-GATEWAY]]
CALL MYGTW
MOVEM A,TCPGAT
MOVE A,[ASCNT [*COMSAT-GATEWAY-HOST]]
CALL MYGTW
MOVEM B,GATHST
MOVE A,[ASCNT [*COMSAT-HEADER-GATEWAY]]
CALL MYGTW
MOVEM A,HDRGAT
;; Special hackery for header gw
SKIPN B,HDRGAT
RET
MOVE A,[440700,,GATNAM] ; Is there, get its name for header munging
CALL RESOLV"HSTSRC
JSR AUTPSY ; Better find it if are using it!
RET
;; Call with ASCNT in A. Returns +1 with address in A, or +2 if no match found.
MYGTW: PUSHAE [B,C,D]
MOVE D,A ;Save arg
MOVE B,[ASCNT [*MSG]]
CALL RCPEQV ;Get LP in A
JRST [ SKIPE DEBUG
PSTAT (,("No "),TC(D),(" found"))
JRST MYGTWZ ]
SKIPE DEBUG
PSTAT (,("Found "),TC(D))
PUSH P,L ;Save LSE
MOVE L,$ARLOC+EQVAR ;Make it current LSE
FINDA B,[A$RNAM,,[LISTAR(A)+1]] ; Get name
SETZ B,
FINDA C,[A$RHST,,[LISTAR(A)+1]] ; Get host
TDZA C,C ; none
MOVE C,LISTAR(C)+1 ; get its address
SKIPN C
JRST [ PSTAT (,("Warning: "),TC(D),(" defined but no host part given, or unknown host"))
POP P,L
JRST MYGTWZ ]
SKIPN B
JRST MYGTW2
HLRZ B,LISTAR(B)+1 ;get name part length
SKIPE B
PSTAT (,("Note: Only host part needed for "),TC(d))
MYGTW2: SKIPE DEBUG
PSTAT (,TC(D),(" name len "),DEC(B),(" host "),HST(C),(" = "),OCT(C))
MYGTW9: MOVE A,C ;Return its address
POP P,L ;Restore LSE
POPAE [D,C,B] ;and some acs
RET ;and return +1
MYGTWZ: POPAE [D,C,B] ;Restore some acs
SETZ A, ;No address to return
JRST POPJ1 ; and return +2 (not found)
SUBTTL INIT - Time checking
;;; The following performs follow-up checking on system time, after
@ -2438,7 +2507,7 @@ HN$ML==:<HNCHA 3133>
HN$LCS==:<HNCHA 15044> ; LCS.MIT.EDU mail relay machine
; Magic address to drop into TCPGAT if we're a chaos-only machine.
GATHST: HN$LCS
LVAR GATHST: HN$LCS
; MTMHNG - Time Hanger... called immediately after determining that system
; doesn't know time. If running under DDT, will .VALUE appropriate
@ -3000,6 +3069,7 @@ EQVCH3: CALL EQVGOB ; Attempt compile
STAT (,("Note: Backup failed... dying."))
JSR AUTPSY ; Refuse to run without beloved EQV file!
EQVCH7: STAT (,("Note: EQV file compiled."))
CALL MYGTW0 ; Update gateways and BUGHST is case of changes.
EQVCH9: POPAE P,[B,A]
.CLOSE DKIC,
RET
@ -3025,19 +3095,34 @@ EQVCH5: .IOPUSH DKIC, ; Save channel.
;;; EQVBIN/EQVGET - Slurp binary up into core.
LVAR EQVTIB: 0 ;has creation date of last binary file loaded
EQVBIN: PUSH P,A
MOVE A,[EQVAR,,EQVFN1]
CALL DFGET ; Get compiled EQV data file.
JRST POPAJ ; Not there?
CALL EQVGTB ; Keep track of creation date
JRST POPAJ1
EQVGET: PUSH P,A ; Same but no erret provision
MOVE A,[EQVAR,,EQVFN1]
CALL DFGET
JSR AUTPSY
CALL EQVGTB ; Keep track of creation date
POP P,A
RET
;; Get creation date
EQVGTB: .IOPUSH DKIC,
MOVEI A,EQVFN1
CALL OPNMFI
JSR AUTPSY ; Can't not be there now?
SYSCAL RFDATE,[CIMM DKIC ? CRET A]
JSR SYSLOS
MOVEM A,EQVTIB ;Save it
.IOPOP DKIC,
RET
SUBTTL EQVGOB - Compilation of NAMES > ascii equivalence file
@ -3097,6 +3182,7 @@ EQVG95: FWRITE TMPC,[[No errors detected for file ],6F,EQAFR1,[ ],6F,EQAFR2,[
CALL EQRPUT
MOVE A,[EQVAR,,EQVFN1]
CALL DFPUT ;write out the LSE
CALL EQVGTB ; Keep track of creation date
AOS -6(P) ;won, skip on return
EQVG99: POPAE P,[L,E,D,C,B,A] ;return
@ -8469,7 +8555,7 @@ RXPB90: AOS -3(P)
RET
;; Kludge -- magic host address which can deal with BUG-RANDOM-PROGRAM
BUGHST: 0 ; If zero, use local host
LVAR BUGHST: 0 ; If zero, use local host
SUBTTL RXPERR - send error message after expansion/header.