From 90b4feffb9a9031775b949090db6c1c3f963779a Mon Sep 17 00:00:00 2001 From: Giuseppe Lettieri Date: Mon, 10 Feb 2014 16:28:01 +0100 Subject: [PATCH] updated to new rx_recv semantics --- lib/netdev-pltap.c | 9 +++++---- lib/netdev-tunnel.c | 9 +++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/lib/netdev-pltap.c b/lib/netdev-pltap.c index 04e68bad3..1875c0e58 100644 --- a/lib/netdev-pltap.c +++ b/lib/netdev-pltap.c @@ -514,23 +514,24 @@ netdev_pltap_rx_recv(struct netdev_rx *rx_, struct ofpbuf *buffer) struct tun_pi pi; struct iovec iov[2] = { { .iov_base = &pi, .iov_len = sizeof(pi) }, - { .iov_base = buffer->data, .iov_len = size } + { .iov_base = buffer->data, .iov_len = size } }; for (;;) { ssize_t retval; retval = readv(rx->fd, iov, 2); if (retval >= 0) { if (retval <= size) { - return retval; + buffer->size += retval; + return 0; } else { - return -EMSGSIZE; + return EMSGSIZE; } } else if (errno != EINTR) { if (errno != EAGAIN) { VLOG_WARN_RL(&rl, "error receiveing Ethernet packet on %s: %s", netdev_rx_get_name(rx_), ovs_strerror(errno)); } - return -errno; + return errno; } } } diff --git a/lib/netdev-tunnel.c b/lib/netdev-tunnel.c index b197e53a9..6b5469753 100644 --- a/lib/netdev-tunnel.c +++ b/lib/netdev-tunnel.c @@ -271,7 +271,7 @@ netdev_tunnel_rx_recv(struct netdev_rx *rx_, struct ofpbuf *buffer) struct netdev_tunnel *netdev = netdev_tunnel_cast(rx_->netdev); if (!netdev->connected) - return -EAGAIN; + return EAGAIN; for (;;) { ssize_t retval; retval = recv(rx->fd, buffer->data, size, MSG_TRUNC); @@ -281,11 +281,12 @@ netdev_tunnel_rx_recv(struct netdev_rx *rx_, struct ofpbuf *buffer) netdev->stats.rx_packets++; netdev->stats.rx_bytes += retval; if (retval <= size) { - return retval; + buffer->size += retval; + return 0; } else { netdev->stats.rx_errors++; netdev->stats.rx_length_errors++; - return -EMSGSIZE; + return EMSGSIZE; } } else if (errno != EINTR) { if (errno != EAGAIN) { @@ -293,7 +294,7 @@ netdev_tunnel_rx_recv(struct netdev_rx *rx_, struct ofpbuf *buffer) netdev_rx_get_name(rx_), ovs_strerror(errno)); netdev->stats.rx_errors++; } - return -errno; + return errno; } } } -- 2.43.0