avoid deep nested calls, flatten call tree

This commit is contained in:
Igor Sysoev 2009-01-31 20:34:26 +00:00
parent 8ef386e1af
commit bd5c23ee0a

View File

@ -12,6 +12,7 @@
static void ngx_mail_smtp_resolve_addr_handler(ngx_resolver_ctx_t *ctx); static void ngx_mail_smtp_resolve_addr_handler(ngx_resolver_ctx_t *ctx);
static void ngx_mail_smtp_resolve_name(ngx_event_t *rev);
static void ngx_mail_smtp_resolve_name_handler(ngx_resolver_ctx_t *ctx); static void ngx_mail_smtp_resolve_name_handler(ngx_resolver_ctx_t *ctx);
static void ngx_mail_smtp_greeting(ngx_mail_session_t *s, ngx_connection_t *c); static void ngx_mail_smtp_greeting(ngx_mail_session_t *s, ngx_connection_t *c);
static void ngx_mail_smtp_invalid_pipelining(ngx_event_t *rev); static void ngx_mail_smtp_invalid_pipelining(ngx_event_t *rev);
@ -91,9 +92,8 @@ ngx_mail_smtp_init_session(ngx_mail_session_t *s, ngx_connection_t *c)
static void static void
ngx_mail_smtp_resolve_addr_handler(ngx_resolver_ctx_t *ctx) ngx_mail_smtp_resolve_addr_handler(ngx_resolver_ctx_t *ctx)
{ {
ngx_connection_t *c; ngx_connection_t *c;
ngx_mail_session_t *s; ngx_mail_session_t *s;
ngx_mail_core_srv_conf_t *cscf;
s = ctx->data; s = ctx->data;
c = s->connection; c = s->connection;
@ -134,6 +134,23 @@ ngx_mail_smtp_resolve_addr_handler(ngx_resolver_ctx_t *ctx)
ngx_log_debug1(NGX_LOG_DEBUG_MAIL, c->log, 0, ngx_log_debug1(NGX_LOG_DEBUG_MAIL, c->log, 0,
"address resolved: %V", &s->host); "address resolved: %V", &s->host);
c->read->handler = ngx_mail_smtp_resolve_name;
ngx_post_event(c->read, &ngx_posted_events);
}
static void
ngx_mail_smtp_resolve_name(ngx_event_t *rev)
{
ngx_connection_t *c;
ngx_mail_session_t *s;
ngx_resolver_ctx_t *ctx;
ngx_mail_core_srv_conf_t *cscf;
c = rev->data;
s = c->data;
cscf = ngx_mail_get_module_srv_conf(s, ngx_mail_core_module); cscf = ngx_mail_get_module_srv_conf(s, ngx_mail_core_module);
ctx = ngx_resolve_start(cscf->resolver, NULL); ctx = ngx_resolve_start(cscf->resolver, NULL);