From: Haw Loeung Date: Wed, 17 Feb 2021 09:15:07 +0000 (+0100) Subject: Parse port before trying by service name X-Git-Tag: v7.11~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=dbeb20a667e82e4efb8b26b24a0ec641dab5c857;p=thirdparty%2Fipset.git 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 --- diff --git a/lib/parse.c b/lib/parse.c index 31a619db..f3f2d113 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);