#include <string.h>
#include <stdlib.h>
#include <stdio.h>
-#include <unistd.h>
#include <arpa/inet.h>
#include "system.h"
struct vlist_tree iprules;
+static bool iprules_flushed = false;
static unsigned int iprules_counter[2];
enum {
[RULE_GOTO] = { .name = "goto", .type = BLOBMSG_TYPE_INT32 },
};
-const struct config_param_list rule_attr_list = {
+const struct uci_blob_param_list rule_attr_list = {
.n_params = __RULE_MAX,
.params = rule_attr,
};
void
iprule_update_start(void)
{
+ if (!iprules_flushed) {
+ system_flush_iprules();
+ iprules_flushed = true;
+ }
+
iprules_counter[0] = 1;
iprules_counter[1] = 1;
vlist_update(&iprules);
static void __init
iprule_init_list(void)
{
- system_flush_iprules();
vlist_init(&iprules, rule_cmp, iprule_update_rule);
}