]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
msg/msg_types: entity_addrvec_t: require brackets for size >1
authorSage Weil <sage@redhat.com>
Thu, 10 Jan 2019 19:53:55 +0000 (13:53 -0600)
committerSage Weil <sage@redhat.com>
Wed, 16 Jan 2019 14:31:43 +0000 (08:31 -0600)
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 <sage@redhat.com>
src/msg/msg_types.cc
src/test/cli/monmaptool/add-many.t
src/test/test_addrs.cc

index d03b3a52f287696df72cde9c93d333e122c8f46c..705b59575f7f3d1971bf7fc2f97fccf1c2f1eb3c 100644 (file)
@@ -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;
     }
index 0ae4e71731b0d92013ff7d6f91542e8902765cb5..ab37ebae6704df06dc995828bc31c5453be2649f 100644 (file)
@@ -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
index 6a7ba8f628d5c11a96cca71a80f5ed83f75b3c30..75f76c78e9da3b96375ad768549a3618b8a19818 100644 (file)
@@ -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 },
 };