Fix generic BSD tun device to write only the actual packet length.
authorGuus Sliepen <guus@tinc-vpn.org>
Fri, 5 Jan 2007 04:49:02 +0000 (04:49 +0000)
committerGuus Sliepen <guus@tinc-vpn.org>
Fri, 5 Jan 2007 04:49:02 +0000 (04:49 +0000)
Due to a copy&paste bug, it tried to write a packet with the maximum size.
This was not a problem until the maximum size was increased to support VLANs.

src/bsd/device.c

index 8649d89..419c38f 100644 (file)
@@ -245,7 +245,7 @@ bool write_packet(vpn_packet_t *packet)
 
                case DEVICE_TYPE_TUNIFHEAD: {
                        u_int32_t type;
 
                case DEVICE_TYPE_TUNIFHEAD: {
                        u_int32_t type;
-                       struct iovec vector[2] = {{&type, sizeof(type)}, {packet->data + 14, MTU - 14}};
+                       struct iovec vector[2] = {{&type, sizeof(type)}, {packet->data + 14, packet->len - 14}};
                        int af;
                        
                        af = (packet->data[12] << 8) + packet->data[13];
                        int af;
                        
                        af = (packet->data[12] << 8) + packet->data[13];