Add internal wait_for_ack() which only waits for ACK if !NL_NO_AUTO_ACK

This changeset ensures that internal code properly synchronizes to
ACKs if ACKs are enabled and otherwise return immediately.
This commit is contained in:
Thomas Graf 2008-10-20 13:12:13 +02:00
parent 2bdee95a76
commit cfcfca0703
13 changed files with 28 additions and 20 deletions

View file

@ -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

View file

@ -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);
}
/**

View file

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

View file

@ -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);
}
/**

View file

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

View file

@ -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);
}
/** @} */

View file

@ -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);
}
/** @} */

View file

@ -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);
}
/** @} */

View file

@ -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);
}
/** @} */

View file

@ -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);
}
/** @} */

View file

@ -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);
}
/** @} */

View file

@ -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);
}
/** @} */

View file

@ -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);
}
/** @} */