!PASS: Set password - modded JHB Oct 84 to use current directory/user
! GDMR 03/02/87 Verify old password for filestores B & C only (interim fix)
! GDMR 01/08/88 Send old & new passwords to non-old filestores. Note that
! the old password is in P2, which is incompatible with what
! the old-style filestores think is there (a username).
include "inc:fs.imp"
include "inc:fsutil.imp"
include "inc:util.imp"
begin ; !Pass: change password
integer on=1
integer x
string (255) old, new1, new2, user = "?1"
string (7) directory = "?2", owner = "?3"
routine logon(string (63)u,p)
string (127)s = u.",".p
integer x
x = fcomm('M'<<8,""); on = 0
x = fcomm('L'<<8,s); on = 1
end
onevent 3,9 start
printstring(event_message)
printstring(" - you have been logged off") if on=0
newline
stop
finish
if RDTE = 16_15 {B} or RDTE = 16_1B {C} or RDTE = 16_44 {M} start
! Old filestore, so potentially could change someone else's pass
user = current directory
Define Param ("User", user, pam major)
Process Parameters (cli param)
directory = current directory
owner = current user
finish
!! printstring("User "); printstring(user)
!! printstring(", owner "); printstring(owner)
!! printstring(", RDTE "); phex(RDTE); newline
set terminal mode(noecho)
x = testsymbol until testsymbol<0
if (RDTE = 16_15 {B} or RDTE = 16_1B {C} or RDTE = 16_44 {M}) start
! Old filestore
if user=owner start
prompt("Old password:"); readline(old)
logon(owner,old)
set directory(directory)
finish
else
! New filestore, always ask for old pass
prompt("Old password:"); readline(old)
finish
prompt("New password:"); readline(new1)
prompt("Confirm: "); readline(new2)
if new1#new2 start
printstring("Not confirmed"); newline; stop
finish
if (RDTE = 16_15 {B} or RDTE = 16_1B {C} or RDTE = 16_44 {M}) start
! Old style filestore, so P2 is username
new1 = new1.",".user if user#owner
else
! New-style filestore, so P2 is old password
new1 = new1 . "," . old
finish
x = fcomm('P'<<8,new1)
stop if (RDTE # 16_15 {B} and RDTE # 16_1B {C} and RDTE # 16_44 {M}) c
or user#owner
! Why does he bother with this next bit, I wonder.....?
logon(owner,new1)
set directory(directory)
endofprogram