.TITLE SETPAS - REMOTE SET PASSWORD UTILITY ;************************************************************************ ; ; SETPAS - REMOTE SET PASSWORD UTILITY ; ; NETPAS RUNNING AT A REMOTE NODE COPIES XXXSETPAS.COM INTO LOCAL ; DIRECTORY TO RUN THIS IMAGE. AFTER WE GET STARTED NETPAS ; SENDS US THE OLD AND NEW PASSWORDS WITH THEIR BYTE COUNTS. ; WE THEN BUILD 2 DESCRIPTORS AND EXECUTE THE DCL COMMANDS ; TO SET THE PASSWORD. ; ; AFTERWARD, WE DELETE THE COMMAND FILE WHICH STARTED US. ; ;************************************************************************ RECVBUFMAX = 256 SETPASS: .ASCID /$SET PASSWORD/ STOP: .ASCID /$STOP 'F$PROCESS()'/ DELETE: .ASCID /$DELETE XXXSETPAS.COM;*/ PURGE: .ASCID /$PURGE XXXSETPAS.LOG/ LOGNAM: .ASCID /SYS$NET/ OLDPAS: .LONG 0 ; DESCRIPTOR FOR OLD PASSWORD .LONG RECVBUF+1 NEWPAS: .LONG 0 ; DESCRIPTOR FOR NEW PASSWORD .LONG RECVBUF+1 RECVBUF: .BLKB RECVBUFMAX NETCHAN: .BLKW 1 ; NETWORK CHANNEL IOST: .BLKQ 1 ; I/O STATUS .ENTRY SETPAS,^M ; COMPLETE REQUEST FOR LOGICAL LINK $ASSIGN_S DEVNAM=LOGNAM,CHAN=NETCHAN BLBS R0,10$ RET 10$: ; RECEIVE MESSAGE FROM SOURCE TASK $QIOW_S CHAN=NETCHAN,- FUNC=#IO$_READVBLK,- IOSB=IOST,- P1=RECVBUF,- P2=#RECVBUFMAX BLBS R0,20$ RET 20$: ; SET UP DESCRIPTORS FOR NEW AND OLD PASSWORDS MOVZBL RECVBUF,R2 ; FIRST BYTE IS BYTE COUNT OF OLD PASSWORD MOVL R2,OLDPAS INCL R2 ADDL2 R2,NEWPAS+4 ; CALCULATE OFFSET TO NEW PASSWORD IN RECEIVE BUF MOVZBL RECVBUF[R2],NEWPAS ; PICK UP NEW PASSWORD BYTE COUNT ; DO DCL COMMANDS TO SET PASSWORD PUSHAL STOP PUSHAL PURGE PUSHAL DELETE PUSHAL NEWPAS PUSHAL NEWPAS PUSHAL OLDPAS PUSHAL SETPASS CALLS #7,G^LIB$EXECUTE_CLI ; ABORT LOGICAL LINK $DASSGN_S CHAN=NETCHAN RET .END SETPAS