@@ -2296,6 +2296,8 @@ INIT10: CALL SCOPN ; Initialize SC statistics channel.
2296
2296
CALL MGCFIX ; Fix whatever.
2297
2297
SETOM GCQFLG ; Garbage collect the queues when convenient
2298
2298
2299
+ CALL MYGTWS ;Set up gateways etc
2300
+
2299
2301
; Must initialize Schedule List. This implies setting up
2300
2302
; initial requests for any reminders or network sites which
2301
2303
; are queued.
@@ -2307,6 +2309,73 @@ INIT10: CALL SCOPN ; Initialize SC statistics channel.
2307
2309
; sleep...
2308
2310
JRST WAKEUP
2309
2311
2312
+ ;; Set up BUGHST, TCPGAT, DOMGAT and GATHST from entries in NAMES.
2313
+ ;; Get each special name, and update the corresponding setting if found.
2314
+ MYGTWS: PUSH P,EQVTIB ; Save time of EQV file last loaded
2315
+ CALL EQVCHK ; Update EQV if needed
2316
+ POP P,A
2317
+ CAME A,EQVTIB ; Same EQV time? Then do the update
2318
+ RET ; If different, EQVCHK already called MYGTW0
2319
+ ; Call here from EQVCHK if EQV was updated.
2320
+ MYGTW0: MOVE A,[ASCNT [*COMSAT-BUGHOST]]
2321
+ CALL MYGTW
2322
+ MOVEM A,BUGHST
2323
+ MOVE A,[ASCNT [*COMSAT-TCP-GATEWAY]]
2324
+ CALL MYGTW
2325
+ MOVEM A,TCPGAT
2326
+ MOVE A,[ASCNT [*COMSAT-DOMAIN-GATEWAY]]
2327
+ CALL MYGTW
2328
+ MOVEM A,TCPGAT
2329
+ MOVE A,[ASCNT [*COMSAT-GATEWAY-HOST]]
2330
+ CALL MYGTW
2331
+ MOVEM B,GATHST
2332
+ MOVE A,[ASCNT [*COMSAT-HEADER-GATEWAY]]
2333
+ CALL MYGTW
2334
+ MOVEM A,HDRGAT
2335
+ ;; Special hackery for header gw
2336
+ SKIPN B,HDRGAT
2337
+ RET
2338
+ MOVE A,[440700,,GATNAM] ; Is there, get its name for header munging
2339
+ CALL RESOLV"HSTSRC
2340
+ JSR AUTPSY ; Better find it if are using it!
2341
+ RET
2342
+
2343
+ ;; Call with ASCNT in A. Returns +1 with address in A, or +2 if no match found.
2344
+ MYGTW: PUSHAE [B,C,D]
2345
+ MOVE D,A ;Save arg
2346
+ MOVE B,[ASCNT [*MSG]]
2347
+ CALL RCPEQV ;Get LP in A
2348
+ JRST [ SKIPE DEBUG
2349
+ PSTAT (,("No "),TC(D),(" found"))
2350
+ JRST MYGTWZ ]
2351
+ SKIPE DEBUG
2352
+ PSTAT (,("Found "),TC(D))
2353
+ PUSH P,L ;Save LSE
2354
+ MOVE L,$ARLOC+EQVAR ;Make it current LSE
2355
+ FINDA B,[A$RNAM,,[LISTAR(A)+1]] ; Get name
2356
+ SETZ B,
2357
+ FINDA C,[A$RHST,,[LISTAR(A)+1]] ; Get host
2358
+ TDZA C,C ; none
2359
+ MOVE C,LISTAR(C)+1 ; get its address
2360
+ SKIPN C
2361
+ JRST [ PSTAT (,("Warning: "),TC(D),(" defined but no host part given, or unknown host"))
2362
+ POP P,L
2363
+ JRST MYGTWZ ]
2364
+ SKIPN B
2365
+ JRST MYGTW2
2366
+ HLRZ B,LISTAR(B)+1 ;get name part length
2367
+ SKIPE B
2368
+ PSTAT (,("Note: Only host part needed for "),TC(d))
2369
+ MYGTW2: SKIPE DEBUG
2370
+ PSTAT (,TC(D),(" name len "),DEC(B),(" host "),HST(C),(" = "),OCT(C))
2371
+ MYGTW9: MOVE A,C ;Return its address
2372
+ POP P,L ;Restore LSE
2373
+ POPAE [D,C,B] ;and some acs
2374
+ RET ;and return +1
2375
+ MYGTWZ: POPAE [D,C,B] ;Restore some acs
2376
+ SETZ A, ;No address to return
2377
+ JRST POPJ1 ; and return +2 (not found)
2378
+
2310
2379
SUBTTL INIT - Time checking
2311
2380
2312
2381
;;; The following performs follow-up checking on system time, after
@@ -2438,7 +2507,7 @@ HN$ML==:<HNCHA 3133>
2438
2507
HN$LCS==:<HNCHA 15044> ; LCS.MIT.EDU mail relay machine
2439
2508
2440
2509
; Magic address to drop into TCPGAT if we're a chaos-only machine.
2441
- GATHST: HN$LCS
2510
+ LVAR GATHST: HN$LCS
2442
2511
2443
2512
; MTMHNG - Time Hanger... called immediately after determining that system
2444
2513
; doesn't know time. If running under DDT, will .VALUE appropriate
@@ -3000,6 +3069,7 @@ EQVCH3: CALL EQVGOB ; Attempt compile
3000
3069
STAT (,("Note: Backup failed... dying."))
3001
3070
JSR AUTPSY ; Refuse to run without beloved EQV file!
3002
3071
EQVCH7: STAT (,("Note: EQV file compiled."))
3072
+ CALL MYGTW0 ; Update gateways and BUGHST is case of changes.
3003
3073
EQVCH9: POPAE P,[B,A]
3004
3074
.CLOSE DKIC,
3005
3075
RET
@@ -3025,19 +3095,34 @@ EQVCH5: .IOPUSH DKIC, ; Save channel.
3025
3095
3026
3096
;;; EQVBIN/EQVGET - Slurp binary up into core.
3027
3097
3098
+ LVAR EQVTIB: 0 ;has creation date of last binary file loaded
3099
+
3028
3100
EQVBIN: PUSH P,A
3029
3101
MOVE A,[EQVAR,,EQVFN1]
3030
3102
CALL DFGET ; Get compiled EQV data file.
3031
3103
JRST POPAJ ; Not there?
3104
+ CALL EQVGTB ; Keep track of creation date
3032
3105
JRST POPAJ1
3033
3106
3034
3107
EQVGET: PUSH P,A ; Same but no erret provision
3035
3108
MOVE A,[EQVAR,,EQVFN1]
3036
3109
CALL DFGET
3037
3110
JSR AUTPSY
3111
+ CALL EQVGTB ; Keep track of creation date
3038
3112
POP P,A
3039
3113
RET
3040
3114
3115
+ ;; Get creation date
3116
+ EQVGTB: .IOPUSH DKIC,
3117
+ MOVEI A,EQVFN1
3118
+ CALL OPNMFI
3119
+ JSR AUTPSY ; Can't not be there now?
3120
+ SYSCAL RFDATE,[CIMM DKIC ? CRET A]
3121
+ JSR SYSLOS
3122
+ MOVEM A,EQVTIB ;Save it
3123
+ .IOPOP DKIC,
3124
+ RET
3125
+
3041
3126
3042
3127
SUBTTL EQVGOB - Compilation of NAMES > ascii equivalence file
3043
3128
@@ -3097,6 +3182,7 @@ EQVG95: FWRITE TMPC,[[No errors detected for file ],6F,EQAFR1,[ ],6F,EQAFR2,[
3097
3182
CALL EQRPUT
3098
3183
MOVE A,[EQVAR,,EQVFN1]
3099
3184
CALL DFPUT ;write out the LSE
3185
+ CALL EQVGTB ; Keep track of creation date
3100
3186
AOS -6(P) ;won, skip on return
3101
3187
3102
3188
EQVG99: POPAE P,[L,E,D,C,B,A] ;return
@@ -8469,7 +8555,7 @@ RXPB90: AOS -3(P)
8469
8555
RET
8470
8556
8471
8557
;; Kludge -- magic host address which can deal with BUG-RANDOM-PROGRAM
8472
- BUGHST: 0 ; If zero, use local host
8558
+ LVAR BUGHST: 0 ; If zero, use local host
8473
8559
8474
8560
SUBTTL RXPERR - send error message after expansion/header.
8475
8561
0 commit comments