diff --git a/src/libloom/socket.cpp b/src/libloom/socket.cpp index 19397de38f4bcce133471201d17522c102dbdf19..018c53342f187f1cfec40dfb9a1d68e0629c90c4 100644 --- a/src/libloom/socket.cpp +++ b/src/libloom/socket.cpp @@ -100,8 +100,15 @@ void Socket::send(std::unique_ptr<SendBuffer> buffer) void Socket::_buf_alloc(uv_handle_t *handle, size_t suggested_size, uv_buf_t *buf) { - buf->base = new char[suggested_size]; - buf->len = suggested_size; + size_t size; + Socket *socket = static_cast<Socket*>(handle->data); + if (socket->stream_mode) { + size = 8 << 20; // 8 MB + } else { + size = suggested_size; + } + buf->base = new char[size]; + buf->len = size; }