From: Mike Rechtman [michael.rechtman@digital.com] Sent: Wednesday, December 22, 1999 1:31 AM To: Info-VAX@Mvb.Saic.Com Subject: Re: Persona services and VMS 7.2 Dan Sugalski wrote: > > Is anyone out there (besides me) using the persona services? I've got a > perl module that interfaces with it (VMS::Persona, for the curious) that > works just dandy through VMS 7.1 but, when used under 7.2 the > $persona_create call fails with an invalid argument error. Works for me... $ $ $ r persona Enter Username>system Spawning subprocess under username SYSTEM - Exit by typing LOGOUT when through... $ $ $ sho proc 22-DEC-1999 09:15:27.72 User: SYSTEM Process ID: 00000E85 Node: EDEN Process name: "SYSTEM_1" Terminal: User Identifier: [1,4] Base priority: 4 Default file spec: TSC:[RECHTMAN] Number of Kthreads: 1 $ $ $ sho sys /noproc OpenVMS V7.2 on node EDEN 22-DEC-1999 09:15:45.61 Uptime 3 00:03:34 $ $ $ lo Process SYSTEM_1 logged out at 22-DEC-1999 09:15:48.30 $ $ $ $ sho proc 22-DEC-1999 09:15:59.29 User: RECHTMAN Process ID: 00000E57 Node: EDEN Process name: "Mike_R" Terminal: FTA17: User Identifier: [SSDU,RECHTMAN] Base priority: 4 Default file spec: TSC:[RECHTMAN] Number of Kthreads: 1 Devices allocated: EDEN$FTA17: $ $ $ ty persona.mar ; .TITLE PERSONA .IDENT /V1.0/ ; ;**************************************************************************** ;* * ;* COPYRIGHT © 1997 BY * ;* MIKE RECHTMAN, ISRAEL * ;* * ;**************************************************************************** ;+ ; Be sure and LINK against the SYSTEM's symbol table and include LIB.MLB ; during assembly. ;- .LIBRARY "SYS$LIBRARY:LIB.MLB" .LINK "SYS$SYSTEM:SYS.STB" /SELECTIVE_SEARCH .PSECT DATA,RD,WRT,NOEXE,LONG ; ; First, some useful texts - ; CTRL1: .ASCID /Spawning subprocess under username !AS / BANN1: .ASCID / / BLEN1: .WORD 50. BANN2: .ASCID / - Exit by typing LOGOUT when through... / PROMP: .ASCID /Enter Username>/ CTRL2: .ASCID /Error during system call !AS, Aborting... / ERRMS: .ASCID / / ELEN2: .WORD 50. ROUT1: .ASCID /GET_FOREIGN/ ROUT2: .ASCID /PERSONA_CREATE/ ROUT3: .ASCID /PERSONA_ASSUME (1)/ ROUT4: .ASCID /SPAWN/ ROUT5: .ASCID /PERSONA_ASSUME (2)/ M_DESC: .ADDRESS ROUT1 ; Pointer to current routine name ; ; Save some space for the username - ; P_DESC: .ASCID / / ; Space to save who we want to become ; _MUST_ be valid username U_DESC: .ADDRESS P_DESC ; ; These two LONGS hold the PERSONA data ; PERS: .LONG 0 ; Who we want to be ME: .LONG 1 ; Who we are now .PSECT CODE,RD,NOWRT,EXE,BYTE .ENTRY PERSONA,^M<> 10$: ; MOVAB ROUT1,M_DESC ; Done at initialization PUSHAL PROMP PUSHAL P_DESC CALLS #2,G^LIB$GET_FOREIGN ; Get required username BLBS R0,20$ ; of not OK, then BRW 100$ ; jump to error - message 20$: MOVAB ROUT2,M_DESC $PERSONA_CREATE_S PERSONA=PERS,- USRNAM=P_DESC ; Setup to change BLBS R0,30$ BRW 100$ 30$: MOVAB ROUT3,M_DESC $PERSONA_ASSUME_S PERSONA=PERS,- FLAGS=#7 ; Change username BLBS R0,40$ BRW 100$ 40$: $FAO_S CTRSTR=CTRL1,- OUTBUF=BANN1,- OUTLEN=BLEN1,- P1=U_DESC PUSHAB BANN1 ; Print msg CALLS #1,G^LIB$PUT_OUTPUT ; ... PUSHAB BANN2 ; Print another msg CALLS #1,G^LIB$PUT_OUTPUT ; ... 50$: MOVAB ROUT4,M_DESC CALLS #0,G^LIB$SPAWN ; Create a sub-process BLBS R0,60$ BRW 100$ 60$: MOVAB ROUT5,M_DESC $PERSONA_ASSUME_S PERSONA=ME,- FLAGS=#7 ; Revert to being ourselves 99$: $EXIT_S R0 100$: PUSHL R0 $FAO_S CTRSTR=CTRL2,- ; Format routine - name OUTBUF=ERRMS,- OUTLEN=ELEN2,- P1=M_DESC PUSHAB ERRMS ; Say there was an error CALLS #1,G^LIB$PUT_OUTPUT ; ... POPL R0 ; get saved status $EXIT_S R0 .END PERSONA $ ---------------------------------------------------------------------------- Usual disclaimers apply. All opinions are mine alone - perhaps not even that Mike Rechtman *rechtman@gezernet.co.il* Kibbutz Tzor'a. Voice (home): 972-2-9908337 PSI%42512001121300::Mike "20% of a job takes 80% of the time, the rest takes another 80%" ----------------------------------------------------------------------------