From: Sage Weil Date: Thu, 10 Jan 2019 19:53:55 +0000 (-0600) Subject: msg/msg_types: entity_addrvec_t: require brackets for size >1 X-Git-Tag: v14.1.0~357^2~5 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=8925bb4b6098b6e7230918da33277f14f0df524d;p=ceph.git msg/msg_types: entity_addrvec_t: require brackets for size >1 Allowing us to parse "1.2.3.4,5.6.7.8" means we can't unambiguously differentiate between one addrvec and a list of addrvecs, which we'll want/need to do later. Signed-off-by: Sage Weil --- diff --git a/src/msg/msg_types.cc b/src/msg/msg_types.cc index d03b3a52f287..705b59575f7f 100644 --- a/src/msg/msg_types.cc +++ b/src/msg/msg_types.cc @@ -261,6 +261,9 @@ bool entity_addrvec_t::parse(const char *s, const char **end) } v.push_back(a); s = *end; + if (!brackets) { + break; + } if (*s != ',') { break; } diff --git a/src/test/cli/monmaptool/add-many.t b/src/test/cli/monmaptool/add-many.t index 0ae4e71731b0..ab37ebae6704 100644 --- a/src/test/cli/monmaptool/add-many.t +++ b/src/test/cli/monmaptool/add-many.t @@ -14,7 +14,7 @@ $ monmaptool --add baz 4.5.6.7:8901 mymonmap monmaptool: monmap file mymonmap monmaptool: writing epoch 0 to mymonmap (3 monitors) - $ monmaptool --addv fiz v2:172.21.15.68:6791,v1:172.21.15.68:6792 mymonmap + $ monmaptool --addv fiz '[v2:172.21.15.68:6791,v1:172.21.15.68:6792]' mymonmap monmaptool: monmap file mymonmap monmaptool: writing epoch 0 to mymonmap (4 monitors) $ monmaptool --print mymonmap diff --git a/src/test/test_addrs.cc b/src/test/test_addrs.cc index 6a7ba8f628d5..75f76c78e9da 100644 --- a/src/test/test_addrs.cc +++ b/src/test/test_addrs.cc @@ -258,14 +258,15 @@ const char *addrvec_parse_checks[][3] = { { " foo", "", " 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" }, + { "[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,::,- foo", "v2:127.0.0.1:0/0", ",::,- foo" }, { "[127.0.0.1,::,-] foo", "[v2:127.0.0.1:0/0,v2:[::]:0/0,-]", " foo" }, { "[127.0.0.1,::],- foo", "[v2:127.0.0.1:0/0,v2:[::]:0/0]", ",- foo" }, { "[1.2.3.4,::,foo]", "", "[1.2.3.4,::,foo]" }, { "[1.2.3.4,::,- foo", "", "[1.2.3.4,::,- foo" }, { "[[::],1.2.3.4]", "[v2:[::]:0/0,v2:1.2.3.4:0/0]", "" }, - { "[::],1.2.3.4", "[v2:[::]:0/0,v2:1.2.3.4:0/0]", "" }, + { "[::],1.2.3.4", "v2:[::]:0/0", ",1.2.3.4" }, { NULL, NULL, NULL }, };