Deutsch   English   Français   Italiano  
<ve1dht$kl7$1@reader1.panix.com>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!weretis.net!feeder9.news.weretis.net!panix!.POSTED.spitfire.i.gajendra.net!not-for-mail
From: cross@spitfire.i.gajendra.net (Dan Cross)
Newsgroups: comp.os.vms
Subject: Re: Apache + mod_php performance
Date: Mon, 7 Oct 2024 19:41:49 -0000 (UTC)
Organization: PANIX Public Access Internet and UNIX, NYC
Message-ID: <ve1dht$kl7$1@reader1.panix.com>
References: <vcv0bl$39mnj$1@dont-email.me> <20241006181231.0000370b@yahoo.com> <ve13ck$1pl4l$1@dont-email.me> <ve16v4$1mvdn$1@dont-email.me>
Injection-Date: Mon, 7 Oct 2024 19:41:49 -0000 (UTC)
Injection-Info: reader1.panix.com; posting-host="spitfire.i.gajendra.net:166.84.136.80";
	logging-data="21159"; mail-complaints-to="abuse@panix.com"
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)
Originator: cross@spitfire.i.gajendra.net (Dan Cross)
Bytes: 4108
Lines: 105

In article <ve16v4$1mvdn$1@dont-email.me>,
Arne Vajhøj  <arne@vajhoej.dk> wrote:
>On 10/7/2024 12:47 PM, Mark Berryman wrote:
>> It is most definitely possible as that is precisely what the auxiliary 
>> server in TCPIP Services does.  It listens for a connection, then 
>> creates a process to handle it.  See the description of TCPIP$C_AUXS in 
>> the TCPIP Services programming documentation.
>
>SYS$COMMON:[SYSHLP.EXAMPLES.TCPIP]TCPIP$TCP_SERVER_SOCK_AUXS.C has:
>
>     /*
>      * create socket
>      */
>
>     if ( (sockfd = socket(TCPIP$C_AUXS, SOCK_STREAM, 0)) < 0 )
>    {
>    perror( "Failed to create socket" );
>    exit( EXIT_FAILURE );
>    }
>
>but the equivalent 
>SYS$COMMON:[SYSHLP.EXAMPLES.TCPIP]TCPIP$TCP_SERVER_QIO_AUXS.C
>gives some hints about what it is doing:
>
>     struct sockchar conn_sockchar;  /* connect socket char buffer     */
>...
>     $DESCRIPTOR( inet_device,    /* string descriptor with logical   */
>        "SYS$NET:"    ); /* name of internet pseudodevice    */
>...
>     /*
>      * init connection socket characteristics buffer
>      */
>
>     conn_sockchar.prot = TCPIP$C_TCP;
>     conn_sockchar.type = TCPIP$C_STREAM;
>     conn_sockchar.af   = TCPIP$C_AUXS;
>...
>     /*
>      * assign device socket
>      */
>
>     status = sys$assign( &inet_device,     /* device name      */
>           &conn_channel,     /* i/o channel       */
>           0,          /* access mode          */
>           0        /* not used             */
>              );
>
>     if ( !(status & STS$M_SUCCESS) )
>    {
>    printf( "Failed to assign i/o channel to TCPIP device\n" );
>    exit( status );
>    }
>...
>     /*
>      * create connection socket
>      */
>
>     status = sys$qiow( EFN$C_ENF,           /* event flag 
>     */
>                        conn_channel,        /* i/o channel 
>     */
>                        IO$_SETMODE,         /* i/o function code 
>     */
>                        &iosb,               /* i/o status block 
>     */
>                        0,                   /* ast service routine 
>     */
>                        0,                   /* ast parameter 
>     */
>                        &conn_sockchar,      /* p1 - socket char buffer 
>     */
>                        0,                   /* p2 
>     */
>                        0,                   /* p3 
>     */
>                        0,                   /* p4 
>     */
>                        0,                   /* p5 
>     */
>                        0                    /* p6 
>     */
>                      );
>
>     if ( status & STS$M_SUCCESS )
>         status = iosb.status;
>
>     if ( !(status & STS$M_SUCCESS) )
>         {
>         printf( "Failed to create socket\n" );
>         exit( status );
>         }
>
>But it is not clear (at least not to me) whether:
>- the original TCP/IP device was made shareable and SYS$NET just points 
>to it
>or:
>- the original TCP/IP device is connected to a new pseudodevice that
>   SYS$NET points to
>
>The first seems by far the simplest, but the comment indicate
>the second.

It is almost certainly the second.

	- Dan C.