Фильтр Nginx -> Вопрос о флаге последнего буфера
Просто есть вопрос о следующем коде, который я видел во многих модулях-фильтрах:
last = 0;
for (cl = in; cl; cl = cl->next) {
if (cl->buf->last_buf) {
last = 1;
break;
}
}
if(!last){
return ngx_http_next_body_filter(r, in);
}
В моем тесте с простым index.html я увидел в своем журнале, что "последний" не был "1". Затем я помещаю счетчик в цикл for и записываю его в свой журнал. Результат - "1".
Таким образом, цикл просто проходит через него один раз, а флаг "last-buf" не установлен.
Мне просто интересно, почему фильтры прерывают работу и просто переходят к следующему фильтру вместо того, чтобы продолжать работу даже с одним буфером в цепочке?
Может ли кто-нибудь объяснить мне, почему я должен прервать мой фильтр в этой ситуации?
Спасибо