return;
}
+void SignalHandlerSigusr2DelayedDetect(int sig)
+{
+ SCLogWarning(SC_ERR_LIVE_RULE_SWAP, "Live rule reload blocked while delayed detect is still loading.");
+}
+
void SignalHandlerSigusr2SigFileStartup(int sig)
{
SCLogInfo("Live rule reload not possible if -s or -S option used at runtime.");
DetectEngineRegisterAppInspectionEngines();
if (suri.rule_reload) {
- if (suri.sig_file == NULL)
- UtilSignalHandlerSetup(SIGUSR2, SignalHandlerSigusr2Idle);
- else
+ if (suri.sig_file != NULL)
UtilSignalHandlerSetup(SIGUSR2, SignalHandlerSigusr2SigFileStartup);
+ else if (suri.delayed_detect)
+ UtilSignalHandlerSetup(SIGUSR2, SignalHandlerSigusr2DelayedDetect);
+ else
+ UtilSignalHandlerSetup(SIGUSR2, SignalHandlerSigusr2Idle);
} else {
UtilSignalHandlerSetup(SIGUSR2, SignalHandlerSigusr2Disabled);
}
exit(EXIT_FAILURE);
de_ctx->delayed_detect_initialized = 1;
TmThreadActivateDummySlot();
+
+ if (suri.rule_reload) {
+ if (suri.sig_file != NULL)
+ UtilSignalHandlerSetup(SIGUSR2, SignalHandlerSigusr2SigFileStartup);
+ else
+ UtilSignalHandlerSetup(SIGUSR2, SignalHandlerSigusr2Idle);
+ }
SCLogNotice("Signature(s) loaded, Detect thread(s) activated.");
}