summaryrefslogtreecommitdiffstats
path: root/server/red_channel.c
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@redhat.com>2011-02-27 13:14:00 +0100
committerMarc-André Lureau <marcandre.lureau@redhat.com>2011-02-28 16:36:28 +0100
commitfc5d7f76257bf51c693dfb888c1a3dd61d8d2318 (patch)
tree8dede81cb8a758700339c3c2306fd152657d5bce /server/red_channel.c
parentf32503258fa1f0a88de410005609770bd23cac97 (diff)
downloadspice-fc5d7f76257bf51c693dfb888c1a3dd61d8d2318.tar.gz
spice-fc5d7f76257bf51c693dfb888c1a3dd61d8d2318.tar.xz
spice-fc5d7f76257bf51c693dfb888c1a3dd61d8d2318.zip
server: use the new reds_stream_{read,write}
https://bugs.freedesktop.org/show_bug.cgi?id=34795
Diffstat (limited to 'server/red_channel.c')
-rw-r--r--server/red_channel.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/server/red_channel.c b/server/red_channel.c
index 10bc054f..3676b5a0 100644
--- a/server/red_channel.c
+++ b/server/red_channel.c
@@ -41,7 +41,8 @@ static int red_peer_receive(RedsStream *peer, uint8_t *buf, uint32_t size)
if (peer->shutdown) {
return -1;
}
- if ((now = peer->cb_read(peer->ctx, pos, size)) <= 0) {
+ now = reds_stream_read(peer, pos, size);
+ if (now <= 0) {
if (now == 0) {
return -1;
}
@@ -154,7 +155,8 @@ void red_channel_receive(RedChannel *channel)
static void red_peer_handle_outgoing(RedsStream *peer, OutgoingHandler *handler)
{
- int n;
+ ssize_t n;
+
if (handler->size == 0) {
handler->vec = handler->vec_buf;
handler->size = handler->get_msg_size(handler->opaque);
@@ -162,9 +164,11 @@ static void red_peer_handle_outgoing(RedsStream *peer, OutgoingHandler *handler)
return;
}
}
+
for (;;) {
handler->prepare(handler->opaque, handler->vec, &handler->vec_size, handler->pos);
- if ((n = peer->cb_writev(peer->ctx, handler->vec, handler->vec_size)) == -1) {
+ n = reds_stream_writev(peer, handler->vec, handler->vec_size);
+ if (n == -1) {
switch (errno) {
case EAGAIN:
handler->on_block(handler->opaque);