mirror of
https://github.com/ceph/ceph
synced 2025-03-06 08:20:12 +00:00
osd: fix heartbeat set_port()
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>
This commit is contained in:
parent
1775301bb4
commit
cd4a760e9b
@ -373,7 +373,8 @@ int main(int argc, const char **argv)
|
||||
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)
|
||||
|
@ -310,6 +310,16 @@ struct entity_addr_t {
|
||||
}
|
||||
}
|
||||
|
||||
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 {
|
||||
|
Loading…
Reference in New Issue
Block a user