ENCODE_START(v, 1, bl);
encode(name, bl);
if (v < 3) {
- encode(public_addrs.legacy_addr(), bl, features);
+ auto a = public_addrs.legacy_addr();
+ if (a != entity_addr_t()) {
+ encode(a, bl, features);
+ } else {
+ // note: we don't have a legacy addr here, so lie so that it looks
+ // like one, just so that old clients get a valid-looking map.
+ // they won't be able to talk to the v2 mons, but that's better
+ // than nothing.
+ encode(public_addrs.as_legacy_addr(), bl, features);
+ }
} else {
encode(public_addrs, bl, features);
}