aboutsummaryrefslogtreecommitdiffstats
path: root/net/netfilter/xt_multiport.c
diff options
context:
space:
mode:
authorGao Feng <fgao@ikuai8.com>2016-09-26 21:23:37 +0800
committerPablo Neira Ayuso <pablo@netfilter.org>2016-10-26 16:35:15 +0200
commitdd2602d00f80dd8bf30f083fde20b4fbbcf82266 (patch)
tree50695717a20aed62f73299cb48958ba230564314 /net/netfilter/xt_multiport.c
parentnet: ip, diag -- Add diag interface for raw sockets (diff)
downloadlinux-dev-dd2602d00f80dd8bf30f083fde20b4fbbcf82266.tar.xz
linux-dev-dd2602d00f80dd8bf30f083fde20b4fbbcf82266.zip
netfilter: xt_multiport: Use switch case instead of multiple condition checks
There are multiple equality condition checks in the original codes, so it is better to use switch case instead of them. Signed-off-by: Gao Feng <fgao@ikuai8.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'net/netfilter/xt_multiport.c')
-rw-r--r--net/netfilter/xt_multiport.c40
1 files changed, 21 insertions, 19 deletions
diff --git a/net/netfilter/xt_multiport.c b/net/netfilter/xt_multiport.c
index ac1d3c3d09e7..ec06fb1cb16f 100644
--- a/net/netfilter/xt_multiport.c
+++ b/net/netfilter/xt_multiport.c
@@ -42,29 +42,31 @@ ports_match_v1(const struct xt_multiport_v1 *minfo,
e = minfo->ports[++i];
pr_debug("src or dst matches with %d-%d?\n", s, e);
- if (minfo->flags == XT_MULTIPORT_SOURCE
- && src >= s && src <= e)
- return true ^ minfo->invert;
- if (minfo->flags == XT_MULTIPORT_DESTINATION
- && dst >= s && dst <= e)
- return true ^ minfo->invert;
- if (minfo->flags == XT_MULTIPORT_EITHER
- && ((dst >= s && dst <= e)
- || (src >= s && src <= e)))
- return true ^ minfo->invert;
+ switch (minfo->flags) {
+ case XT_MULTIPORT_SOURCE:
+ return (src >= s && src <= e) ^ minfo->invert;
+ case XT_MULTIPORT_DESTINATION:
+ return (dst >= s && dst <= e) ^ minfo->invert;
+ case XT_MULTIPORT_EITHER:
+ return ((dst >= s && dst <= e) ||
+ (src >= s && src <= e)) ^ minfo->invert;
+ default:
+ break;
+ }
} else {
/* exact port matching */
pr_debug("src or dst matches with %d?\n", s);
- if (minfo->flags == XT_MULTIPORT_SOURCE
- && src == s)
- return true ^ minfo->invert;
- if (minfo->flags == XT_MULTIPORT_DESTINATION
- && dst == s)
- return true ^ minfo->invert;
- if (minfo->flags == XT_MULTIPORT_EITHER
- && (src == s || dst == s))
- return true ^ minfo->invert;
+ switch (minfo->flags) {
+ case XT_MULTIPORT_SOURCE:
+ return (src == s) ^ minfo->invert;
+ case XT_MULTIPORT_DESTINATION:
+ return (dst == s) ^ minfo->invert;
+ case XT_MULTIPORT_EITHER:
+ return (src == s || dst == s) ^ minfo->invert;
+ default:
+ break;
+ }
}
}