]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
msg/async: let client specify preferred order of modes
authorSage Weil <sage@redhat.com>
Wed, 6 Feb 2019 23:43:42 +0000 (17:43 -0600)
committerSage Weil <sage@redhat.com>
Thu, 7 Feb 2019 18:10:34 +0000 (12:10 -0600)
The server side has an allowed list, while the client has an ordered list
in order of preference.

Note that some of the options are used as both (e.g., cluster_modes) as they
are used at both connecting and accepting ends of the connection.

Signed-off-by: Sage Weil <sage@redhat.com>
src/common/options.cc
src/msg/async/ProtocolV2.cc

index 1449abf9d51d00b82bf503de1e50dad222790ed2..5fd88dacacf310cb0563ba3feacc85ebe8937256 100644 (file)
@@ -850,7 +850,7 @@ std::vector<Option> get_global_options() {
 
     Option("ms_mon_service_mode", Option::TYPE_STR, Option::LEVEL_BASIC)
     .set_default("crc secure")
-    .set_description("Connection modes (crc, secure) for connections to mons in order of preference")
+    .set_description("Allowed connection modes (crc, secure) for connections to mons")
     .add_see_also("ms_service_mode")
     .add_see_also("ms_mon_cluster_mode")
     .add_see_also("ms_cluster_mode")
@@ -864,7 +864,7 @@ std::vector<Option> get_global_options() {
 
     Option("ms_service_mode", Option::TYPE_STR, Option::LEVEL_BASIC)
     .set_default("crc secure")
-    .set_description("Connection modes (crc, secure) for connections to daemons in order of preference")
+    .set_description("Allowed connection modes (crc, secure) for connections to daemons")
     .add_see_also("ms_cluster_mode")
     .add_see_also("ms_client_mode"),
 
index 727e3aed42659870b0a1e85a9fbfaf69bf93c150..234a0455d5f5b266fde2e80e084a8026fa756cbb 100644 (file)
@@ -2427,9 +2427,9 @@ CtPtr ProtocolV2::handle_auth_request(char *payload, uint32_t length) {
   std::vector<uint32_t> allowed_modes;
   messenger->auth_server->get_supported_con_modes(
     connection->get_peer_type(), auth_meta->auth_method, &allowed_modes);
-  for (auto mode : allowed_modes) {
-    if (std::find(preferred_modes.begin(), preferred_modes.end(), mode)
-       != preferred_modes.end()) {
+  for (auto mode : preferred_modes) {
+    if (std::find(allowed_modes.begin(), allowed_modes.end(), mode)
+       != allowed_modes.end()) {
       auth_meta->con_mode = mode;
       break;
     }