mirror of
https://github.com/PDP-10/its.git
synced 2026-03-05 19:09:21 +00:00
Shutdown server.
This commit is contained in:
4
build/mchn/TT/custom.tcl
Normal file
4
build/mchn/TT/custom.tcl
Normal file
@@ -0,0 +1,4 @@
|
||||
#Enable the remote shutdown service.
|
||||
respond "*" ":midas /t device;chaos shutdo_sysnet;shutsr\r"
|
||||
respond "end input with ^C" "ALLOW==3036\r\003"
|
||||
expect ":KILL"
|
||||
64
src/sysnet/shutsr.35
Normal file
64
src/sysnet/shutsr.35
Normal file
@@ -0,0 +1,64 @@
|
||||
TITLE SHUTDOWN SERVER
|
||||
|
||||
;This Chaosnet node is allowed to shut down.
|
||||
IFNDEF ALLOW,ALLOW==177001
|
||||
|
||||
A==1
|
||||
P==17
|
||||
|
||||
CHI=0
|
||||
CHO=1
|
||||
|
||||
.INSRT SYSTEM;CHSDEF
|
||||
|
||||
GO: .CLOSE 1,
|
||||
|
||||
.SUSET [.SJNAME,,['SHUTDN]]
|
||||
|
||||
;Open Chaosnet channel and listen for SHUTDN connections.
|
||||
.CALL [SETZ ? 'CHAOSO ? MOVEI CHI ? MOVEI CHO ? SETZI 5]
|
||||
.LOSE %LSSYS
|
||||
.CALL [SETZ ? 'PKTIOT ? MOVEI CHO ? SETZI LSN]
|
||||
.LOSE %LSSYS
|
||||
|
||||
;Wait for an RFC.
|
||||
MOVEI A,60.*60.
|
||||
.CALL [SETZ ? 'NETBLK ? MOVEI CHI ? MOVEI %CSLSN ? A ? SETZM A]
|
||||
.LOSE %LSSYS
|
||||
CAIE A,%CSRFC
|
||||
.LOGOUT 1,
|
||||
|
||||
;Receive the RFC packet and send an ANS response.
|
||||
.CALL [SETZ ? 'PKTIOT ? MOVEI CHI ? SETZI PACKET]
|
||||
.LOSE %LSSYS
|
||||
.CALL [SETZ ? 'PKTIOT ? MOVEI CHO ? SETZI ANS]
|
||||
.LOSE %LSSYS
|
||||
|
||||
;Check the source address.
|
||||
LDB A,[$CPKSA PACKET]
|
||||
CAME A,[ALLOW]
|
||||
.LOGOUT 1,
|
||||
|
||||
;Patch ITS to remove the lower bound on shutdown time.
|
||||
MOVE A,[SQUOZE 0,ASHUTD]
|
||||
.EVAL A,
|
||||
.LOSE %LSSYS
|
||||
ADDI A,3
|
||||
HRLI A,[CAIA]
|
||||
.SETLOC A,
|
||||
MOVEI A,30.
|
||||
.SLEEP A,
|
||||
|
||||
;Shut down quickly.
|
||||
MOVEI A,30.
|
||||
.SHUTDN A,
|
||||
.LOSE %LSSYS
|
||||
.LOGOUT 1,
|
||||
|
||||
LSN: .BYTE 8 ? %COLSN ? 0 ? 0 ? 8 ? .BYTE
|
||||
LOC LSN+%CPKDT
|
||||
.BYTE 8 ? "S ? "H ? "U ? "T ? "D ? "O ? "W ? "N ? .BYTE
|
||||
ANS: .BYTE 8 ? %COANS ? .BYTE
|
||||
PACKET: BLOCK %CPMXW
|
||||
|
||||
END GO
|
||||
Reference in New Issue
Block a user