|
|
|
|
@ -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");
|
|
|
|
|
|