exit(EXIT_FAILURE);
}
+ /* Enable default signal handlers including SIGHUP for log file rotation,
+ * and SIGUSR2 for reloading rules. This should be done with care by a
+ * library user as the application may already have signal handlers
+ * loaded. */
+ SCEnableDefaultSignalHandlers();
+
/* Set "offline" runmode to replay a pcap in library mode. */
if (!SCConfSetFromString("runmode=offline", 1)) {
exit(EXIT_FAILURE);
exit(EXIT_FAILURE);
}
+ /* Enable default signal handlers just like Suricata. */
+ SCEnableDefaultSignalHandlers();
+
SuricataInit();
SuricataPostInit();
exit(EXIT_FAILURE);
}
+ /* Enable default signal handlers */
+ SCEnableDefaultSignalHandlers();
+
/* Initialization tasks: apply configuration, drop privileges,
* etc. */
SuricataInit();
suricata.run_mode = run_mode;
}
+void SCEnableDefaultSignalHandlers(void)
+{
+ suricata.install_signal_handlers = true;
+}
+
/** signal handlers
*
* WARNING: don't use the SCLog* API in the handlers. The API is complex
if (MayDaemonize(suri) != TM_ECODE_OK)
SCReturnInt(TM_ECODE_FAILED);
- if (InitSignalHandler(suri) != TM_ECODE_OK)
- SCReturnInt(TM_ECODE_FAILED);
+ if (suri->install_signal_handlers) {
+ if (InitSignalHandler(suri) != TM_ECODE_OK)
+ SCReturnInt(TM_ECODE_FAILED);
+ }
/* Check for the existence of the default logging directory which we pick
* from suricata.yaml. If not found, shut the engine down */
bool set_datadir;
bool unix_socket_enabled;
+ bool install_signal_handlers; /**< Install default signal handlers */
+
int delayed_detect;
int disabled_detect;
int daemon;
*/
void SCRunmodeSet(SCRunMode run_mode);
+/**
+ * \brief Enable default signal handlers.
+ */
+void SCEnableDefaultSignalHandlers(void);
+
int SuriHasSigFile(void);
void SuricataPreInit(const char *progname);