diff --git a/src/shared/ip-protocol-list.c b/src/shared/ip-protocol-list.c index 0623d5e9be..21d88f2660 100644 --- a/src/shared/ip-protocol-list.c +++ b/src/shared/ip-protocol-list.c @@ -65,3 +65,13 @@ int parse_ip_protocol(const char *s) { return i; } + +const char *ip_protocol_to_tcp_udp(int id) { + return IN_SET(id, IPPROTO_TCP, IPPROTO_UDP) ? + ip_protocol_to_name(id) : NULL; +} + +int ip_protocol_from_tcp_udp(const char *ip_protocol) { + int id = ip_protocol_from_name(ip_protocol); + return IN_SET(id, IPPROTO_TCP, IPPROTO_UDP) ? id : -EINVAL; +} diff --git a/src/shared/ip-protocol-list.h b/src/shared/ip-protocol-list.h index abe3f5fc28..b40ec08301 100644 --- a/src/shared/ip-protocol-list.h +++ b/src/shared/ip-protocol-list.h @@ -4,3 +4,6 @@ const char *ip_protocol_to_name(int id); int ip_protocol_from_name(const char *name); int parse_ip_protocol(const char *s); + +const char *ip_protocol_to_tcp_udp(int id); +int ip_protocol_from_tcp_udp(const char *ip_protocol);