get_str_list(interfaces, ifs);
// filter interfaces by name
- const struct ifaddrs *filtered = 0;
+ const struct ifaddrs *filtered = nullptr;
if (ifs.empty()) {
filtered = ifa;
} else {
}
const struct ifaddrs *t = ifa;
struct ifaddrs *head = 0;
- while (t != NULL) {
+ while (t) {
bool match = false;
for (auto& i : ifs) {
if (strcmp(i.c_str(), t->ifa_name) == 0) {
}
t = t->ifa_next;
}
- if (head == NULL) {
+ if (!head) {
lderr(cct) << "no interfaces matching " << ifs << dendl;
exit(1);
}
filtered = head;
}
- struct sockaddr *r = NULL;
- for (std::list<string>::iterator s = nets.begin(); s != nets.end(); ++s) {
+ struct sockaddr *r = nullptr;
+ for (auto& s : nets) {
struct sockaddr_storage net;
unsigned int prefix_len;
- if (!parse_network(s->c_str(), &net, &prefix_len)) {
- lderr(cct) << "unable to parse network: " << *s << dendl;
+ if (!parse_network(s.c_str(), &net, &prefix_len)) {
+ lderr(cct) << "unable to parse network: " << s << dendl;
exit(1);
}
: sizeof(struct sockaddr_in6),
buf, sizeof(buf),
- NULL, 0,
+ nullptr, 0,
NI_NUMERICHOST);
if (err != 0) {
lderr(cct) << "unable to convert chosen address to string: " << gai_strerror(err) << dendl;
cct->_conf->add_observer(&obs);
cct->_conf->set_val_or_die(conf_var, buf);
- cct->_conf->apply_changes(NULL);
+ cct->_conf->apply_changes(nullptr);
cct->_conf->remove_observer(&obs);
}
{
struct ifaddrs *ifa;
int r = getifaddrs(&ifa);
- if (r<0) {
+ auto public_addr = cct->_conf->get_val<entity_addr_t>("public_addr");
+ auto public_network = cct->_conf->get_val<std::string>("public_network");
+ auto public_network_interface =
+ cct->_conf->get_val<std::string>("public_network_interface");
+ auto cluster_addr = cct->_conf->get_val<entity_addr_t>("cluster_addr");
+ auto cluster_network = cct->_conf->get_val<std::string>("cluster_network");
+ auto cluster_network_interface =
+ cct->_conf->get_val<std::string>("cluster_network_interface");
+
+ if (r < 0) {
string err = cpp_strerror(errno);
lderr(cct) << "unable to fetch interfaces and addresses: " << err << dendl;
exit(1);
}
- 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,
- cct->_conf->get_val<string>("public_network_interface"),
- "public_addr");
+ if ((needs & CEPH_PICK_ADDRESS_PUBLIC) &&
+ public_addr.is_blank_ip() && !public_network.empty()) {
+ fill_in_one_address(cct, ifa, public_network, public_network_interface,
+ "public_addr");
}
- if ((needs & CEPH_PICK_ADDRESS_CLUSTER)
- && cct->_conf->cluster_addr.is_blank_ip()) {
- if (!cct->_conf->cluster_network.empty()) {
- fill_in_one_address(
- cct, ifa, cct->_conf->cluster_network,
- cct->_conf->get_val<string>("cluster_network_interface"),
+ if ((needs & CEPH_PICK_ADDRESS_CLUSTER) && cluster_addr.is_blank_ip()) {
+ if (!cluster_network.empty()) {
+ fill_in_one_address(cct, ifa, cluster_network, cluster_network_interface,
"cluster_addr");
} else {
- if (!cct->_conf->public_network.empty()) {
+ if (!public_network.empty()) {
lderr(cct) << "Public network was set, but cluster network was not set " << dendl;
lderr(cct) << " Using public network also for cluster network" << dendl;
- fill_in_one_address(
- cct, ifa, cct->_conf->public_network,
- cct->_conf->get_val<string>("public_network_interface"),
- "cluster_addr");
+ fill_in_one_address(cct, ifa, public_network, public_network_interface,
+ "cluster_addr");
}
}
}
}
bool found = false;
- for (struct ifaddrs *addrs = ifa; addrs != NULL; addrs = addrs->ifa_next) {
+ for (struct ifaddrs *addrs = ifa; addrs != nullptr; addrs = addrs->ifa_next) {
if (addrs->ifa_addr) {
entity_addr_t a;
a.set_sockaddr(addrs->ifa_addr);
- for (list<entity_addr_t>::const_iterator p = ls.begin(); p != ls.end(); ++p) {
- if (a.is_same_host(*p)) {
- *match = *p;
+ for (auto& p : ls) {
+ if (a.is_same_host(p)) {
+ *match = p;
found = true;
goto out;
}