Check the return value of sink.write() in the chunked content provider
and return false when the write fails, matching cpp-httplib's own
streaming contract. This prevents logging chunks as sent when the sink
rejected them and properly aborts the stream on connection failure.
std::string chunk;
bool has_next = response->next(chunk);
if (!chunk.empty()) {
- // TODO: maybe handle sink.write unsuccessful? for now, we rely on is_connection_closed()
- sink.write(chunk.data(), chunk.size());
+ if (!sink.write(chunk.data(), chunk.size())) {
+ return false;
+ }
SRV_DBG("http: streamed chunk: %s\n", chunk.c_str());
}
if (!has_next) {