netlink_io_error(&ctx, &cmd->location,
"Could not process rule: %s",
strerror(err->err));
- ret = -1;
errno = err->err;
if (err->seqnum == cmd->seqnum) {
mnl_err_list_free(err);
.tv_sec = 0,
.tv_usec = 0
};
+ int err = 0;
ret = mnl_nft_socket_sendmsg(ctx);
if (ret == -1)
ret = mnl_cb_run(rcv_buf, ret, 0, portid, &netlink_echo_callback, ctx);
/* Continue on error, make sure we get all acknowledgments */
- if (ret == -1)
+ if (ret == -1) {
mnl_err_list_node_add(err_list, errno, nlh->nlmsg_seq);
+ err = -1;
+ }
ret = select(fd+1, &readfds, NULL, NULL, &tv);
if (ret == -1)
FD_ZERO(&readfds);
FD_SET(fd, &readfds);
}
- return ret;
+ return err;
}
int mnl_nft_rule_batch_add(struct nftnl_rule *nlr, struct nftnl_batch *batch,