summaryrefslogtreecommitdiff
path: root/ipacm/src/IPACM_ConntrackListener.cpp
diff options
context:
space:
mode:
authorSkylar Chang <chiaweic@codeaurora.org>2013-10-10 14:44:47 -0700
committerSkylar Chang <chiaweic@codeaurora.org>2013-10-10 14:44:47 -0700
commite9f5938b44ed7c88a0033fc545d351a5967e6d13 (patch)
treecbb072b36f1663c8ff58aec983d94503fbdb3435 /ipacm/src/IPACM_ConntrackListener.cpp
parent98bd07d294d5442d353227b2ee9e558a23718c70 (diff)
downloadipacfg-mgr-e9f5938b44ed7c88a0033fc545d351a5967e6d13.tar.gz
IPANAT fix: delete IPANAT entry when ECM client went away
IPANAT will delete the corresponding ipv4 NAT rules in IPA when receiving destroy event from Conntrack in linux kernel Change-Id: I810c95b16a43794f6e13c393fcece303aabd7ed1
Diffstat (limited to 'ipacm/src/IPACM_ConntrackListener.cpp')
-rwxr-xr-x[-rw-r--r--]ipacm/src/IPACM_ConntrackListener.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/ipacm/src/IPACM_ConntrackListener.cpp b/ipacm/src/IPACM_ConntrackListener.cpp
index ace8a68..cc7c524 100644..100755
--- a/ipacm/src/IPACM_ConntrackListener.cpp
+++ b/ipacm/src/IPACM_ConntrackListener.cpp
@@ -475,6 +475,7 @@ void IPACM_ConntrackListener::ProcessTCPorUDPMsg(
uint32_t status = 0;
NatApp *na = NULL;
+ IPACMDBG("Received type:%d with proto:%d", type, l4proto);
status = nfct_get_attr_u32(ct, ATTR_STATUS);
if(IPS_DST_NAT & status)
@@ -606,9 +607,11 @@ void IPACM_ConntrackListener::ProcessTCPorUDPMsg(
IPACMDBG("TCP state TCP_CONNTRACK_ESTABLISHED(%d)\n", tcp_state);
na->AddEntry(&rule);
}
- else if(TCP_CONNTRACK_FIN_WAIT == tcp_state)
+ else if(TCP_CONNTRACK_FIN_WAIT == tcp_state ||
+ type == NFCT_T_DESTROY)
{
- IPACMDBG("TCP state TCP_CONNTRACK_FIN_WAIT(%d)\n", tcp_state);
+ IPACMDBG("TCP state TCP_CONNTRACK_FIN_WAIT(%d) "
+ "or type NFCT_T_DESTROY(%d)\n", tcp_state, type);
na->DeleteEntry(&rule);
}
else