/* * Copyright (C) 2019-present ScyllaDB */ /* * SPDX-License-Identifier: AGPL-3.0-or-later */ #pragma once #include #include #include "seastarx.hh" #include enum class client_type { cql = 0, thrift, alternator, }; sstring to_string(client_type ct); enum class client_connection_stage { established = 0, authenticating, ready, }; sstring to_string(client_connection_stage ct); // Representation of a row in `system.clients'. std::optionals are for nullable cells. struct client_data { net::inet_address ip; int32_t port; client_type ct; client_connection_stage connection_stage = client_connection_stage::established; int32_t shard_id; /// ID of server-side shard which is processing the connection. std::optional driver_name; std::optional driver_version; std::optional hostname; std::optional protocol_version; std::optional ssl_cipher_suite; std::optional ssl_enabled; std::optional ssl_protocol; std::optional username; sstring stage_str() const { return to_string(connection_stage); } sstring client_type_str() const { return to_string(ct); } };