diff options
| author | Daniel P. Berrange <berrange@redhat.com> | 2017-10-09 14:39:17 +0100 |
|---|---|---|
| committer | Daniel P. Berrange <berrange@redhat.com> | 2017-10-16 16:57:08 +0100 |
| commit | bac6c95415788c03590542eb244c723a18d0771c (patch) | |
| tree | 6f8a1060f658a0561f101d458b3e8e5c814b0d14 /io/channel-websock.c | |
| parent | 57b0cdf152b7266e68bfa3e84635d4bdb64ef2cd (diff) | |
| download | focaccia-qemu-bac6c95415788c03590542eb244c723a18d0771c.tar.gz focaccia-qemu-bac6c95415788c03590542eb244c723a18d0771c.zip | |
io: get rid of qio_channel_websock_encode helper method
The qio_channel_websock_encode method is only used in one place, everything else calls qio_channel_websock_encode_buffer directly. It can also be pushed up a level into the qio_channel_websock_writev method, since every other caller of qio_channel_websock_write_wire has already filled encoutput. Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Diffstat (limited to 'io/channel-websock.c')
| -rw-r--r-- | io/channel-websock.c | 20 |
1 files changed, 6 insertions, 14 deletions
diff --git a/io/channel-websock.c b/io/channel-websock.c index 6083f74c9b..700f5bea22 100644 --- a/io/channel-websock.c +++ b/io/channel-websock.c @@ -616,18 +616,6 @@ static void qio_channel_websock_encode_buffer(QIOChannelWebsock *ioc, } -static void qio_channel_websock_encode(QIOChannelWebsock *ioc) -{ - if (!ioc->rawoutput.offset) { - return; - } - qio_channel_websock_encode_buffer( - ioc, &ioc->encoutput, QIO_CHANNEL_WEBSOCK_OPCODE_BINARY_FRAME, - &ioc->rawoutput); - buffer_reset(&ioc->rawoutput); -} - - static ssize_t qio_channel_websock_write_wire(QIOChannelWebsock *, Error **); @@ -948,8 +936,6 @@ static ssize_t qio_channel_websock_write_wire(QIOChannelWebsock *ioc, ssize_t ret; ssize_t done = 0; - qio_channel_websock_encode(ioc); - while (ioc->encoutput.offset > 0) { ret = qio_channel_write(ioc->master, (char *)ioc->encoutput.buffer, @@ -1134,6 +1120,12 @@ static ssize_t qio_channel_websock_writev(QIOChannel *ioc, } done: + if (ioc->rawoutput.offset) { + qio_channel_websock_encode_buffer( + ioc, &ioc->encoutput, QIO_CHANNEL_WEBSOCK_OPCODE_BINARY_FRAME, + &ioc->rawoutput); + buffer_reset(&ioc->rawoutput); + } ret = qio_channel_websock_write_wire(wioc, errp); if (ret < 0 && ret != QIO_CHANNEL_ERR_BLOCK) { |