Skip to content

Commit

Permalink
netfilter: xt_multiport: Use switch case instead of multiple conditio…
Browse files Browse the repository at this point in the history
…n 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>
  • Loading branch information
Gao Feng authored and Pablo Neira Ayuso committed Oct 26, 2016
1 parent 432490f commit dd2602d
Showing 1 changed file with 21 additions and 19 deletions.
40 changes: 21 additions & 19 deletions net/netfilter/xt_multiport.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
}
}

Expand Down

0 comments on commit dd2602d

Please sign in to comment.