From 12416b77bd813eac84974832a3a73ec67c40d79b Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 6 Nov 2018 16:08:26 -0600 Subject: [PATCH] msg/msg_types: default parse to v2 addrs If we parse "1.2.3.4", parse to v2:1.2.3.4:0/0, not a v1 legacy addr. Signed-off-by: Sage Weil --- src/msg/msg_types.cc | 1 - src/msg/msg_types.h | 2 +- src/test/cli/monmaptool/add-many.t | 4 +-- src/test/common/dns_resolve.cc | 14 ++++---- src/test/test_addrs.cc | 57 ++++++++++++++++-------------- 5 files changed, 40 insertions(+), 38 deletions(-) diff --git a/src/msg/msg_types.cc b/src/msg/msg_types.cc index 8b87647bcb2f9..d7e26b3f88b95 100644 --- a/src/msg/msg_types.cc +++ b/src/msg/msg_types.cc @@ -76,7 +76,6 @@ bool entity_addr_t::parse(const char *s, const char **end) start += 3; newtype = TYPE_MSGR2; } else if (*s == '-') { - *this = entity_addr_t(); if (end) { *end = s + 1; } diff --git a/src/msg/msg_types.h b/src/msg/msg_types.h index d49b39ff32af1..349692536efd8 100644 --- a/src/msg/msg_types.h +++ b/src/msg/msg_types.h @@ -233,7 +233,7 @@ struct entity_addr_t { TYPE_LEGACY = 1, ///< legacy msgr1 protocol (ceph jewel and older) TYPE_MSGR2 = 2, ///< msgr2 protocol (new in ceph kraken) } type_t; - static const type_t TYPE_DEFAULT = TYPE_LEGACY; + static const type_t TYPE_DEFAULT = TYPE_MSGR2; static const char *get_type_name(int t) { switch (t) { case TYPE_NONE: return "none"; diff --git a/src/test/cli/monmaptool/add-many.t b/src/test/cli/monmaptool/add-many.t index 1b19a41ec5a0e..92f4a9ee692b3 100644 --- a/src/test/cli/monmaptool/add-many.t +++ b/src/test/cli/monmaptool/add-many.t @@ -22,8 +22,8 @@ last_changed \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d+ (re) created \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d+ (re) 0: v1:2.3.4.5:6789/0 mon.foo - 1: v1:3.4.5.6:7890/0 mon.bar - 2: v1:4.5.6.7:8901/0 mon.baz + 1: v2:3.4.5.6:7890/0 mon.bar + 2: v2:4.5.6.7:8901/0 mon.baz $ NEW_FSID="$(monmaptool --print mymonmap|grep ^fsid)" $ [ "$ORIG_FSID" = "$NEW_FSID" ] diff --git a/src/test/common/dns_resolve.cc b/src/test/common/dns_resolve.cc index 937b4a2fd6a1a..9bd2a93cdca0b 100644 --- a/src/test/common/dns_resolve.cc +++ b/src/test/common/dns_resolve.cc @@ -64,7 +64,7 @@ TEST_F(DNSResolverTest, resolve_ip_addr) { std::ostringstream os; os << addr; - ASSERT_EQ(os.str(), "v1:192.168.1.11:0/0"); + ASSERT_EQ(os.str(), "v2:192.168.1.11:0/0"); } TEST_F(DNSResolverTest, resolve_ip_addr_fail) { @@ -146,17 +146,17 @@ TEST_F(DNSResolverTest, resolve_srv_hosts_empty_domain) { ASSERT_NE(it, records.end()); std::ostringstream os; os << it->second.addr; - ASSERT_EQ(os.str(), "v1:192.168.1.11:6789/0"); + ASSERT_EQ(os.str(), "v2:192.168.1.11:6789/0"); os.str(""); it = records.find("mon.b"); ASSERT_NE(it, records.end()); os << it->second.addr; - ASSERT_EQ(os.str(), "v1:192.168.1.12:6789/0"); + ASSERT_EQ(os.str(), "v2:192.168.1.12:6789/0"); os.str(""); it = records.find("mon.c"); ASSERT_NE(it, records.end()); os << it->second.addr; - ASSERT_EQ(os.str(), "v1:192.168.1.13:6789/0"); + ASSERT_EQ(os.str(), "v2:192.168.1.13:6789/0"); } TEST_F(DNSResolverTest, resolve_srv_hosts_full_domain) { @@ -216,17 +216,17 @@ TEST_F(DNSResolverTest, resolve_srv_hosts_full_domain) { ASSERT_NE(it, records.end()); std::ostringstream os; os << it->second.addr; - ASSERT_EQ(os.str(), "v1:192.168.1.11:6789/0"); + ASSERT_EQ(os.str(), "v2:192.168.1.11:6789/0"); os.str(""); it = records.find("mon.b"); ASSERT_NE(it, records.end()); os << it->second.addr; - ASSERT_EQ(os.str(), "v1:192.168.1.12:6789/0"); + ASSERT_EQ(os.str(), "v2:192.168.1.12:6789/0"); os.str(""); it = records.find("mon.c"); ASSERT_NE(it, records.end()); os << it->second.addr; - ASSERT_EQ(os.str(), "v1:192.168.1.13:6789/0"); + ASSERT_EQ(os.str(), "v2:192.168.1.13:6789/0"); } TEST_F(DNSResolverTest, resolve_srv_hosts_fail) { diff --git a/src/test/test_addrs.cc b/src/test/test_addrs.cc index 20dd5ce1dfa63..155f8eb4bf1d8 100644 --- a/src/test/test_addrs.cc +++ b/src/test/test_addrs.cc @@ -22,21 +22,21 @@ // input, parsed+printed addr output, leftover // if the parse fails, output + leftover should both be blank. const char *addr_checks[][3] = { - { "127.0.0.1", "v1:127.0.0.1:0/0", "" }, - { "127.0.0.1 foo", "v1:127.0.0.1:0/0", " foo" }, - { "127.0.0.1:1234 foo", "v1:127.0.0.1:1234/0", " foo" }, - { "127.0.0.1:1234/5678 foo", "v1:127.0.0.1:1234/5678", " foo" }, + { "127.0.0.1", "v2:127.0.0.1:0/0", "" }, + { "127.0.0.1 foo", "v2:127.0.0.1:0/0", " foo" }, + { "127.0.0.1:1234 foo", "v2:127.0.0.1:1234/0", " foo" }, + { "127.0.0.1:1234/5678 foo", "v2:127.0.0.1:1234/5678", " foo" }, { "1.2.3:4 a", "", "" }, - { "2607:f298:4:2243::5522", "v1:[2607:f298:4:2243::5522]:0/0", "" }, - { "[2607:f298:4:2243::5522]", "v1:[2607:f298:4:2243::5522]:0/0", "" }, + { "2607:f298:4:2243::5522", "v2:[2607:f298:4:2243::5522]:0/0", "" }, + { "[2607:f298:4:2243::5522]", "v2:[2607:f298:4:2243::5522]:0/0", "" }, { "2607:f298:4:2243::5522a", "", "" }, - { "[2607:f298:4:2243::5522]a", "v1:[2607:f298:4:2243::5522]:0/0", "a" }, - { "[2607:f298:4:2243::5522]:1234a", "v1:[2607:f298:4:2243::5522]:1234/0", "a" }, - { "2001:0db8:85a3:0000:0000:8a2e:0370:7334", "v1:[2001:db8:85a3::8a2e:370:7334]:0/0", "" }, - { "2001:2db8:85a3:4334:4324:8a2e:1370:7334", "v1:[2001:2db8:85a3:4334:4324:8a2e:1370:7334]:0/0", "" }, - { "::", "v1:[::]:0/0", "" }, - { "::zz", "v1:[::]:0/0", "zz" }, - { ":: 12:34", "v1:[::]:0/0", " 12:34" }, + { "[2607:f298:4:2243::5522]a", "v2:[2607:f298:4:2243::5522]:0/0", "a" }, + { "[2607:f298:4:2243::5522]:1234a", "v2:[2607:f298:4:2243::5522]:1234/0", "a" }, + { "2001:0db8:85a3:0000:0000:8a2e:0370:7334", "v2:[2001:db8:85a3::8a2e:370:7334]:0/0", "" }, + { "2001:2db8:85a3:4334:4324:8a2e:1370:7334", "v2:[2001:2db8:85a3:4334:4324:8a2e:1370:7334]:0/0", "" }, + { "::", "v2:[::]:0/0", "" }, + { "::zz", "v2:[::]:0/0", "zz" }, + { ":: 12:34", "v2:[::]:0/0", " 12:34" }, { "-", "-", "" }, { "-asdf", "-", "asdf" }, { "v1:1.2.3.4", "v1:1.2.3.4:0/0", "" }, @@ -69,17 +69,19 @@ TEST(Msgr, TestAddrParsing) } } +// check that legacy encoding to new decoding behaves + const char *addr_checks2[][3] = { - { "127.0.0.1", "v1:127.0.0.1:0/0", "" }, - { "127.0.0.1 foo", "v1:127.0.0.1:0/0", " foo" }, - { "127.0.0.1:1234 foo", "v1:127.0.0.1:1234/0", " foo" }, - { "127.0.0.1:1234/5678 foo", "v1:127.0.0.1:1234/5678", " foo" }, - { "2607:f298:4:2243::5522", "v1:[2607:f298:4:2243::5522]:0/0", "" }, - { "[2607:f298:4:2243::5522]", "v1:[2607:f298:4:2243::5522]:0/0", "" }, - { "[2607:f298:4:2243::5522]a", "v1:[2607:f298:4:2243::5522]:0/0", "a" }, - { "[2607:f298:4:2243::5522]:1234a", "v1:[2607:f298:4:2243::5522]:1234/0", "a" }, - { "2001:0db8:85a3:0000:0000:8a2e:0370:7334", "v1:[2001:db8:85a3::8a2e:370:7334]:0/0", "" }, - { "2001:2db8:85a3:4334:4324:8a2e:1370:7334", "v1:[2001:2db8:85a3:4334:4324:8a2e:1370:7334]:0/0", "" }, + { "v1:127.0.0.1", "v1:127.0.0.1:0/0", "" }, + { "v1:127.0.0.1 foo", "v1:127.0.0.1:0/0", " foo" }, + { "v1:127.0.0.1:1234 foo", "v1:127.0.0.1:1234/0", " foo" }, + { "v1:127.0.0.1:1234/5678 foo", "v1:127.0.0.1:1234/5678", " foo" }, + { "v1:2607:f298:4:2243::5522", "v1:[2607:f298:4:2243::5522]:0/0", "" }, + { "v1:[2607:f298:4:2243::5522]", "v1:[2607:f298:4:2243::5522]:0/0", "" }, + { "v1:[2607:f298:4:2243::5522]a", "v1:[2607:f298:4:2243::5522]:0/0", "a" }, + { "v1:[2607:f298:4:2243::5522]:1234a", "v1:[2607:f298:4:2243::5522]:1234/0", "a" }, + { "v1:2001:0db8:85a3:0000:0000:8a2e:0370:7334", "v1:[2001:db8:85a3::8a2e:370:7334]:0/0", "" }, + { "v1:2001:2db8:85a3:4334:4324:8a2e:1370:7334", "v1:[2001:2db8:85a3:4334:4324:8a2e:1370:7334]:0/0", "" }, { "v1:1.2.3.4", "v1:1.2.3.4:0/0", "" }, { "v1:1.2.3.4:12", "v1:1.2.3.4:12/0", "" }, { "v1:1.2.3.4:12/34", "v1:1.2.3.4:12/34", "" }, @@ -98,6 +100,7 @@ TEST(Msgr, TestAddrEncodeAddrvecDecode) addr.encode(bl, 0); auto bli = bl.cbegin(); addrvec.decode(bli); + cout << addr_checks2[i][0] << " " << addr << " " << addrvec << std::endl; ASSERT_EQ(addr, addrvec.v[0]); } } @@ -240,10 +243,10 @@ TEST(Msgr, TestAddrvecEncodeAddrDecode3) } const char *addrvec_parse_checks[][3] = { - { "127.0.0.1", "v1:127.0.0.1:0/0", "" }, - { "127.0.0.1 foo", "v1:127.0.0.1:0/0", " foo" }, - { "127.0.0.1 1.2.3.4 foo", "[v1:127.0.0.1:0/0,v1:1.2.3.4:0/0]", " foo" }, - { "127.0.0.1 :: - foo", "[v1:127.0.0.1:0/0,v1:[::]:0/0,-]", " foo" }, + { "127.0.0.1", "v2:127.0.0.1:0/0", "" }, + { "127.0.0.1 foo", "v2:127.0.0.1:0/0", " foo" }, + { "127.0.0.1 1.2.3.4 foo", "[v2:127.0.0.1:0/0,v2:1.2.3.4:0/0]", " foo" }, + { "127.0.0.1 :: - foo", "[v2:127.0.0.1:0/0,v2:[::]:0/0,-]", " foo" }, { NULL, NULL, NULL }, }; -- 2.39.5