diff options
Diffstat (limited to 'data-ipa-cfg-mgr/ipacm/src/IPACM_OffloadManager.cpp')
-rw-r--r-- | data-ipa-cfg-mgr/ipacm/src/IPACM_OffloadManager.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/data-ipa-cfg-mgr/ipacm/src/IPACM_OffloadManager.cpp b/data-ipa-cfg-mgr/ipacm/src/IPACM_OffloadManager.cpp index 93a7dd4..96200ad 100644 --- a/data-ipa-cfg-mgr/ipacm/src/IPACM_OffloadManager.cpp +++ b/data-ipa-cfg-mgr/ipacm/src/IPACM_OffloadManager.cpp @@ -61,6 +61,7 @@ IPACM_OffloadManager::IPACM_OffloadManager() latest_cache_index = 0; elrInstance = NULL; touInstance = NULL; + is_cache = false; return ; } @@ -362,6 +363,16 @@ RET IPACM_OffloadManager::setUpstream(const char *upstream_name, const Prefix& g if(upstream_name == NULL) { if (default_gw_index == INVALID_IFACE) { + if (is_cache) { + for (index = 0; index < MAX_EVENT_CACHE; index++) { + if (event_cache[index].valid == true) { + event_cache[index].valid = false; + memset(event_cache, 0, MAX_EVENT_CACHE*sizeof(framework_event_cache)); + } + is_cache = false; + return SUCCESS; + } + } IPACMERR("no previous upstream set before\n"); return FAIL_INPUT_CHECK; } @@ -435,6 +446,7 @@ RET IPACM_OffloadManager::setUpstream(const char *upstream_name, const Prefix& g return FAIL_HARDWARE; } } + is_cache = true; return SUCCESS; } |