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:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user