$! COPYRIGHT (C) 2017, 2019 OLEG SAFIULLIN $! $! PERMISSION TO USE, COPY, MODIFY, AND DISTRIBUTE THIS SOFTWARE FOR ANY $! PURPOSE WITH OR WITHOUT FEE IS HEREBY GRANTED, PROVIDED THAT THE ABOVE $! COPYRIGHT NOTICE AND THIS PERMISSION NOTICE APPEAR IN ALL COPIES. $! $! THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES $! WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF $! MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR $! ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES $! WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN $! ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF $! OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. $ $ _IF P2 .EQS. "" THEN _WRITE 0 "Usage: @NODES ADDR NAME [LOG]" $ _IF P2 .EQS. "" THEN _EXIT 2 $ $ _ON ERROR THEN _EXIT $STATUS $ _NCP CLEAR KNOWN NODES ALL $ _NCP PURGE KNOWN NODES ALL $ _NCP SET NODE 'P1' NAME 'P2' $ _NCP DEF NODE 'P1' NAME 'P2' $ $ PID = F$STRING(F$JOB) $ _IF F$LENGTH(PID) .EQ. 1 THEN PID = "0" + PID $ $ _ON CONTROL_C THEN _GOTO DONE $ _ON ERROR THEN _GOTO DONE $ $ _OPEN/LOG_FILE/REPLACE NODE'PID'.TMP $ _NCP TELL 'P2' SHOW KNOWN NODES $ _CLOSE/LOG_FILE $ $ _OPEN/READ 1 NODE'PID'.TMP $ LOOP: $ _READ/END_OF_FILE=DONE 1 LINE $ _IF F$INSTR(1, LINE, "Remote Node = ") .EQ. 0 THEN _GOTO LOOP $ POS = F$INSTR(15, LINE, " ") $ _IF POS .EQ. 0 THEN _GOTO LOOP $ ADR = F$MID(LINE, 15, POS - 15) $ NAM = F$MID(LINE, POS + 2, F$LENGTH(LINE) - POS - 2) $ _IF NAM + "::" .EQS. F$NODE THEN _GOTO LOOP $ _IF P3 .EQS. "LOG" THEN _WRITE 0 ADR + F$CHR(9) + NAM $ _NCP SET NODE 'ADR' NAME 'NAM' $ _NCP DEF NODE 'ADR' NAME 'NAM' $ _GOTO LOOP $ $ DONE: $ _CLOSE 1 $ _CLOSE/LOG_FILE $ _DELETE/NOLOG/NOWARNING NODE'PID'.TMP