aboutsummaryrefslogtreecommitdiffstats
path: root/main/opennhrp/0001-peer-reset-interface-nat-cie-when-server-does-not-de.patch
blob: 1bc766a4df1a47caf98400422cbd124a5e6d7cfb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
From 578db3f65caec301ceb402e5c7b51624ed1c4576 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
Date: Thu, 11 Jul 2013 14:14:15 +0300
Subject: [PATCH] peer: reset interface nat cie when server does not detect nat

fixes a corner case that system had broken routing, it gets fixed
without changing gre interface. for normal operation the nat cie is
reset by gre interface change hooks.
---
 nhrp/nhrp_peer.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/nhrp/nhrp_peer.c b/nhrp/nhrp_peer.c
index 97bbe48..2dbdeea 100644
--- a/nhrp/nhrp_peer.c
+++ b/nhrp/nhrp_peer.c
@@ -1001,6 +1001,9 @@ static void nhrp_peer_handle_registration_reply(void *ctx,
 			peer->interface->nat_cie = *cie;
 		}
 	}
+	if (payload == NULL || cie == NULL)
+		memset(&peer->interface->nat_cie, 0,
+		       sizeof(peer->interface->nat_cie));
 
 	/* If not re-registration, send a purge request for each subnet
 	 * we accept shortcuts to, to clear server redirection cache. */
-- 
2.4.6