13.5.2 与认证服务器建立连接

图13-6中描述了ngx_mail_auth方法所做的工作,包括初始化与认证服务器交互之前的工作、发起TCP连接等。

13.5.2 与认证服务器建立连接 - 图1

图 13-6 启动邮件认证、向认证服务器发起连接的流程

图13-6中设置了Nginx与下游客户端间TCP连接上的读事件处理方法为ngx_mail_auth_http_block_read,这个方法所做的唯一工作其实就是再次调用ngx_handle_read_event方法把读事件又添加到epoll中,这意味着它不会读取任何客户端发来的请求,但同时保持着读事件被epoll监控。在与认证服务器间TCP连接上,写事件的处理方法为ngx_mail_auth_http_write_handler,它负责把构造出的request缓冲区中的请求发送给认证服务器;读事件的处理方法为ngx_mail_auth_http_read_handler,这个方法在接收到认证服务器的响应后会调用ngx_mail_auth_http_ignore_status_line方法首先解析HTTP响应行。