ngx_http_v3_init_session function

J Carter jordanc.carter at outlook.com
Tue Feb 6 00:44:56 UTC 2024


On Tue, 6 Feb 2024 00:16:31 +0000
J Carter <jordanc.carter at outlook.com> wrote:

> Hello,
> 
> On Mon, 5 Feb 2024 23:24:39 +0200
> Clima Gabriel <clima.gabrielphoto at gmail.com> wrote:
> 
> > Hello everyone,
> > 
> > (the code is probably clearer and attached below)
> > 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
> 
> In C, a pointer to struct can be cast to a pointer to the first member
> of that struct, as there is no padding before the first member per the
> standard.
> 
> The first member of ngx_http_v3_session_t is *ngx_http_connection_t.

*Sorry typo here - first member is ngx_http_connection_t of course.
> 
> Here is the commit where this was implemented.
> 
> https://mailman.nginx.org/pipermail/nginx-devel/2023-September/BWH23FTMRUWCUZSNKXJJXEEN76ZYOK62.html
> 
> [...]


More information about the nginx mailing list