From 28233246cd8fad47613e7ffd85ea0b1d69c0f8c2 Mon Sep 17 00:00:00 2001 From: Thomas Graf Date: Thu, 15 May 2008 14:01:57 +0200 Subject: Allow parser callbacks to return NL_OK, NL_SKIP, NL_EXIT Obsoletes internal P_ACCEPT/P_IGNORE --- include/netlink-local.h | 3 --- lib/genl/ctrl.c | 5 ----- lib/netfilter/ct.c | 5 ----- lib/netfilter/log_msg.c | 5 ----- lib/netfilter/queue_msg.c | 5 ----- lib/route/addr.c | 5 ----- lib/route/class.c | 5 ----- lib/route/classifier.c | 5 ----- lib/route/link.c | 5 ----- lib/route/neigh.c | 5 ----- lib/route/neightbl.c | 4 ---- lib/route/qdisc.c | 5 ----- lib/route/route.c | 6 +----- lib/route/rule.c | 5 ----- 14 files changed, 1 insertion(+), 67 deletions(-) diff --git a/include/netlink-local.h b/include/netlink-local.h index b7b9b7f..ed398ad 100644 --- a/include/netlink-local.h +++ b/include/netlink-local.h @@ -124,9 +124,6 @@ static inline int nl_cb_call(struct nl_cb *cb, int type, struct nl_msg *msg) #define __exit __attribute__ ((destructor)) #define __deprecated __attribute__ ((deprecated)) -#define P_ACCEPT 0 -#define P_IGNORE 0 - #define min(x,y) ({ \ typeof(x) _x = (x); \ typeof(y) _y = (y); \ diff --git a/lib/genl/ctrl.c b/lib/genl/ctrl.c index f60cd1a..1301642 100644 --- a/lib/genl/ctrl.c +++ b/lib/genl/ctrl.c @@ -128,11 +128,6 @@ static int ctrl_msg_parser(struct nl_cache_ops *ops, struct genl_cmd *cmd, } err = pp->pp_cb((struct nl_object *) family, pp); - if (err < 0) - goto errout; - - err = P_ACCEPT; - errout: genl_family_put(family); return err; diff --git a/lib/netfilter/ct.c b/lib/netfilter/ct.c index beb1dc5..2f111d6 100644 --- a/lib/netfilter/ct.c +++ b/lib/netfilter/ct.c @@ -364,11 +364,6 @@ static int ct_msg_parser(struct nl_cache_ops *ops, struct sockaddr_nl *who, goto errout; err = pp->pp_cb((struct nl_object *) ct, pp); - if (err < 0) - goto errout; - - err = P_ACCEPT; - errout: nfnl_ct_put(ct); return err; diff --git a/lib/netfilter/log_msg.c b/lib/netfilter/log_msg.c index 33de482..cad6ddd 100644 --- a/lib/netfilter/log_msg.c +++ b/lib/netfilter/log_msg.c @@ -176,11 +176,6 @@ static int log_msg_parser(struct nl_cache_ops *ops, struct sockaddr_nl *who, goto errout; err = pp->pp_cb((struct nl_object *) msg, pp); - if (err < 0) - goto errout; - - err = P_ACCEPT; - errout: nfnl_log_msg_put(msg); return err; diff --git a/lib/netfilter/queue_msg.c b/lib/netfilter/queue_msg.c index ec461a5..68f25f2 100644 --- a/lib/netfilter/queue_msg.c +++ b/lib/netfilter/queue_msg.c @@ -154,11 +154,6 @@ static int queue_msg_parser(struct nl_cache_ops *ops, struct sockaddr_nl *who, goto errout; err = pp->pp_cb((struct nl_object *) msg, pp); - if (err < 0) - goto errout; - - err = P_ACCEPT; - errout: nfnl_queue_msg_put(msg); return err; diff --git a/lib/route/addr.c b/lib/route/addr.c index 3e86bde..999da7a 100644 --- a/lib/route/addr.c +++ b/lib/route/addr.c @@ -282,11 +282,6 @@ static int addr_msg_parser(struct nl_cache_ops *ops, struct sockaddr_nl *who, } err = pp->pp_cb((struct nl_object *) addr, pp); - if (err < 0) - goto errout; - - err = P_ACCEPT; - errout: rtnl_addr_put(addr); diff --git a/lib/route/class.c b/lib/route/class.c index 20b59ee..1110565 100644 --- a/lib/route/class.c +++ b/lib/route/class.c @@ -53,11 +53,6 @@ static int class_msg_parser(struct nl_cache_ops *ops, struct sockaddr_nl *who, } err = pp->pp_cb((struct nl_object *) class, pp); - if (err < 0) - goto errout_free; - - err = P_ACCEPT; - errout_free: rtnl_class_put(class); errout: diff --git a/lib/route/classifier.c b/lib/route/classifier.c index 9a2a9ac..4b5ce9d 100644 --- a/lib/route/classifier.c +++ b/lib/route/classifier.c @@ -64,11 +64,6 @@ static int cls_msg_parser(struct nl_cache_ops *ops, struct sockaddr_nl *who, } err = pp->pp_cb((struct nl_object *) cls, pp); - if (err < 0) - goto errout_free; - - err = P_ACCEPT; - errout_free: rtnl_cls_put(cls); errout: diff --git a/lib/route/link.c b/lib/route/link.c index b894cab..b889d65 100644 --- a/lib/route/link.c +++ b/lib/route/link.c @@ -417,11 +417,6 @@ static int link_msg_parser(struct nl_cache_ops *ops, struct sockaddr_nl *who, } err = pp->pp_cb((struct nl_object *) link, pp); - if (err < 0) - goto errout; - - err = P_ACCEPT; - errout: rtnl_link_put(link); return err; diff --git a/lib/route/neigh.c b/lib/route/neigh.c index 9541f20..bec98cc 100644 --- a/lib/route/neigh.c +++ b/lib/route/neigh.c @@ -317,11 +317,6 @@ static int neigh_msg_parser(struct nl_cache_ops *ops, struct sockaddr_nl *who, } err = pp->pp_cb((struct nl_object *) neigh, pp); - if (err < 0) - goto errout; - - err = P_ACCEPT; - errout: rtnl_neigh_put(neigh); return err; diff --git a/lib/route/neightbl.c b/lib/route/neightbl.c index d34205a..d6495be 100644 --- a/lib/route/neightbl.c +++ b/lib/route/neightbl.c @@ -217,10 +217,6 @@ static int neightbl_msg_parser(struct nl_cache_ops *ops, } err = pp->pp_cb((struct nl_object *) ntbl, pp); - if (err < 0) - goto errout; - - err = P_ACCEPT; errout: rtnl_neightbl_put(ntbl); return err; diff --git a/lib/route/qdisc.c b/lib/route/qdisc.c index c8dd4d5..fe5a597 100644 --- a/lib/route/qdisc.c +++ b/lib/route/qdisc.c @@ -122,11 +122,6 @@ static int qdisc_msg_parser(struct nl_cache_ops *ops, struct sockaddr_nl *who, } err = pp->pp_cb((struct nl_object *) qdisc, pp); - if (err < 0) - goto errout_free; - - err = P_ACCEPT; - errout_free: rtnl_qdisc_put(qdisc); errout: diff --git a/lib/route/route.c b/lib/route/route.c index 1c13e6e..613440f 100644 --- a/lib/route/route.c +++ b/lib/route/route.c @@ -36,12 +36,8 @@ static int route_msg_parser(struct nl_cache_ops *ops, struct sockaddr_nl *who, if ((err = rtnl_route_parse(nlh, &route)) < 0) return err; - if ((err = pp->pp_cb((struct nl_object *) route, pp)) < 0) - goto errout; + err = pp->pp_cb((struct nl_object *) route, pp); - err = P_ACCEPT; - -errout: rtnl_route_put(route); return err; } diff --git a/lib/route/rule.c b/lib/route/rule.c index 00163b0..12a0d05 100644 --- a/lib/route/rule.c +++ b/lib/route/rule.c @@ -155,11 +155,6 @@ static int rule_msg_parser(struct nl_cache_ops *ops, struct sockaddr_nl *who, } err = pp->pp_cb((struct nl_object *) rule, pp); - if (err < 0) - goto errout; - - err = P_ACCEPT; - errout: rtnl_rule_put(rule); return err; -- cgit v0.12