0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-09-20 15:38:53 +02:00

ircd::resource: Ignore empty chunk from user by default unless explicit.

This commit is contained in:
Jason Volk 2019-02-28 13:01:25 -08:00
parent 4e6ed85d27
commit 8cb5b78807
2 changed files with 7 additions and 3 deletions

View file

@ -41,7 +41,7 @@ struct ircd::resource::response::chunked
client *c {nullptr};
unique_buffer<mutable_buffer> buf;
size_t write(const const_buffer &chunk);
size_t write(const const_buffer &chunk, const bool &ignore_empty = true);
const_buffer flush(const const_buffer &);
bool finish();

View file

@ -862,7 +862,7 @@ ircd::resource::response::chunked::finish()
if(!c)
return false;
write(const_buffer{});
write(const_buffer{}, false);
c = nullptr;
return true;
}
@ -879,7 +879,8 @@ ircd::resource::response::chunked::flush(const const_buffer &buf)
}
size_t
ircd::resource::response::chunked::write(const const_buffer &chunk)
ircd::resource::response::chunked::write(const const_buffer &chunk,
const bool &ignore_empty)
try
{
size_t ret{0};
@ -887,6 +888,9 @@ try
if(!c)
return ret;
if(ignore_empty && empty(chunk))
return ret;
//TODO: bring iov from net::socket -> net::write_() -> client::write_()
char headbuf[32];
ret += c->write_all(http::writechunk(headbuf, size(chunk)));