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框架的要求)。