MySQL 8.0.39
Source Code Documentation
mysql_routing.cc File Reference
#include "mysql_routing.h"
#include <algorithm>
#include <array>
#include <chrono>
#include <memory>
#include <mutex>
#include <sstream>
#include <stdexcept>
#include <system_error>
#include <thread>
#include <type_traits>
#include <sys/types.h>
#include <sys/stat.h>
#include "classic_connection.h"
#include "connection.h"
#include "dest_first_available.h"
#include "dest_metadata_cache.h"
#include "dest_next_available.h"
#include "dest_round_robin.h"
#include "destination_ssl_context.h"
#include "hostname_validator.h"
#include "my_thread.h"
#include "mysql/harness/filesystem.h"
#include "mysql/harness/loader.h"
#include "mysql/harness/logging/logging.h"
#include "mysql/harness/net_ts/executor.h"
#include "mysql/harness/net_ts/impl/resolver.h"
#include "mysql/harness/net_ts/impl/socket.h"
#include "mysql/harness/net_ts/impl/socket_constants.h"
#include "mysql/harness/net_ts/internet.h"
#include "mysql/harness/net_ts/io_context.h"
#include "mysql/harness/net_ts/local.h"
#include "mysql/harness/net_ts/timer.h"
#include "mysql/harness/plugin.h"
#include "mysql/harness/stdx/expected.h"
#include "mysql/harness/stdx/io/file_handle.h"
#include "mysql/harness/string_utils.h"
#include "mysql/harness/tls_server_context.h"
#include "mysql/harness/utility/string.h"
#include "mysqlrouter/io_component.h"
#include "mysqlrouter/io_thread.h"
#include "mysqlrouter/metadata_cache.h"
#include "mysqlrouter/routing.h"
#include "mysqlrouter/uri.h"
#include "mysqlrouter/utils.h"
#include "plugin_config.h"
#include "protocol/base_protocol.h"
#include "protocol/protocol.h"
#include "scope_guard.h"
#include "ssl_mode.h"
#include "tcp_address.h"
#include "x_connection.h"

Classes

class  Owner
 a simple move-only type to track ownership. More...
 
class  Acceptor< Protocol >
 

Namespaces

namespace  anonymous_namespace{mysql_routing.cc}
 

Functions

static stdx::expected< size_t, std::error_code > encode_initial_error_packet (BaseProtocol::Type protocol, std::vector< uint8_t > &error_frame, uint32_t error_code, const std::string &msg, const std::string &sql_state)
 encode a initial error-msg into a buffer. More...
 
std::string anonymous_namespace{mysql_routing.cc}::get_accepting_endpoints_list (const std::vector< std::unique_ptr< AcceptingEndpoint > > &accepting_endpoints)
 
routing::RoutingStrategy anonymous_namespace{mysql_routing.cc}::get_default_routing_strategy (const routing::AccessMode access_mode)
 
std::unique_ptr< RouteDestinationanonymous_namespace{mysql_routing.cc}::create_standalone_destination (net::io_context &io_ctx, const routing::RoutingStrategy strategy, const Protocol::Type protocol)
 

Variables

static const int kListenQueueSize {1024}
 

Function Documentation

◆ encode_initial_error_packet()

static stdx::expected< size_t, std::error_code > encode_initial_error_packet ( BaseProtocol::Type  protocol,
std::vector< uint8_t > &  error_frame,
uint32_t  error_code,
const std::string &  msg,
const std::string &  sql_state 
)
static

encode a initial error-msg into a buffer.

Assumes that no capability exchange happened yet. For classic-protocol that means Error messages will be encoded in 3.23 format.

works for error-packets that are encoded by the Acceptor.

Variable Documentation

◆ kListenQueueSize

const int kListenQueueSize {1024}
static