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;
}
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;
public:
Swapper(SnortConfig*, tTargetBasedConfig*);
Swapper(SnortConfig*, SnortConfig*);
+ Swapper(SnortConfig*, SnortConfig*, tTargetBasedConfig*, tTargetBasedConfig*);
Swapper(tTargetBasedConfig*, tTargetBasedConfig*);
~Swapper();