summaryrefslogtreecommitdiffstats
path: root/src/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/main.c b/src/main.c
index a446bc68..30ea2c6c 100644
--- a/src/main.c
+++ b/src/main.c
@@ -223,8 +223,14 @@ int nft_run(void *scanner, struct parser_state *state, struct list_head *msgs)
ret = nft_parse(scanner, state);
if (ret != 0 || state->nerrs > 0)
return -1;
+retry:
+ ret = nft_netlink(state, msgs);
+ if (ret < 0 && errno == EINTR) {
+ netlink_restart();
+ goto retry;
+ }
- return nft_netlink(state, msgs);
+ return ret;
}
int main(int argc, char * const *argv)