From: Daniel P. Berrange Date: Mon, 30 Sep 2013 16:27:51 +0000 (+0100) Subject: Fix max stream packet size for old clients X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=27e81517a876dcb738dd8a9bb2e0e68d71c3b7e3;p=libvirt.git Fix max stream packet size for old clients The libvirtd server pushes data out to clients. It does not know what protocol version the client might have, so must be conservative and use the old payload limits. ie send no more than 256kb of data per packet. Signed-off-by: Daniel P. Berrange --- diff --git a/daemon/stream.c b/daemon/stream.c index 87dfaf575e..9e36e8a9fe 100644 --- a/daemon/stream.c +++ b/daemon/stream.c @@ -708,7 +708,7 @@ daemonStreamHandleRead(virNetServerClientPtr client, daemonClientStream *stream) { char *buffer; - size_t bufferLen = VIR_NET_MESSAGE_PAYLOAD_MAX; + size_t bufferLen = VIR_NET_MESSAGE_LEGACY_PAYLOAD_MAX; int ret; VIR_DEBUG("client=%p, stream=%p tx=%d closed=%d", diff --git a/src/rpc/virnetprotocol.x b/src/rpc/virnetprotocol.x index 131e40b1c3..1eae7cb80f 100644 --- a/src/rpc/virnetprotocol.x +++ b/src/rpc/virnetprotocol.x @@ -50,6 +50,13 @@ */ const VIR_NET_MESSAGE_INITIAL = 65536; +/* + * Until we enlarged the message buffers, this was the max + * payload size. We need to remember this for compat with + * old clients. + */ +const VIR_NET_MESSAGE_LEGACY_PAYLOAD_MAX = 262144; + /* Maximum total message size (serialised). */ const VIR_NET_MESSAGE_MAX = 16777216;