diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2018-05-31 21:24:19 +0200 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2018-06-01 16:45:49 +0200 |
commit | 825d842f1458969f50bdf6a5620c77d15d1b8531 (patch) | |
tree | 21736e7115983e6cbb88a0181951cfc327af3f96 | |
parent | 0b81f86f55649fd94e1fbc37220f81d0153cddbb (diff) | |
download | slirp-825d842f1458969f50bdf6a5620c77d15d1b8531.zip slirp-825d842f1458969f50bdf6a5620c77d15d1b8531.tar.gz slirp-825d842f1458969f50bdf6a5620c77d15d1b8531.tar.bz2 |
slirp: Fix spurious error report when sending directly
Move check to where it actually is useful, and reduce scope of 'len'
variable along the way.
Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
-rw-r--r-- | socket.c | 14 |
1 files changed, 7 insertions, 7 deletions
@@ -336,7 +336,7 @@ int sosendoob(struct socket *so) struct sbuf *sb = &so->so_rcv; char buff[2048]; /* XXX Shouldn't be sending more oob data than this */ - int n, len; + int n; DEBUG_CALL("sosendoob"); DEBUG_ARG("so = %p", so); @@ -356,7 +356,7 @@ int sosendoob(struct socket *so) * send it all */ uint32_t urgc = so->so_urgc; - len = (sb->sb_data + sb->sb_datalen) - sb->sb_rptr; + int len = (sb->sb_data + sb->sb_datalen) - sb->sb_rptr; if (len > urgc) { len = urgc; } @@ -371,13 +371,13 @@ int sosendoob(struct socket *so) len += n; } n = slirp_send(so, buff, len, (MSG_OOB)); /* |MSG_DONTWAIT)); */ - } - #ifdef DEBUG - if (n != len) { - DEBUG_ERROR((dfd, "Didn't send all data urgently XXXXX\n")); - } + if (n != len) { + DEBUG_ERROR((dfd, "Didn't send all data urgently XXXXX\n")); + } #endif + } + if (n < 0) { return n; } |