From: Radoslaw Zarzynski Date: Wed, 8 Sep 2021 19:27:44 +0000 (+0000) Subject: crimson/net: decouple listen_ertr from FixedCPUServerSocket. X-Git-Tag: v17.1.0~883^2~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7f85b51161ababa843dc64beb880b53bc02ffc85;p=ceph.git crimson/net: decouple listen_ertr from FixedCPUServerSocket. Signed-off-by: Radoslaw Zarzynski --- diff --git a/src/crimson/net/Socket.cc b/src/crimson/net/Socket.cc index a2a7b1701b81..baecdf7561ff 100644 --- a/src/crimson/net/Socket.cc +++ b/src/crimson/net/Socket.cc @@ -198,7 +198,7 @@ void Socket::set_trap(bp_type_t type, bp_action_t action, socket_blocker* blocke } #endif -FixedCPUServerSocket::listen_ertr::future<> +crimson::net::listen_ertr::future<> FixedCPUServerSocket::listen(entity_addr_t addr) { assert(seastar::this_shard_id() == cpu); diff --git a/src/crimson/net/Socket.h b/src/crimson/net/Socket.h index 9cb3006ea557..3a149cee1452 100644 --- a/src/crimson/net/Socket.h +++ b/src/crimson/net/Socket.h @@ -160,6 +160,10 @@ class Socket friend class FixedCPUServerSocket; }; +using listen_ertr = crimson::errorator< + crimson::ct_error::address_in_use // The address is already bound + >; + class FixedCPUServerSocket : public seastar::peering_sharded_service { const seastar::shard_id cpu; @@ -196,9 +200,6 @@ public: FixedCPUServerSocket(const FixedCPUServerSocket&) = delete; FixedCPUServerSocket& operator=(const FixedCPUServerSocket&) = delete; - using listen_ertr = crimson::errorator< - crimson::ct_error::address_in_use // The address is already bound - >; listen_ertr::future<> listen(entity_addr_t addr); // fn_accept should be a nothrow function of type diff --git a/src/test/crimson/test_socket.cc b/src/test/crimson/test_socket.cc index 49d6aef7d64d..4ba7c547fa43 100644 --- a/src/test/crimson/test_socket.cc +++ b/src/test/crimson/test_socket.cc @@ -21,6 +21,7 @@ using seastar::engine; using seastar::future; using crimson::net::error; using crimson::net::FixedCPUServerSocket; +using crimson::net::listen_ertr; using crimson::net::Socket; using crimson::net::SocketRef; using crimson::net::stop_t; @@ -75,7 +76,7 @@ future<> test_bind_same() { return pss2->listen(saddr).safe_then([] { logger.error("test_bind_same() should raise address_in_use"); ceph_abort(); - }, FixedCPUServerSocket::listen_ertr::all_same_way( + }, listen_ertr::all_same_way( [] (const std::error_code& e) { if (e == std::errc::address_in_use) { // successful! @@ -91,7 +92,7 @@ future<> test_bind_same() { return pss2->destroy(); }); }); - }, FixedCPUServerSocket::listen_ertr::all_same_way( + }, listen_ertr::all_same_way( [saddr] (const std::error_code& e) { logger.error("test_bind_same(): there is another instance running at {}", saddr); @@ -116,7 +117,7 @@ future<> test_accept() { return socket->close().finally([cleanup = std::move(socket)] {}); }); }); - }, FixedCPUServerSocket::listen_ertr::all_same_way( + }, listen_ertr::all_same_way( [saddr] (const std::error_code& e) { logger.error("test_accept(): there is another instance running at {}", saddr); @@ -162,7 +163,7 @@ class SocketFactory { return FixedCPUServerSocket::create().then([psf, saddr] (auto pss) { psf->pss = pss; return pss->listen(saddr - ).safe_then([]{}, FixedCPUServerSocket::listen_ertr::all_same_way( + ).safe_then([]{}, listen_ertr::all_same_way( [saddr] (const std::error_code& e) { logger.error("dispatch_sockets(): there is another instance running at {}", saddr);