25#ifndef SOCKET_CONNECTION_INCLUDED
26#define SOCKET_CONNECTION_INCLUDED
49#ifdef HAVE_PSI_STATEMENT_INTERFACE
136 struct select_info_t {
137 fd_set m_read_fds, m_client_fds;
139 select_info_t() : m_max_used_connection(0) { FD_ZERO(&m_client_fds); }
142 select_info_t m_select_info;
165 bool use_separate_thread_for_admin,
uint backlog,
166 uint port_timeout, std::string unix_sockname);
This abstract base class represents connection channel information about a new connection.
Definition: channel_info.h:46
This class represents the Mysqld_socket_listener which prepares the listener sockets to receive conne...
Definition: socket_connection.h:105
void close_listener()
Close the listener.
Definition: socket_connection.cc:1441
std::string m_unix_sockname
Definition: socket_connection.h:122
void setup_connection_events(const socket_vector_t &socket_vector)
Set up connection events for poll or select.
Definition: socket_connection.cc:887
uint m_port_timeout
Definition: socket_connection.h:121
bool m_use_separate_thread_for_admin
Definition: socket_connection.h:118
uint m_backlog
Definition: socket_connection.h:120
MYSQL_SOCKET m_admin_interface_listen_socket
Definition: socket_connection.h:126
uint m_tcp_port
Definition: socket_connection.h:116
std::list< Bind_address_info > m_bind_addresses
Definition: socket_connection.h:110
bool m_unlink_sockname
Definition: socket_connection.h:123
Channel_info * listen_for_connection_event()
The body of the event loop that listen for connection events from clients.
Definition: socket_connection.cc:1347
const Listen_socket * get_listen_socket() const
Get a socket ready to accept incoming connection.
Definition: socket_connection.cc:1305
uint m_admin_tcp_port
Definition: socket_connection.h:117
bool setup_listener()
Set up a listener - set of sockets to listen for connection events from clients.
Definition: socket_connection.cc:1249
poll_info_t m_poll_info
Definition: socket_connection.h:134
~Mysqld_socket_listener()
Definition: socket_connection.h:198
Bind_address_info m_admin_bind_address
Definition: socket_connection.h:115
Mysqld_socket_listener(const std::list< Bind_address_info > &bind_addresses, uint tcp_port, const Bind_address_info &admin_bind_addr, uint admin_tcp_port, bool use_separate_thread_for_admin, uint backlog, uint port_timeout, std::string unix_sockname)
Constructor to setup a listener for listen to connect events from clients.
Definition: socket_connection.cc:838
void add_socket_to_listener(MYSQL_SOCKET listen_socket)
Add a socket to a set of sockets being waiting for a new connection request.
Definition: socket_connection.cc:871
bool check_and_spawn_admin_connection_handler_thread() const
Spawn admin connection handler thread if separate thread is required to accept admin connections.
Definition: socket_connection.cc:1239
socket_vector_t m_socket_vector
Definition: socket_connection.h:125
Fido Client Authentication nullptr
Definition: fido_client_plugin.cc:221
Defines various enable/disable and HAVE_ macros related to the performance schema instrumentation sys...
int my_socket
Definition: mysql.h:64
static uint tcp_port
Definition: mysqladmin.cc:69
stdx::expected< native_handle_type, error_type > socket(int family, int sock_type, int protocol)
Definition: socket.h:62
Performance schema instrumentation interface.
required string network_namespace
Definition: replication_asynchronous_connection_failover.proto:33
std::vector< Listen_socket > socket_vector_t
Definition: socket_connection.h:80
ulong get_connection_errors_query_block()
Definition: socket_connection.cc:122
const char * ipv6_all_addresses
Definition: socket_connection.cc:295
Socket_interface_type
Definition: socket_connection.h:56
const char * ipv4_all_addresses
Definition: socket_connection.cc:293
Socket_type
Definition: socket_connection.h:54
ulong get_connection_errors_accept()
Definition: socket_connection.cc:126
PSI_statement_info stmt_info_new_packet
Definition: init_net_server_extension.cc:49
const char * MY_BIND_ALL_ADDRESSES
MY_BIND_ALL_ADDRESSES defines a special value for the bind-address option, which means that the serve...
Definition: socket_connection.cc:291
ulong get_connection_errors_tcpwrap()
Definition: socket_connection.cc:128
Plain structure to collect together a host name/ip address and a corresponding network namespace if s...
Definition: socket_connection.h:87
std::string network_namespace
Definition: socket_connection.h:88
Bind_address_info(const std::string &addr)
Definition: socket_connection.h:91
Bind_address_info()=default
Bind_address_info(const std::string &addr, const std::string &nspace)
Definition: socket_connection.h:93
std::string address
Definition: socket_connection.h:88
Definition: socket_connection.h:58
Socket_type m_socket_type
Definition: socket_connection.h:72
const std::string * m_network_namespace
Definition: socket_connection.h:73
Socket_interface_type m_socket_interface
Definition: socket_connection.h:75
Listen_socket(MYSQL_SOCKET socket, Socket_type socket_type, const std::string *network_namespace, Socket_interface_type socket_interface)
Definition: socket_connection.h:64
Listen_socket(MYSQL_SOCKET socket, Socket_type socket_type)
Definition: socket_connection.h:59
MYSQL_SOCKET m_socket
Definition: socket_connection.h:71
An instrumented socket.
Definition: mysql_socket_bits.h:34
Definition: socket_connection.h:129
std::vector< struct pollfd > m_fds
Definition: socket_connection.h:130
std::vector< MYSQL_SOCKET > m_pfs_fds
Definition: socket_connection.h:131
Statement instrument information.
Definition: psi_statement_bits.h:132
unsigned int uint
Definition: uca9-dump.cc:74