Maxim Dounin Wrote: ------------------------------------------------------- > Hello! > > On Tue, Feb 18, 2014 at 02:36:24PM -0500, atarob wrote: > > > Maxim Dounin Wrote: > > ------------------------------------------------------- > > > Hello! > > > > > > On Fri, Feb 14, 2014 at 04:39:23PM -0500, atarob wrote: > > > > > > > Creating a module, I want to read in from config desired http > header > > > fields. > > > > Then, during config still, I want to get the struct offset for > the > > > fields > > > > that have dedicated pointers in the header_in struct. It seems > that > > > when I > > > > access headers_in_hash from the main config, it is > uninitialized. I > > > can see > > > > in the code that there is > > > > > > > > ngx_http_init_headers_in_hash(ngx_conf_t *cf, > > > ngx_http_core_main_conf_t > > > > *cmcf) > > > > > > > > in ngx_http.c. It seems to be called when the main conf is being > > > generated > > > > though I am not certain yet. > > > > > > > > Where and when exactly is headers_in_hash initialized? If I > wanted > > > to read > > > > from it during ngx_http_X_merge_loc_conf(), what would I need to > do? > > > Or am > > > > I supposed to do it at some point later? > > > > > > The cmcf->headers_in_hash is expected to be initialized during > > > runtime. As of now, it will be initialized before > > > postconfiguration hooks, but I wouldn't recommend relaying on > > > this. > > > > > > I also won't recommend using cmcf->headers_in_hash in your own > > > module at all, unless you have good reasons to. It's not really a > > > > part of the API, it's an internal entity which http core uses to > > > do it's work. > > > > There is an API? I thought the only way to figure out nginx was to > read > > source? But seriously, I didn't land on any API doing a google > search. > > API != documentation
How true. It's more fun reading source anyway. What I mean was that it wasn't entirely clear to me what I should rely on as "API" and what I shouldn't because it might easily change down the road. > > > API aside, is the point of this hash not to do faster lookups for > fields > > that become needed at runtime (say from config) as opposed to > compile time? > > Otherwise, to look for N fields, I have to do N*M comparisons as I > iterate > > through the fields, right? I was trying to avoid that. Is there a > better > > way? > > The point of this hash is to do special processing of certain > headers in http core. If you want to do something similar in your > own module, you may want to create your own hash. Fair enough. And thanks for all the hard work. Ata Roboubi Posted at Nginx Forum: http://forum.nginx.org/read.php?2,247572,247756#msg-247756 _______________________________________________ nginx mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx
