diff --git a/daemon/main.c b/daemon/main.c index 6e747b064..fd83c658f 100644 --- a/daemon/main.c +++ b/daemon/main.c @@ -1236,13 +1236,9 @@ static void init_everything(void) { } -static void create_everything(void) { - struct timeval tmp_tv; - - gettimeofday(&rtpe_now, NULL); - +static void kernel_setup(void) { if (rtpe_config.kernel_table < 0) - goto no_kernel; + return; #ifndef WITHOUT_NFTABLES const char *err = nftables_setup(rtpe_config.nftables_chain, rtpe_config.nftables_base_chain, (nftables_args) {.table = rtpe_config.kernel_table, @@ -1251,13 +1247,17 @@ static void create_everything(void) { if (err) die("Failed to create nftables chains or rules: %s (%s)", err, strerror(errno)); #endif - if (!kernel_setup_table(rtpe_config.kernel_table)) { - if (rtpe_config.no_fallback) - die("Userspace fallback disallowed - exiting"); - goto no_kernel; - } + if (!kernel_setup_table(rtpe_config.kernel_table) && rtpe_config.no_fallback) + die("Userspace fallback disallowed - exiting"); +} + +static void create_everything(void) { + struct timeval tmp_tv; + + gettimeofday(&rtpe_now, NULL); + + kernel_setup(); -no_kernel: rtpe_poller = poller_new(); if (!rtpe_poller) die("poller creation failed");