mirror of
https://github.com/openvswitch/ovs
synced 2025-10-27 15:18:06 +00:00
Add general-purpose IP/port parsing function.
OVS has functions for parsing IPv4 addresses, parsing IPv4 addresses with a port, and parsing IPv6 addresses. What is lacking though is a function that can take an IPv4 or IPv6 address, with or without a port. This commit adds ipv46_parse(), which breaks the given input string into its component parts and stores them in a sockaddr_storage structure. The function accepts flags that determine how it should behave if a port is present in the input string. Signed-off-by: Mark Michelson <mmichels@redhat.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
This commit is contained in:
committed by
Ben Pfaff
parent
7b997d4f3d
commit
e463f310b1
@@ -1339,6 +1339,16 @@ struct in6_addr ipv6_create_mask(int mask);
|
||||
int ipv6_count_cidr_bits(const struct in6_addr *netmask);
|
||||
bool ipv6_is_cidr(const struct in6_addr *netmask);
|
||||
|
||||
enum port_flags {
|
||||
PORT_OPTIONAL,
|
||||
PORT_REQUIRED,
|
||||
PORT_FORBIDDEN,
|
||||
};
|
||||
|
||||
char *ipv46_parse(const char *s, enum port_flags flags,
|
||||
struct sockaddr_storage *ss)
|
||||
OVS_WARN_UNUSED_RESULT;
|
||||
|
||||
bool ipv6_parse(const char *s, struct in6_addr *ip);
|
||||
char *ipv6_parse_masked(const char *s, struct in6_addr *ipv6,
|
||||
struct in6_addr *mask);
|
||||
|
||||
Reference in New Issue
Block a user