summaryrefslogtreecommitdiffstats
path: root/src/read_config_yy.y
diff options
context:
space:
mode:
Diffstat (limited to 'src/read_config_yy.y')
-rw-r--r--src/read_config_yy.y19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/read_config_yy.y b/src/read_config_yy.y
index 73fabbf..58ad2d0 100644
--- a/src/read_config_yy.y
+++ b/src/read_config_yy.y
@@ -89,6 +89,7 @@ enum {
%token T_OPTIONS T_TCP_WINDOW_TRACKING T_EXPECT_SYNC
%token T_HELPER T_HELPER_QUEUE_NUM T_HELPER_QUEUE_LEN T_HELPER_POLICY
%token T_HELPER_EXPECT_TIMEOUT T_HELPER_EXPECT_MAX
+%token T_SYSTEMD
%token <string> T_IP T_PATH_VAL
%token <val> T_NUMBER
@@ -1122,8 +1123,15 @@ general_line: hashsize
| netlink_events_reliable
| nice
| scheduler
+ | systemd
;
+systemd: T_SYSTEMD T_ON { /* already enabled in init_config() */ };
+systemd: T_SYSTEMD T_OFF
+{
+ conf.systemd = 0;
+};
+
netlink_buffer_size: T_BUFFER_SIZE T_NUMBER
{
conf.netlink_buffer_size = $2;
@@ -1856,6 +1864,9 @@ init_config(char *filename)
CONFIG(stats).syslog_facility = -1;
CONFIG(netlink).subsys_id = -1;
+ /* enable systemd by default */
+ CONFIG(systemd) = 1;
+
/* Initialize list of user-space helpers */
INIT_LIST_HEAD(&CONFIG(cthelper).list);
@@ -1865,6 +1876,14 @@ init_config(char *filename)
yyparse();
fclose(fp);
+#ifndef BUILD_SYSTEMD
+ if (CONFIG(systemd) == 1) {
+ print_err(CTD_CFG_WARN, "systemd runtime support activated but"
+ " conntrackd was built without support"
+ " for it. Recompile conntrackd");
+ }
+#endif /* BUILD_SYSTEMD */
+
/* set to default is not specified */
if (strcmp(CONFIG(lockfile), "") == 0)
strncpy(CONFIG(lockfile), DEFAULT_LOCKFILE, FILENAME_MAXLEN);