summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorHaw Loeung <haw.loeung@canonical.com>2021-02-17 10:15:07 +0100
committerJozsef Kadlecsik <kadlec@netfilter.org>2021-02-19 21:21:24 +0100
commitdbeb20a667e82e4efb8b26b24a0ec641dab5c857 (patch)
tree9cebff1cc14d0715be8453193b6a6c3c1b5e33be /lib
parentcd5ede17e535a21414c455e54dc1baef9c3f34b8 (diff)
Parse port before trying by service name
This improves performance for loading IP sets using port numbers, especially large ones. Signed-off-by: Jozsef Kadlecsik <kadlec@netfilter.org>
Diffstat (limited to 'lib')
-rw-r--r--lib/parse.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/parse.c b/lib/parse.c
index 31a619d..f3f2d11 100644
--- a/lib/parse.c
+++ b/lib/parse.c
@@ -319,11 +319,11 @@ ipset_parse_port(struct ipset_session *session,
assert(opt == IPSET_OPT_PORT || opt == IPSET_OPT_PORT_TO);
assert(str);
- if (parse_portname(session, str, &port, proto) == 0) {
+ if (string_to_u16(session, str, &port) == 0) {
return ipset_session_data_set(session, opt, &port);
}
/* Error is stored as warning in session report */
- if (string_to_u16(session, str, &port) == 0) {
+ if (parse_portname(session, str, &port, proto) == 0) {
/* No error, so reset false error messages */
ipset_session_report_reset(session);
return ipset_session_data_set(session, opt, &port);