From 5199de0279e0825285c294a537d17f8ccee8e148 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Fri, 10 Mar 2017 17:46:08 +0100 Subject: fix ICMP IPv4/IPv6 type conversion logic --- src/vpn/gnunet-service-vpn.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/vpn') diff --git a/src/vpn/gnunet-service-vpn.c b/src/vpn/gnunet-service-vpn.c index aa0ea51a3..aab0a143f 100644 --- a/src/vpn/gnunet-service-vpn.c +++ b/src/vpn/gnunet-service-vpn.c @@ -2061,6 +2061,7 @@ route_packet (struct DestinationEntry *destination, void *payload; uint8_t new_type; + new_type = icmp->type; /* Perform ICMP protocol-translation (depending on destination AF and source AF) and throw away ICMP payload depending on ICMP message type */ switch (af) @@ -2111,8 +2112,8 @@ route_packet (struct DestinationEntry *destination, switch (icmp->type) { case GNUNET_TUN_ICMPTYPE6_DESTINATION_UNREACHABLE: - if (destination->details.exit_destination.af == AF_INET6) - new_type = GNUNET_TUN_ICMPTYPE6_DESTINATION_UNREACHABLE; + if (destination->details.exit_destination.af == AF_INET) + new_type = GNUNET_TUN_ICMPTYPE_DESTINATION_UNREACHABLE; /* throw away IP-payload, exit will have to make it up anyway */ payload_length = sizeof (struct GNUNET_TUN_IcmpHeader); break; -- cgit v1.2.3