cct->_conf->apply_changes(NULL);
}
-void pick_addresses(CephContext *cct)
+void pick_addresses(CephContext *cct, int needs)
{
struct ifaddrs *ifa;
int r = getifaddrs(&ifa);
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");
}
class CephContext;
+
+#define CEPH_PICK_ADDRESS_PUBLIC 0x01
+#define CEPH_PICK_ADDRESS_CLUSTER 0x02
+
/*
Pick addresses based on subnets if needed.
This function will exit on error.
*/
-void pick_addresses(CephContext *cct);
+void pick_addresses(CephContext *cct, int needs);
/**
* check for a locally configured address