summaryrefslogtreecommitdiff
path: root/src/vpn
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2017-03-10 17:46:08 +0100
committerChristian Grothoff <christian@grothoff.org>2017-03-10 17:46:08 +0100
commit5199de0279e0825285c294a537d17f8ccee8e148 (patch)
treec9bf19653e68c7a6890a0ac0b51dff244e0ecb17 /src/vpn
parentfb5328f889339c21bf45079ff2f5de1fc9d58a4d (diff)
fix ICMP IPv4/IPv6 type conversion logic
Diffstat (limited to 'src/vpn')
-rw-r--r--src/vpn/gnunet-service-vpn.c5
1 files changed, 3 insertions, 2 deletions
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;