ngx_http_v3_init_session function

Clima Gabriel clima.gabrielphoto at gmail.com
Wed Feb 7 13:34:42 UTC 2024


Hello Roman,
Thank you. Noted about the mailing list.


My function will be called from / inline in ngx_http_ssl_servername.
ngx_http_ssl_servername itself is registered as a SNI TSL extensions
callback like this:

#ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME

    if (SSL_CTX_set_tlsext_servername_callback(conf->ssl.ctx,
                                               ngx_http_ssl_servername)
        == 0)
    {
        ngx_log_error(NGX_LOG_WARN, cf->log, 0,
            "nginx was built with SNI support, however, now it is linked "
            "dynamically to an OpenSSL library which has no tlsext support,
"
            "therefore SNI is not available");
    }

#endif
./src/http/modules/ngx_http_ssl_module.c

Regards,
Gabriel

On Wed, Feb 7, 2024 at 11:29 AM Roman Arutyunyan <arut at nginx.com> wrote:

> Hi,
>
> On Mon, Feb 05, 2024 at 11:24:39PM +0200, Clima Gabriel wrote:
> > Hello everyone,
> >
> > (the code is probably clearer and attached below)
>
> Please note that this mailing list is not for development question.
> We have a separate list nginx-devel at nginx.org for this.
>
> > This function modifies what ngx_connection_t->data points to.
> > ngx_connection_t->data is initially *ngx_http_connection_t.
> > The *ngx_http_connection_t is assigned to
> > ngx_http_v3_session_t->http_connection
> > And the *ngx_http_v3_session_t assigned to ngx_connection_t->data.
> >
> > Result: before ngx_connection_t->data is *ngx_http_connection_t
> >                after ngx_connection_t->data is *ngx_http_v3_session_t
> >
> > My question is: what is the proper way to find out what c->data is at any
> > given time? I need to know this because I'm writing a function which uses
> > the ngx_http_connection_t to obtain the hostname of the request, and it
> may
> > be invoked before or after the ngx_http_v3_init_session.
>
> There's no way to tell what object is referenced by c->data without taking
> context into consideration.  Similarly you can't do that for HTTP/1 as
> well.
>
> You need to know what's the current connection stage to tell this.
> ngx_http_v3_init_session() is called right before initializing QUIC
> streams for
> the session.
>
> When exactly do you call your function?
>
> [..]
>
> --
> Roman Arutyunyan
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> https://mailman.nginx.org/mailman/listinfo/nginx
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20240207/f8cc4467/attachment.htm>


More information about the nginx mailing list