]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: fix heartbeat set_port()
authorSage Weil <sage.weil@dreamhost.com>
Wed, 11 Apr 2012 05:13:15 +0000 (22:13 -0700)
committerSage Weil <sage.weil@dreamhost.com>
Wed, 11 Apr 2012 05:43:14 +0000 (22:43 -0700)
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>
src/ceph_osd.cc
src/msg/msg_types.h

index 9c58ec3a791f646630b3e993961257952d591aca..cce1959d334dbf84db3dfd94a280e133cc8e4b55 100644 (file)
@@ -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)
index 210681a933b4b9e47de6f69cea3d8167890e222f..7d6bb7b9c582e7910a48a0e144bf83446c5fcd92 100644 (file)
@@ -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 {