]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/mon: use switch case for checking return code
authorKefu Chai <kchai@redhat.com>
Fri, 22 Jan 2021 02:31:10 +0000 (10:31 +0800)
committerKefu Chai <kchai@redhat.com>
Fri, 22 Jan 2021 10:54:28 +0000 (18:54 +0800)
also, since seastar supports returning plain value instead a ready
future, let's return plain value. simpler this way.

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/crimson/mon/MonClient.cc

index 4d66fd9792da55b2b22cf3cfd81d38c093d54af5..a76ce8f129f428c947b5d8e2df690474d37af886 100644 (file)
@@ -254,8 +254,7 @@ Connection::do_auth_single(Connection::request_t what)
     if (!m) {
       ceph_assert(closed);
       logger().info("do_auth: connection closed");
-      return seastar::make_ready_future<std::optional<Connection::auth_result_t>>(
-       std::make_optional(auth_result_t::canceled));
+      return std::make_optional(auth_result_t::canceled);
     }
     logger().info(
       "do_auth: mon {} => {} returns {}: {}",
@@ -264,19 +263,22 @@ Connection::do_auth_single(Connection::request_t what)
     auto p = m->result_bl.cbegin();
     auto ret = auth->handle_response(m->result, p,
                                     nullptr, nullptr);
-    if (ret != 0 && ret != -EAGAIN) {
+    std::optional<Connection::auth_result_t> auth_result;
+    switch (ret) {
+    case -EAGAIN:
+      auth_result = std::nullopt;
+      break;
+    case 0:
+      auth_result = auth_result_t::success;
+      break;
+    default:
+      auth_result = auth_result_t::failure;
       logger().error(
-       "do_auth: got error {} on mon {}",
-       ret,
-       conn->get_peer_addr());
+        "do_auth: got error {} on mon {}",
+        ret, conn->get_peer_addr());
+      break;
     }
-    return seastar::make_ready_future<std::optional<Connection::auth_result_t>>(
-      ret == -EAGAIN
-      ? std::nullopt
-      : std::make_optional(ret == 0
-        ? auth_result_t::success
-        : auth_result_t::failure
-      ));
+    return auth_result;
   });
 }