ngx_http_v3_init_session function

Clima Gabriel clima.gabrielphoto at gmail.com
Wed Feb 14 16:26:17 UTC 2024


Thanks you

On Fri, Feb 9, 2024 at 1:58 PM Roman Arutyunyan <arut at nginx.com> wrote:

> Hi Gabriel,
>
> On Wed, Feb 07, 2024 at 03:34:42PM +0200, Clima Gabriel wrote:
> > 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
>
> As you see in ngx_http_ssl_servername() code, it already assumes that
> c->data
> references a ngx_http_connection_t object, so can you.
>
> > 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
> > >
>
> > _______________________________________________
> > nginx mailing list
> > nginx at nginx.org
> > https://mailman.nginx.org/mailman/listinfo/nginx
>
>
> --
> 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/20240214/17c70d82/attachment.htm>


More information about the nginx mailing list