cur->buf->last_buf = 0;
+cur->buf->sync = 1;
tail->buf->last_buf = 1;
Класс! Спасибо - работает! :-) А можно узнать, почему? :-) В чем
функция этого sync?
nginx ловит пустые буфера, потому что это, как правило, ошибка в nginx'е.
Кроме буферов данных, могут быть служебные буфера с маркерами last и
flush.
Они могут быть пустыми, а могут быть совмещены с данными. При разработке
SSI понадобилось убирать маркер last, но для избежания ситуации zero
size buf,
был создан маркер-заглушка sync, поскольку манипуляции с цепочками
не всегда удобны.