]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
common: add mask argument to pick_addresses() to specify what we need
authorJoao Eduardo Luis <joao.luis@inktank.com>
Mon, 6 May 2013 15:33:53 +0000 (16:33 +0100)
committerJoao Eduardo Luis <joao.luis@inktank.com>
Wed, 22 May 2013 16:57:37 +0000 (17:57 +0100)
Fixes: #4228
Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
src/common/pick_address.cc
src/common/pick_address.h

index ae4bbda1cdf5fd888b2f3fd4d78161efd85f5d27..90327666ad5b6fc9ee7c6662361540be40ee63ea 100644 (file)
@@ -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");
   }
 
index 50c2e53a87e81e560dbac10eb2e0f1907c9f5010..eb2c104fc6ea801e23dc91ad997ecbddfd91e28f 100644 (file)
@@ -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