X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Fnetdev-tunnel.c;h=5443a2db8c57a3c94bb31fb6515724bb058e2fd6;hb=2f94e4095bb177d0ef849f8c0975219d3d7c0798;hp=b197e53a93c9c6e3a5641dff5212424ef60af871;hpb=5689b76e77dafa01d849aad0edf65d46f5d62c50;p=sliver-openvswitch.git diff --git a/lib/netdev-tunnel.c b/lib/netdev-tunnel.c index b197e53a9..5443a2db8 100644 --- a/lib/netdev-tunnel.c +++ b/lib/netdev-tunnel.c @@ -121,7 +121,8 @@ netdev_tunnel_construct(struct netdev *netdev_) netdev->connected = false; - netdev->sockfd = inet_open_passive(SOCK_DGRAM, "", 0, &netdev->local_addr, 0); + netdev->sockfd = inet_open_passive(SOCK_DGRAM, "", 0, + (struct sockaddr_storage *)&netdev->local_addr, 0); if (netdev->sockfd < 0) { return netdev->sockfd; } @@ -271,7 +272,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 +282,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 +295,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; } } } @@ -452,18 +454,6 @@ out: return error; } -static unsigned int -netdev_tunnel_change_seq(const struct netdev *netdev_) -{ - struct netdev_tunnel *netdev = netdev_tunnel_cast(netdev_); - unsigned int change_seq; - - - ovs_mutex_lock(&netdev->mutex); - change_seq = netdev->change_seq; - ovs_mutex_unlock(&netdev->mutex); - return change_seq; -} /* Helper functions. */