From: Sage Weil Date: Wed, 2 Jan 2019 23:07:45 +0000 (-0600) Subject: msg/msg_types: encode entity_addr_t TYPE_ANY as TYPE_LEGACY for pre-nautilus X-Git-Tag: v14.1.0~484^2~3 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=e708b729cfbd01d2952e0b9127883243374950bc;p=ceph-ci.git msg/msg_types: encode entity_addr_t TYPE_ANY as TYPE_LEGACY for pre-nautilus This is primarily for OSDMap's blacklist, which, starting with nautilus, is populated by ANY addrs instead of LEGACY addrs. Signed-off-by: Sage Weil --- diff --git a/src/msg/msg_types.h b/src/msg/msg_types.h index 422ee5c01ae..67d41d58e2b 100644 --- a/src/msg/msg_types.h +++ b/src/msg/msg_types.h @@ -453,7 +453,18 @@ struct entity_addr_t { } encode((__u8)1, bl); ENCODE_START(1, 1, bl); - encode(type, bl); + if (HAVE_FEATURE(features, SERVER_NAUTILUS)) { + encode(type, bl); + } else { + // map any -> legacy for old clients. this is primary for the benefit + // of OSDMap's blacklist, but is reasonable in general since any: is + // meaningless for pre-nautilus clients or daemons. + auto t = type; + if (t == TYPE_ANY) { + t = TYPE_LEGACY; + } + encode(t, bl); + } encode(nonce, bl); __u32 elen = get_sockaddr_len(); encode(elen, bl);