diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2013-07-11 11:51:14 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2013-07-11 11:53:12 +0000 |
commit | 8d00aea74fced42fcd83ce32f4d10fb1fba4fc75 (patch) | |
tree | e65ec33e9451bf6fba1ca18c64d515436537050d /main/opennhrp/reset-nat.patch | |
parent | 650c11aa0b00af727882f95b03c5efa794435d02 (diff) | |
download | aports-8d00aea74fced42fcd83ce32f4d10fb1fba4fc75.tar.bz2 aports-8d00aea74fced42fcd83ce32f4d10fb1fba4fc75.tar.xz |
main/opennhrp: reset NAT after broken routing
fixes a corner case that system had broken routing (typically due to
dual ISP), it gets fixed without changing gre interface.
Diffstat (limited to 'main/opennhrp/reset-nat.patch')
-rw-r--r-- | main/opennhrp/reset-nat.patch | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/main/opennhrp/reset-nat.patch b/main/opennhrp/reset-nat.patch new file mode 100644 index 0000000000..5c8ebccecb --- /dev/null +++ b/main/opennhrp/reset-nat.patch @@ -0,0 +1,25 @@ +commit 578db3f65caec301ceb402e5c7b51624ed1c4576 (HEAD, origin/master, origin/HEAD, master) +Author: Timo Teräs <timo.teras@iki.fi> +Date: Thu Jul 11 14:14:15 2013 +0300 + + 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. + +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. */ + |