Revert "use proper tun_ip definitions"
authorThierry Parmentelat <thierry.parmentelat@inria.fr>
Wed, 3 Oct 2012 13:58:38 +0000 (15:58 +0200)
committerThierry Parmentelat <thierry.parmentelat@inria.fr>
Wed, 3 Oct 2012 13:58:38 +0000 (15:58 +0200)
This reverts commit bd2ccd1280b7b2b78e14abc78a4a07286a2f6c8d.

this intendedly harmless change turned out harmful

lib/netdev-pltap.c

index dc56a38..6c36e96 100644 (file)
@@ -338,9 +338,9 @@ netdev_pltap_recv(struct netdev *netdev_, void *buffer, size_t size)
 {
     struct netdev_dev_pltap *dev = 
        netdev_dev_pltap_cast(netdev_get_dev(netdev_));
-    struct tun_pi pi;
+    char prefix[4];
     struct iovec iov[2] = {
-        { .iov_base = &pi, .iov_len = sizeof(pi) },
+        { .iov_base = prefix, .iov_len = 4 },
        { .iov_base = buffer, .iov_len = size }
     };
     if (!dev->finalized)
@@ -379,9 +379,9 @@ netdev_pltap_send(struct netdev *netdev_, const void *buffer, size_t size)
 {
     struct netdev_dev_pltap *dev = 
        netdev_dev_pltap_cast(netdev_get_dev(netdev_));
-    struct tun_pi pi = { 0, htons(ETH_P_IP) };
+    char prefix[4] = { 0, 0, 8, 6 };
     struct iovec iov[2] = {
-        { .iov_base = &pi, .iov_len = sizeof(pi) },
+        { .iov_base = prefix, .iov_len = 4 },
        { .iov_base = buffer, .iov_len = size }
     };
     if (dev->fd < 0 || !dev->finalized)
@@ -390,9 +390,9 @@ netdev_pltap_send(struct netdev *netdev_, const void *buffer, size_t size)
         ssize_t retval;
         retval = writev(dev->fd, iov, 2);
         if (retval >= 0) {
-           if (retval != size + sizeof(pi)) {
+           if (retval != size + 4) {
                VLOG_WARN_RL(&rl, "sent partial Ethernet packet (%zd bytes of %zu) on %s",
-                            retval, size + sizeof(pi), netdev_get_name(netdev_));
+                            retval, size + 4, netdev_get_name(netdev_));
            }
             return 0;
         } else if (errno != EINTR) {