shared: add ip_protocol_{from|to}_tcp_udp helpers

Thin wrappers of ip_protocol_{from|to}_name targeting IPPROTO_TCP and
IPPROTO_UDP only.
Used to parse IP protocol configuration restricted only to TCP and UDP,
e.g. in SocketBind{Allow|Deny}= unit property.

These helpers are inspired by af_{from|to}_ipv4_ipv6 and potentially
extendable with other IP protocols if there is a use-case to expose
them.
This commit is contained in:
Julia Kartseva
2021-06-29 14:37:07 -07:00
parent 560d76243f
commit 159d68c3e0
2 changed files with 13 additions and 0 deletions
+10
View File
@@ -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;
}
+3
View File
@@ -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);