set_port() fails an assert if it isn't an in4 or in6 address, which a
default entity_addr_t is not.
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
entity_addr_t hb_addr = g_conf->osd_heartbeat_addr;
if (hb_addr.is_blank_ip()) {
hb_addr = g_conf->cluster_addr;
- hb_addr.set_port(0);
+ if (hb_addr.is_ip())
+ hb_addr.set_port(0);
}
r = messenger_hbserver->bind(hb_addr);
if (r < 0)
}
}
+ bool is_ip() const {
+ switch (addr.ss_family) {
+ case AF_INET:
+ case AF_INET6:
+ return true;
+ default:
+ return false;
+ }
+ }
+
bool parse(const char *s, const char **end = 0);
void encode(bufferlist& bl) const {