From: Michael Altizer (mialtize) Date: Mon, 12 Mar 2018 20:56:01 +0000 (-0400) Subject: Merge pull request #1132 in SNORT/snort3 from reload_hosts_fix to master X-Git-Tag: 3.0.0-244~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4a964c81cea0de80f430a6410c47d8077781b527;p=thirdparty%2Fsnort3.git Merge pull request #1132 in SNORT/snort3 from reload_hosts_fix to master Squashed commit of the following: commit 16f4f9ca6b73b5bee41ff8700001c4bece5ec880 Author: Bhagya Tholpady Date: Wed Mar 7 13:43:16 2018 -0500 main: reload hosts while reloading config --- diff --git a/src/main.cc b/src/main.cc index 0119052af..8287a59ef 100644 --- a/src/main.cc +++ b/src/main.cc @@ -322,12 +322,21 @@ int main_reload_config(lua_State* L) current_request->respond("== reload failed\n"); return 0; } + + tTargetBasedConfig* old_tc = SFAT_GetConfig(); + tTargetBasedConfig* tc = SFAT_Swap(); + + if ( !tc ) + { + current_request->respond("== reload failed\n"); + return 0; + } SnortConfig::set_conf(sc); proc_stats.conf_reloads++; bool from_shell = ( L != nullptr ); current_request->respond(".. swapping configuration\n", from_shell); - main_broadcast_command(get_command(new ACSwap(new Swapper(old, sc)), from_shell)); + main_broadcast_command(get_command(new ACSwap(new Swapper(old, sc, old_tc, tc)), from_shell)); return 0; } diff --git a/src/main/swapper.cc b/src/main/swapper.cc index e17f6dd9e..2b7b14cbc 100644 --- a/src/main/swapper.cc +++ b/src/main/swapper.cc @@ -47,6 +47,15 @@ Swapper::Swapper(SnortConfig* sold, SnortConfig* snew) new_attribs = nullptr; } +Swapper::Swapper(SnortConfig* sold, SnortConfig* snew, tTargetBasedConfig* told, tTargetBasedConfig* tnew) +{ + old_conf = sold; + new_conf = snew; + + old_attribs = told; + new_attribs = tnew; +} + Swapper::Swapper(tTargetBasedConfig* told, tTargetBasedConfig* tnew) { old_conf = nullptr; diff --git a/src/main/swapper.h b/src/main/swapper.h index e33f02b40..b92cb39b7 100644 --- a/src/main/swapper.h +++ b/src/main/swapper.h @@ -30,6 +30,7 @@ class Swapper public: Swapper(SnortConfig*, tTargetBasedConfig*); Swapper(SnortConfig*, SnortConfig*); + Swapper(SnortConfig*, SnortConfig*, tTargetBasedConfig*, tTargetBasedConfig*); Swapper(tTargetBasedConfig*, tTargetBasedConfig*); ~Swapper();