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;
|
entity_addr_t hb_addr = g_conf->osd_heartbeat_addr;
|
||||||
if (hb_addr.is_blank_ip()) {
|
if (hb_addr.is_blank_ip()) {
|
||||||
hb_addr = g_conf->cluster_addr;
|
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);
|
r = messenger_hbserver->bind(hb_addr);
|
||||||
if (r < 0)
|
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);
|
bool parse(const char *s, const char **end = 0);
|
||||||
|
|
||||||
void encode(bufferlist& bl) const {
|
void encode(bufferlist& bl) const {
|
||||||
|
Loading…
Reference in New Issue
Block a user