diff --git a/include/netlink-local.h b/include/netlink-local.h index 958ac23..1fafb51 100644 --- a/include/netlink-local.h +++ b/include/netlink-local.h @@ -172,4 +172,12 @@ static inline char *nl_cache_name(struct nl_cache *cache) END_OF_MSGTYPES_LIST, \ } +static inline int wait_for_ack(struct nl_sock *sk) +{ + if (sk->s_flags & NL_NO_AUTO_ACK) + return 0; + else + return nl_wait_for_ack(sk); +} + #endif diff --git a/lib/netfilter/ct.c b/lib/netfilter/ct.c index d4d5a0c..9d61b6c 100644 --- a/lib/netfilter/ct.c +++ b/lib/netfilter/ct.c @@ -488,7 +488,7 @@ int nfnl_ct_add(struct nl_sock *sk, const struct nfnl_ct *ct, int flags) if (err < 0) return err; - return nl_wait_for_ack(sk); + return wait_for_ack(sk); } int nfnl_ct_build_delete_request(const struct nfnl_ct *ct, int flags, @@ -510,7 +510,7 @@ int nfnl_ct_del(struct nl_sock *sk, const struct nfnl_ct *ct, int flags) if (err < 0) return err; - return nl_wait_for_ack(sk); + return wait_for_ack(sk); } int nfnl_ct_build_query_request(const struct nfnl_ct *ct, int flags, @@ -532,7 +532,7 @@ int nfnl_ct_query(struct nl_sock *sk, const struct nfnl_ct *ct, int flags) if (err < 0) return err; - return nl_wait_for_ack(sk); + return wait_for_ack(sk); } /** diff --git a/lib/netfilter/log.c b/lib/netfilter/log.c index 6d3e23a..96ae6c5 100644 --- a/lib/netfilter/log.c +++ b/lib/netfilter/log.c @@ -63,7 +63,7 @@ static int send_log_request(struct nl_sock *sk, struct nl_msg *msg) if (err < 0) return err; - return nl_wait_for_ack(sk); + return wait_for_ack(sk); } int nfnl_log_build_pf_bind(uint8_t pf, struct nl_msg **result) diff --git a/lib/netfilter/queue.c b/lib/netfilter/queue.c index 3af2a48..8d3c7ce 100644 --- a/lib/netfilter/queue.c +++ b/lib/netfilter/queue.c @@ -33,7 +33,7 @@ static int send_queue_request(struct nl_sock *sk, struct nl_msg *msg) if (err < 0) return err; - return nl_wait_for_ack(sk); + return wait_for_ack(sk); } /** diff --git a/lib/netfilter/queue_msg.c b/lib/netfilter/queue_msg.c index 68f25f2..af50fa0 100644 --- a/lib/netfilter/queue_msg.c +++ b/lib/netfilter/queue_msg.c @@ -203,7 +203,7 @@ int nfnl_queue_msg_send_verdict(struct nl_sock *nlh, nlmsg_free(nlmsg); if (err < 0) return err; - return nl_wait_for_ack(nlh); + return wait_for_ack(nlh); } #define NFNLMSG_QUEUE_TYPE(type) NFNLMSG_TYPE(NFNL_SUBSYS_QUEUE, (type)) diff --git a/lib/route/addr.c b/lib/route/addr.c index 33bdace..fa9d0f4 100644 --- a/lib/route/addr.c +++ b/lib/route/addr.c @@ -586,7 +586,7 @@ int rtnl_addr_add(struct nl_sock *sk, struct rtnl_addr *addr, int flags) if (err < 0) return err; - return nl_wait_for_ack(sk); + return wait_for_ack(sk); } /** @} */ @@ -658,7 +658,7 @@ int rtnl_addr_delete(struct nl_sock *sk, struct rtnl_addr *addr, int flags) if (err < 0) return err; - return nl_wait_for_ack(sk); + return wait_for_ack(sk); } /** @} */ diff --git a/lib/route/class.c b/lib/route/class.c index 1110565..2bfd7dd 100644 --- a/lib/route/class.c +++ b/lib/route/class.c @@ -154,7 +154,7 @@ int rtnl_class_add(struct nl_sock *sk, struct rtnl_class *class, int flags) if (err < 0) return err; - return nl_wait_for_ack(sk); + return wait_for_ack(sk); } /** @} */ diff --git a/lib/route/link.c b/lib/route/link.c index d2ae816..cf488e5 100644 --- a/lib/route/link.c +++ b/lib/route/link.c @@ -956,7 +956,7 @@ int rtnl_link_change(struct nl_sock *sk, struct rtnl_link *old, if (err < 0) return err; - return nl_wait_for_ack(sk); + return wait_for_ack(sk); } /** @} */ diff --git a/lib/route/neigh.c b/lib/route/neigh.c index 39ff2ea..6998fac 100644 --- a/lib/route/neigh.c +++ b/lib/route/neigh.c @@ -589,7 +589,7 @@ int rtnl_neigh_add(struct nl_sock *sk, struct rtnl_neigh *tmpl, int flags) if (err < 0) return err; - return nl_wait_for_ack(sk); + return wait_for_ack(sk); } /** @} */ @@ -645,7 +645,7 @@ int rtnl_neigh_delete(struct nl_sock *sk, struct rtnl_neigh *neigh, if (err < 0) return err; - return nl_wait_for_ack(sk); + return wait_for_ack(sk); } /** @} */ diff --git a/lib/route/neightbl.c b/lib/route/neightbl.c index b1f57b5..9599faa 100644 --- a/lib/route/neightbl.c +++ b/lib/route/neightbl.c @@ -576,7 +576,7 @@ int rtnl_neightbl_change(struct nl_sock *sk, struct rtnl_neightbl *old, if (err < 0) return err; - return nl_wait_for_ack(sk); + return wait_for_ack(sk); } /** @} */ diff --git a/lib/route/qdisc.c b/lib/route/qdisc.c index fe5a597..cfeaf05 100644 --- a/lib/route/qdisc.c +++ b/lib/route/qdisc.c @@ -233,7 +233,7 @@ int rtnl_qdisc_add(struct nl_sock *sk, struct rtnl_qdisc *qdisc, if (err < 0) return err; - return nl_wait_for_ack(sk); + return wait_for_ack(sk); } /** @} */ @@ -289,7 +289,7 @@ int rtnl_qdisc_change(struct nl_sock *sk, struct rtnl_qdisc *qdisc, if (err < 0) return err; - return nl_wait_for_ack(sk); + return wait_for_ack(sk); } /** @} */ @@ -362,7 +362,7 @@ int rtnl_qdisc_delete(struct nl_sock *sk, struct rtnl_qdisc *qdisc) if (err < 0) return err; - return nl_wait_for_ack(sk); + return wait_for_ack(sk); } /** @} */ diff --git a/lib/route/route.c b/lib/route/route.c index 613440f..c85c225 100644 --- a/lib/route/route.c +++ b/lib/route/route.c @@ -138,7 +138,7 @@ int rtnl_route_add(struct nl_sock *sk, struct rtnl_route *route, int flags) if (err < 0) return err; - return nl_wait_for_ack(sk); + return wait_for_ack(sk); } int rtnl_route_build_del_request(struct rtnl_route *tmpl, int flags, @@ -160,7 +160,7 @@ int rtnl_route_delete(struct nl_sock *sk, struct rtnl_route *route, int flags) if (err < 0) return err; - return nl_wait_for_ack(sk); + return wait_for_ack(sk); } /** @} */ diff --git a/lib/route/rule.c b/lib/route/rule.c index 1f9ff9f..126e96d 100644 --- a/lib/route/rule.c +++ b/lib/route/rule.c @@ -490,7 +490,7 @@ int rtnl_rule_add(struct nl_sock *sk, struct rtnl_rule *tmpl, int flags) if (err < 0) return err; - return nl_wait_for_ack(sk); + return wait_for_ack(sk); } /** @} */ @@ -544,7 +544,7 @@ int rtnl_rule_delete(struct nl_sock *sk, struct rtnl_rule *rule, int flags) if (err < 0) return err; - return nl_wait_for_ack(sk); + return wait_for_ack(sk); } /** @} */