diff options
Diffstat (limited to 'ip6tables.c')
-rw-r--r-- | ip6tables.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/ip6tables.c b/ip6tables.c index 6dc7aa2d..ef7e3653 100644 --- a/ip6tables.c +++ b/ip6tables.c @@ -256,6 +256,19 @@ service_to_port(const char *name, const char *proto) return -1; } +u_int16_t +parse_port(const char *port, const char *proto) +{ + unsigned int portnum; + + if ((string_to_number(port, 0, 65535, &portnum)) != -1 || + (portnum = service_to_port(port, proto)) != -1) + return (u_int16_t)portnum; + + exit_error(PARAMETER_PROBLEM, + "invalid port/service `%s' specified", port); +} + static void in6addrcpy(struct in6_addr *dst, struct in6_addr *src) { |