MySQL 8.0.39
Source Code Documentation
|
This class represents the Mysqld_socket_listener which prepares the listener sockets to receive connection events from the client. More...
#include <socket_connection.h>
Classes | |
struct | poll_info_t |
Public Member Functions | |
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. More... | |
bool | setup_listener () |
Set up a listener - set of sockets to listen for connection events from clients. More... | |
Channel_info * | listen_for_connection_event () |
The body of the event loop that listen for connection events from clients. More... | |
void | close_listener () |
Close the listener. More... | |
~Mysqld_socket_listener () | |
bool | check_and_spawn_admin_connection_handler_thread () const |
Spawn admin connection handler thread if separate thread is required to accept admin connections. More... | |
Private Member Functions | |
void | add_socket_to_listener (MYSQL_SOCKET listen_socket) |
Add a socket to a set of sockets being waiting for a new connection request. More... | |
const Listen_socket * | get_listen_socket () const |
Get a socket ready to accept incoming connection. More... | |
void | setup_connection_events (const socket_vector_t &socket_vector) |
Set up connection events for poll or select. More... | |
Private Attributes | |
std::list< Bind_address_info > | m_bind_addresses |
Bind_address_info | m_admin_bind_address |
uint | m_tcp_port |
uint | m_admin_tcp_port |
bool | m_use_separate_thread_for_admin |
uint | m_backlog |
uint | m_port_timeout |
std::string | m_unix_sockname |
bool | m_unlink_sockname |
socket_vector_t | m_socket_vector |
MYSQL_SOCKET | m_admin_interface_listen_socket |
poll_info_t | m_poll_info |
This class represents the Mysqld_socket_listener which prepares the listener sockets to receive connection events from the client.
The Mysqld_socket_listener may be composed of either or both a tcp socket which listens on a default mysqld tcp port or a user specified port via mysqld command-line and a unix socket which is bound to a mysqld default pathname.
Mysqld_socket_listener::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.
bind_addresses | list of addresses to listen to |
tcp_port | TCP port to bind to |
admin_bind_addr | address to listen admin connection |
admin_tcp_port | TCP port for admin connection to bind |
use_separate_thread_for_admin | Listen to connection requests on admin interface in a separate thread |
backlog | backlog specifying length of pending connection queue used in listen. |
port_timeout | portname. |
unix_sockname | pathname for unix socket to bind to |
|
inline |
|
private |
Add a socket to a set of sockets being waiting for a new connection request.
listen_socket | Socket to listen for. |
bool Mysqld_socket_listener::check_and_spawn_admin_connection_handler_thread | ( | ) | const |
Spawn admin connection handler thread if separate thread is required to accept admin connections.
void Mysqld_socket_listener::close_listener | ( | ) |
Close the listener.
In case a server is started with the option use_separate_thread_for_admin=true this method also shutdowns a thread for handling of incoming connection requests on admin interface and joins it.
|
private |
Get a socket ready to accept incoming connection.
Channel_info * Mysqld_socket_listener::listen_for_connection_event | ( | ) |
The body of the event loop that listen for connection events from clients.
Channel_info | Channel_info object abstracting the connected client details for processing this connection. |
|
private |
Set up connection events for poll or select.
socket_vector | sockets to listen for connection requests. |
bool Mysqld_socket_listener::setup_listener | ( | ) |
Set up a listener - set of sockets to listen for connection events from clients.
In case a server is started with the option use_separate_thread_for_admin=true invocation of this method also spawns a thread to handle incoming connection requests on admin interface.
false | listener sockets setup to be used to listen for connect events true failure in setting up the listener. |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |