<div dir="auto">Thanks,<div dir="auto"><br><div dir="auto">That means we need move some configuration commands form server to main section. We will review the logic</div><div dir="auto"><br></div><div dir="auto">Lei</div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jun 23, 2022, 01:51 Maxim Dounin <<a href="mailto:mdounin@mdounin.ru">mdounin@mdounin.ru</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello!<br>
<br>
On Mon, Jun 20, 2022 at 04:05:53PM +0800, <a href="mailto:shanlei@asiainfo.com" target="_blank" rel="noreferrer">shanlei@asiainfo.com</a> wrote:<br>
<br>
> Hello, guys,<br>
> <br>
> Recently I have been working on an nginx c module, which have to <br>
> leverage on init_process routine.The logic is based on instruction <br>
> command which may be configured inside stream.server,  I have to do some <br>
> work in the init_process routine, for example, to schedule a timer.<br>
> I did google a while ,and decide to using code snippet like below:<br>
> <br>
> ============================<br>
> <br>
> ngx_stream_conf_ctx_t conf_ctx = (ngx_stream_conf_ctx_t <br>
> *)ngx_get_conf(cycle->conf_ctx, ngx_stream_module);<br>
> <br>
> "module_spec_conf = conf_ctx->srv_conf["my_module".ctx_index];<br>
> <br>
> =============================<br>
> <br>
> <br>
> However, the module_spec_conf  I got is the top_level ,that is created <br>
> when nginx parse the stream section, not the one created when nginx <br>
> parse the stream.server section, the later has the proper values. <br>
> Currently to got the later structure, I have to copy the configure value <br>
> back from child to parent in configuration merger function, which is <br>
> inconvenient and buggy when the stream includes multi servers.<br>
> <br>
> So I wonder what's the proper way to get module specific configuration <br>
> in the routine: init_process<br>
<br>
For the purpose of the init_process callback, the most simple <br>
approach would be to use your module's main configuration.  For <br>
example, the embedded Perl module uses the init process callback <br>
to set correct PID in Perl interpreter: Perl interpreter is stored <br>
in the module's main configuration, and the init process callback <br>
uses the ngx_http_cycle_get_module_main_conf() macro to access it.  <br>
See src/http/modules/perl/ngx_http_perl_module.c for details.<br>
<br>
(Just in case, corresponding macro in the stream module is <br>
ngx_stream_cycle_get_module_main_conf().)<br>
<br>
-- <br>
Maxim Dounin<br>
<a href="http://mdounin.ru/" rel="noreferrer noreferrer" target="_blank">http://mdounin.ru/</a><br>
_______________________________________________<br>
nginx-devel mailing list -- <a href="mailto:nginx-devel@nginx.org" target="_blank" rel="noreferrer">nginx-devel@nginx.org</a><br>
To unsubscribe send an email to <a href="mailto:nginx-devel-leave@nginx.org" target="_blank" rel="noreferrer">nginx-devel-leave@nginx.org</a><br>
</blockquote></div>