Merge in SNORT/snort3 from ~OSTEPANO/snort3:transport_reload to master
Squashed commit of the following:
commit
e56c55c2eddeb7b41107f79ca5a78ce1e3c96a35
Author: Oleksandr Stepanov <ostepano@cisco.com>
Date: Tue May 27 12:52:08 2025 -0400
mp_dbus: transfer ownership of MPDataBus to new config during reload
TraceApi::thread_reinit(sc->trace_config);
proc_stats.conf_reloads++;
+ if(sc->max_procs > 1)
+ {
+ if (old and old->mp_dbus != nullptr)
+ {
+ sc->mp_dbus = old->mp_dbus;
+ }
+ else
+ {
+ sc->mp_dbus = new MPDataBus();
+ sc->mp_dbus->init(sc->max_procs);
+ }
+ }
+
ReloadTracker::update(ctrlcon, "start swapping configuration ...");
send_response(ctrlcon, ".. swapping configuration\n");
main_broadcast_command(new ACSwap(new Swapper(old, sc), ctrlcon), ctrlcon);
Swapper::~Swapper()
{
if ( new_conf and old_conf )
+ {
// don't do this to startup configs
InspectorManager::clear_removed_inspectors(new_conf);
+ //transfer ownership of mp_dbus to new config
+ if ( new_conf->mp_dbus == old_conf->mp_dbus )
+ const_cast<SnortConfig*>(old_conf)->mp_dbus = nullptr;
+ }
+
if ( old_conf )
delete old_conf;
}