3.2.6 ngx_chain_t数据结构
ngx_chain_t是与ngx_buf_t配合使用的链表数据结构,下面看一下它的定义:
typedef struct ngx_chain_s ngx_chain_t;
struct ngx_chain_s{
ngx_buf_t*buf;
ngx_chain_t*next;
};
buf指向当前的ngx_buf_t缓冲区,next则用来指向下一个ngx_chain_t。如果这是最后一个ngx_chain_t,则需要把next置为NULL。
在向用户发送HTTP包体时,就要传入ngx_chain_t链表对象,注意,如果是最后一个ngx_chain_t,那么必须将next置为NULL,否则永远不会发送成功,而且这个请求将一直不会结束(Nginx框架的要求)。