From: Sage Weil Date: Thu, 9 Aug 2018 18:13:18 +0000 (-0500) Subject: common/ipaddr: add parse_network helper X-Git-Tag: v14.0.1~601^2~16 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=e9616334285fa331e50c522e4b6dcd4d2b5125da;p=ceph.git common/ipaddr: add parse_network helper Signed-off-by: Sage Weil --- diff --git a/src/common/ipaddr.cc b/src/common/ipaddr.cc index 0ee96eb9dcc1..3d03aef6b54c 100644 --- a/src/common/ipaddr.cc +++ b/src/common/ipaddr.cc @@ -10,6 +10,7 @@ #endif #include "include/ipaddr.h" +#include "msg/msg_types.h" void netmask_ipv4(const struct in_addr *addr, unsigned int prefix_len, @@ -164,3 +165,16 @@ bool parse_network(const char *s, struct sockaddr_storage *network, unsigned int return false; } + +bool parse_network(const char *s, + entity_addr_t *network, + unsigned int *prefix_len) +{ + sockaddr_storage ss; + bool ret = parse_network(s, &ss, prefix_len); + if (ret) { + network->set_type(entity_addr_t::TYPE_LEGACY); + network->set_sockaddr((sockaddr *)&ss); + } + return ret; +} diff --git a/src/include/ipaddr.h b/src/include/ipaddr.h index 5ded4200a93c..3ec822534f0d 100644 --- a/src/include/ipaddr.h +++ b/src/include/ipaddr.h @@ -1,6 +1,8 @@ #ifndef CEPH_IPADDR_H #define CEPH_IPADDR_H +class entity_addr_t; + /* * Find an IP address that is in the wanted subnet. * @@ -22,7 +24,12 @@ const struct ifaddrs *find_ip_in_subnet(const struct ifaddrs *addrs, * * if the network string is invalid, return false. */ -bool parse_network(const char *s, struct sockaddr_storage *network, unsigned int *prefix_len); +bool parse_network(const char *s, + struct sockaddr_storage *network, + unsigned int *prefix_len); +bool parse_network(const char *s, + entity_addr_t *network, + unsigned int *prefix_len); void netmask_ipv6(const struct in6_addr *addr, unsigned int prefix_len,