comparison src/mail/ngx_mail.c @ 1487:f69493e8faab

ngx_mail_pop3_module, ngx_mail_imap_module, and ngx_mail_smtp_module
author Igor Sysoev <igor@sysoev.ru>
date Sat, 15 Sep 2007 16:51:16 +0000
parents 0d57c150115b
children cb8c0c8e0c27
comparison
equal deleted inserted replaced
1486:0e7074ef7303 1487:f69493e8faab
183 module = ngx_modules[m]->ctx; 183 module = ngx_modules[m]->ctx;
184 mi = ngx_modules[m]->ctx_index; 184 mi = ngx_modules[m]->ctx_index;
185 185
186 /* init mail{} main_conf's */ 186 /* init mail{} main_conf's */
187 187
188 cf->ctx = ctx;
189
188 if (module->init_main_conf) { 190 if (module->init_main_conf) {
189 rv = module->init_main_conf(cf, ctx->main_conf[mi]); 191 rv = module->init_main_conf(cf, ctx->main_conf[mi]);
190 if (rv != NGX_CONF_OK) { 192 if (rv != NGX_CONF_OK) {
191 *cf = pcf; 193 *cf = pcf;
192 return rv; 194 return rv;
194 } 196 }
195 197
196 for (s = 0; s < cmcf->servers.nelts; s++) { 198 for (s = 0; s < cmcf->servers.nelts; s++) {
197 199
198 /* merge the server{}s' srv_conf's */ 200 /* merge the server{}s' srv_conf's */
201
202 cf->ctx = cscfp[s]->ctx;
199 203
200 if (module->merge_srv_conf) { 204 if (module->merge_srv_conf) {
201 rv = module->merge_srv_conf(cf, 205 rv = module->merge_srv_conf(cf,
202 ctx->srv_conf[mi], 206 ctx->srv_conf[mi],
203 cscfp[s]->ctx->srv_conf[mi]); 207 cscfp[s]->ctx->srv_conf[mi]);
207 } 211 }
208 } 212 }
209 } 213 }
210 } 214 }
211 215
212 /* mail{}'s cf->ctx was needed while the configuration merging */
213
214 *cf = pcf; 216 *cf = pcf;
215 217
216 218
217 if (ngx_array_init(&in_ports, cf->temp_pool, 4, 219 if (ngx_array_init(&in_ports, cf->temp_pool, 4,
218 sizeof(ngx_mail_conf_in_port_t)) 220 sizeof(ngx_mail_conf_in_port_t))