From e9616334285fa331e50c522e4b6dcd4d2b5125da Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 9 Aug 2018 13:13:18 -0500 Subject: [PATCH] common/ipaddr: add parse_network helper Signed-off-by: Sage Weil --- src/common/ipaddr.cc | 14 ++++++++++++++ src/include/ipaddr.h | 9 ++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/common/ipaddr.cc b/src/common/ipaddr.cc index 0ee96eb9dcc1a..3d03aef6b54cc 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 5ded4200a93c9..3ec822534f0d4 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, -- 2.39.5