26#ifndef SOCKET_CONNECTION_INCLUDED
27#define SOCKET_CONNECTION_INCLUDED
50#ifdef HAVE_PSI_STATEMENT_INTERFACE
137 struct select_info_t {
138 fd_set m_read_fds, m_client_fds;
140 select_info_t() : m_max_used_connection(0) { FD_ZERO(&m_client_fds); }
143 select_info_t m_select_info;
166 bool use_separate_thread_for_admin, uint backlog,
167 uint port_timeout, std::string unix_sockname);
Kerberos Client Authentication nullptr
Definition: auth_kerberos_client_plugin.cc:251
This abstract base class represents connection channel information about a new connection.
Definition: channel_info.h:47
This class represents the Mysqld_socket_listener which prepares the listener sockets to receive conne...
Definition: socket_connection.h:106
void close_listener()
Close the listener.
Definition: socket_connection.cc:1443
std::string m_unix_sockname
Definition: socket_connection.h:123
void setup_connection_events(const socket_vector_t &socket_vector)
Set up connection events for poll or select.
Definition: socket_connection.cc:888
uint m_port_timeout
Definition: socket_connection.h:122
bool m_use_separate_thread_for_admin
Definition: socket_connection.h:119
uint m_backlog
Definition: socket_connection.h:121
MYSQL_SOCKET m_admin_interface_listen_socket
Definition: socket_connection.h:127
uint m_tcp_port
Definition: socket_connection.h:117
std::list< Bind_address_info > m_bind_addresses
Definition: socket_connection.h:111
bool m_unlink_sockname
Definition: socket_connection.h:124
Channel_info * listen_for_connection_event()
The body of the event loop that listen for connection events from clients.
Definition: socket_connection.cc:1349
const Listen_socket * get_listen_socket() const
Get a socket ready to accept incoming connection.
Definition: socket_connection.cc:1307
uint m_admin_tcp_port
Definition: socket_connection.h:118
bool setup_listener()
Set up a listener - set of sockets to listen for connection events from clients.
Definition: socket_connection.cc:1251
poll_info_t m_poll_info
Definition: socket_connection.h:135
~Mysqld_socket_listener()
Definition: socket_connection.h:199
Bind_address_info m_admin_bind_address
Definition: socket_connection.h:116
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:839
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:872
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:1241
socket_vector_t m_socket_vector
Definition: socket_connection.h:126
Defines various enable/disable and HAVE_ macros related to the performance schema instrumentation sys...
int my_socket
Definition: mysql.h:65
static uint tcp_port
Definition: mysqladmin.cc:76
stdx::expected< native_handle_type, error_type > socket(int family, int sock_type, int protocol)
Definition: socket.h:63
Performance schema instrumentation interface.
required string network_namespace
Definition: replication_asynchronous_connection_failover.proto:34
std::vector< Listen_socket > socket_vector_t
Definition: socket_connection.h:81
ulong get_connection_errors_query_block()
Definition: socket_connection.cc:123
const char * ipv6_all_addresses
Definition: socket_connection.cc:296
Socket_interface_type
Definition: socket_connection.h:57
const char * ipv4_all_addresses
Definition: socket_connection.cc:294
Socket_type
Definition: socket_connection.h:55
ulong get_connection_errors_accept()
Definition: socket_connection.cc:127
PSI_statement_info stmt_info_new_packet
Definition: init_net_server_extension.cc:50
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:292
ulong get_connection_errors_tcpwrap()
Definition: socket_connection.cc:129
Plain structure to collect together a host name/ip address and a corresponding network namespace if s...
Definition: socket_connection.h:88
std::string network_namespace
Definition: socket_connection.h:89
Bind_address_info(const std::string &addr)
Definition: socket_connection.h:92
Bind_address_info()=default
Bind_address_info(const std::string &addr, const std::string &nspace)
Definition: socket_connection.h:94
std::string address
Definition: socket_connection.h:89
Definition: socket_connection.h:59
Socket_type m_socket_type
Definition: socket_connection.h:73
const std::string * m_network_namespace
Definition: socket_connection.h:74
Socket_interface_type m_socket_interface
Definition: socket_connection.h:76
Listen_socket(MYSQL_SOCKET socket, Socket_type socket_type, const std::string *network_namespace, Socket_interface_type socket_interface)
Definition: socket_connection.h:65
Listen_socket(MYSQL_SOCKET socket, Socket_type socket_type)
Definition: socket_connection.h:60
MYSQL_SOCKET m_socket
Definition: socket_connection.h:72
An instrumented socket.
Definition: mysql_socket_bits.h:35
Definition: socket_connection.h:130
std::vector< struct pollfd > m_fds
Definition: socket_connection.h:131
std::vector< MYSQL_SOCKET > m_pfs_fds
Definition: socket_connection.h:132
Statement instrument information.
Definition: psi_statement_bits.h:133