[Info-vax] $CREPRC to detached process via LOGINOUT.EXE with terminal driver but without username/password prompt

Mark Daniel mark.daniel at wasd.vsm.com.au
Mon Aug 13 16:50:42 EDT 2012


On 12/08/12 8:36 PM, Stephen Hoffman wrote:
> On 2012-08-12 03:14:58 +0000, Mark Daniel said:
>
>> Title (kinda) says it all.
>>
>> This appears to be a similar requirement to the late Larry Kilgallen's
>> post way back when;
>>
>>> https://groups.google.com/forum/?fromgroups#!topic/comp.os.vms/KPnl8POnzE8%5B1-25%5D
>>>
>>
>> Is this possible?
>>
>> Using documented interfaces (and without being kernel hacker)?
>>
>> If so could someone point me in the direction?
>>
>> And then additionally provide the detail of that direction (the art of
>> pedantry being robustly practiced)?
>
> While I'd reverse this from trying to have the host initiate the telnet
> or ssh-like processing for the login and have the login trigger the
> no-password path, I'll assume that there's a reason why you're not going
> that way.
>
> For your path, SYSALF would be the (mostly documented) path I would
> experiment with; the automatic login facility (ALF).  Or yes,
> certificate-based ssh sessions.
>
> The normal trigger for a login being unsolicited input routed to the job
> controller, and I don't know of a documented API to trigger that from
> within an application.  LOGINOUT is pretty twisty and far from a modern
> design, and the terminal driver is arguably even more twisty.

Ok, think I've come up with a working solution.

Your last comment about the job controller (LOGINOUT) initiating a login 
when it receives unsolicited input got me thinking.

I had the $CREPRC() working the way I needed with PRC$M_DETACH | 
PRC$M_INTER | PRC$M_NOPASSWORD; the issue was getting I/O on the 
INPUT/OUTPUT devices via a terminal driver (I had initially been trying 
with mailboxes).

I have used the PTD interface before and assumed that PTD$CREATE() 
instantiated both the pseudo-terminal *and* associated process.  The 
comment on unsolicited input prompted me to rethink that; with 
PTD$CREATE() to create the pseudo-terminal, $GETDVI() to retrieve the 
name of the associated terminal device, and pass that to $CREPRC() as 
the INPUT/OUTPUT parameters.  Voila!  Seems so obvious in hindsight.

The PTD seems to manage the $CREPRC() associated process quite well as a 
bonus (termination AST, etc.)

Thanks for your input.



More information about the Info-vax mailing list