From 1ba9f84db6cbd4d6e05cff87c34a38668ace361d Mon Sep 17 00:00:00 2001 From: Joao Eduardo Luis Date: Mon, 6 May 2013 16:33:53 +0100 Subject: [PATCH] common: add mask argument to pick_addresses() to specify what we need Fixes: #4228 Signed-off-by: Joao Eduardo Luis --- src/common/pick_address.cc | 10 +++++++--- src/common/pick_address.h | 6 +++++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/common/pick_address.cc b/src/common/pick_address.cc index ae4bbda1cdf5f..90327666ad5b6 100644 --- a/src/common/pick_address.cc +++ b/src/common/pick_address.cc @@ -79,7 +79,7 @@ static void fill_in_one_address(CephContext *cct, cct->_conf->apply_changes(NULL); } -void pick_addresses(CephContext *cct) +void pick_addresses(CephContext *cct, int needs) { struct ifaddrs *ifa; int r = getifaddrs(&ifa); @@ -89,11 +89,15 @@ void pick_addresses(CephContext *cct) exit(1); } - if (cct->_conf->public_addr.is_blank_ip() && !cct->_conf->public_network.empty()) { + if ((needs & CEPH_PICK_ADDRESS_PUBLIC) + && cct->_conf->public_addr.is_blank_ip() + && !cct->_conf->public_network.empty()) { fill_in_one_address(cct, ifa, cct->_conf->public_network, "public_addr"); } - if (cct->_conf->cluster_addr.is_blank_ip() && !cct->_conf->cluster_network.empty()) { + if ((needs & CEPH_PICK_ADDRESS_CLUSTER) + && cct->_conf->cluster_addr.is_blank_ip() + && !cct->_conf->cluster_network.empty()) { fill_in_one_address(cct, ifa, cct->_conf->cluster_network, "cluster_addr"); } diff --git a/src/common/pick_address.h b/src/common/pick_address.h index 50c2e53a87e81..eb2c104fc6ea8 100644 --- a/src/common/pick_address.h +++ b/src/common/pick_address.h @@ -5,6 +5,10 @@ class CephContext; + +#define CEPH_PICK_ADDRESS_PUBLIC 0x01 +#define CEPH_PICK_ADDRESS_CLUSTER 0x02 + /* Pick addresses based on subnets if needed. @@ -24,7 +28,7 @@ class CephContext; This function will exit on error. */ -void pick_addresses(CephContext *cct); +void pick_addresses(CephContext *cct, int needs); /** * check for a locally configured address -- 2.39.5