diff --git a/generic_server.cc b/generic_server.cc index d2820b86e4..6fe1b9d6ae 100644 --- a/generic_server.cc +++ b/generic_server.cc @@ -129,6 +129,10 @@ future<> connection::process() }); } +void connection::on_connection_ready() +{ +} + void connection::on_connection_close() { } diff --git a/generic_server.hh b/generic_server.hh index ab5e1954ee..f2e8976aa2 100644 --- a/generic_server.hh +++ b/generic_server.hh @@ -62,6 +62,8 @@ public: virtual future<> process_request() = 0; + virtual void on_connection_ready(); + virtual void on_connection_close(); virtual future<> shutdown(); diff --git a/redis/server.cc b/redis/server.cc index b9f508ea8c..dcf308edd4 100644 --- a/redis/server.cc +++ b/redis/server.cc @@ -108,6 +108,7 @@ future<> redis_server::connection::process_request() { _pending_requests_gate.enter(); utils::latency_counter lc; lc.start(); + on_connection_ready(); auto leave = defer([this] () noexcept { _pending_requests_gate.leave(); }); return process_request_internal().then([this, leave = std::move(leave), lc = std::move(lc)] (auto&& result) mutable { --_server._stats._requests_serving; diff --git a/transport/server.cc b/transport/server.cc index b124592572..1045bb244d 100644 --- a/transport/server.cc +++ b/transport/server.cc @@ -934,6 +934,7 @@ future> cql_server::connection::process_st } } else { _ready = true; + on_connection_ready(); res = make_ready(stream, trace_state); } @@ -967,6 +968,7 @@ future> cql_server::connection::process_au return f.then([this, stream, challenge = std::move(challenge), trace_state]() mutable { _authenticating = false; _ready = true; + on_connection_ready(); return make_ready_future>(make_auth_success(stream, std::move(challenge), trace_state)); }); }); @@ -1324,6 +1326,7 @@ cql_server::connection::process_register(uint16_t stream, request_reader in, ser _server._notifier->register_event(et, this); } _ready = true; + on_connection_ready(); return make_ready_future>(make_ready(stream, std::move(trace_state))); }