作者:阿波
链接:http://blog.csdn.net/livelylittlefish/article/details/7277607
Content
0.序
1.侦听结构
2. ngx_add_inherited_sockets()分析
3. ngx_set_inherited_sockets()分析
4.小结
0.序
本文将着重分析初始化过程中如何处理继承的sockets。文中如无特别说明,.表示nginx-1.0.4代码目录,本文为/usr/src/nginx-1.0.4。
1.侦听结构
侦听结构较为复杂,描述如下。
file: ./src/core/ngx_connection.h
typedef struct ngx_listening_s ngx_listening_t;
struct ngx_listening_s {
ngx_socket_t fd; /* 文件描述符,即socket */
struct sockaddr *sockaddr; /* socket地址 */
socklen_t socklen; /* size of sockaddr */
size_t addr_text_max_len;
ngx_str_t addr_text;
int type;
int backlog;
int rcvbuf; /* 接收缓冲区 */
int sndbuf; /* 发送缓冲区 */
/* handler of accepted connection */
ngx_connection_handler_pt handler;
void *servers; /* array of ngx_http_in_addr_t, for example */
ngx_log_t log;
ngx_log_t *logp;
size_t pool_size;
/* should be here because of the AcceptEx()