24#ifndef MYSQL_CLONE_PROTOCOL_SERVICE 
   25#define MYSQL_CLONE_PROTOCOL_SERVICE 
   83               (
THD * &thd, 
unsigned int thread_key,
 
   84                unsigned int statement_key));
 
  158                unsigned char command, 
unsigned char *com_buffer,
 
  159                size_t buffer_length));
 
  174                unsigned char **packet, 
size_t *
length, 
size_t *net_length));
 
  193               (
THD * thd, 
MYSQL *connection, 
bool is_fatal, 
bool clear_error));
 
  201               (
THD * thd, uint32_t *err_num, 
const char **err_mesg));
 
  212               (
THD * thd, 
unsigned char *
command, 
unsigned char **com_buffer,
 
  213                size_t *buffer_length));
 
  224               (
THD * thd, 
bool secure, 
unsigned char *packet, 
size_t length));
 
  234               (
THD * thd, 
unsigned char err_cmd, 
bool is_fatal));
 
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:36
 
int mysql_clone_send_response(THD *thd, bool secure, uchar *packet, size_t length) noexcept
Send response to client.
Definition: clone_protocol_service.cc:711
 
int mysql_clone_send_command(THD *thd, MYSQL *connection, bool set_active, uchar command, uchar *com_buffer, size_t buffer_length) noexcept
Execute clone command on remote server.
Definition: clone_protocol_service.cc:475
 
int mysql_clone_kill(MYSQL *connection, MYSQL *kill_connection) noexcept
Kill a remote connection.
Definition: clone_protocol_service.cc:603
 
void mysql_clone_finish_statement(THD *thd) noexcept
Finish statement and session.
Definition: clone_protocol_service.cc:132
 
void mysql_clone_disconnect(THD *thd, MYSQL *mysql, bool is_fatal, bool clear_error) noexcept
Disconnect from a remote server.
Definition: clone_protocol_service.cc:618
 
int mysql_clone_get_response(THD *thd, MYSQL *connection, bool set_active, uint32_t timeout, uchar **packet, size_t *length, size_t *net_length) noexcept
Get response from remote server.
Definition: clone_protocol_service.cc:513
 
int mysql_clone_send_error(THD *thd, uchar err_cmd, bool is_fatal) noexcept
Send error to client.
Definition: clone_protocol_service.cc:739
 
int mysql_clone_get_charsets(THD *thd, Mysql_Clone_Values &char_sets) noexcept
Get all character set and collations.
Definition: clone_protocol_service.cc:146
 
void mysql_clone_get_error(THD *thd, uint32_t *err_num, const char **err_mesg) noexcept
Get error number and message.
Definition: clone_protocol_service.cc:646
 
void mysql_clone_start_statement(THD *&thd, PSI_thread_key thread_key, PSI_statement_key statement_key) noexcept
Start and set session and statement key form current thread.
Definition: clone_protocol_service.cc:91
 
int mysql_clone_get_configs(THD *thd, Mysql_Clone_Key_Values &configs) noexcept
Get system configuration parameter values.
Definition: clone_protocol_service.cc:230
 
int mysql_clone_validate_charsets(THD *thd, Mysql_Clone_Values &char_sets) noexcept
Check if all characters sets are supported by server.
Definition: clone_protocol_service.cc:168
 
MYSQL * mysql_clone_connect(THD *thd, const char *host, uint32_t port, const char *user, const char *passwd, mysql_clone_ssl_context *ssl_ctx, MYSQL_SOCKET *socket) noexcept
Connect to a remote server and switch to clone protocol.
Definition: clone_protocol_service.cc:354
 
int mysql_clone_get_command(THD *thd, uchar *command, uchar **com_buffer, size_t *buffer_length) noexcept
Get command from client.
Definition: clone_protocol_service.cc:666
 
int mysql_clone_validate_configs(THD *thd, Mysql_Clone_Key_Values &configs) noexcept
Check if configuration parameter values match.
Definition: clone_protocol_service.cc:294
 
std::vector< std::pair< std::string, std::string > > Mysql_Clone_Key_Values
Vector of string Key-Value pairs.
Definition: clone_protocol_service.h:72
 
std::vector< std::string > Mysql_Clone_Values
Vector of string values.
Definition: clone_protocol_service.h:69
 
Definitions private to the server, used in the networking layer to notify specific events.
 
char * user
Definition: mysqladmin.cc:66
 
const char * host
Definition: mysqladmin.cc:65
 
bool length(const dd::Spatial_reference_system *srs, const Geometry *g1, double *length, bool *null) noexcept
Computes the length of linestrings and multilinestrings.
Definition: length.cc:76
 
static bool timeout(bool(*wait_condition)())
Timeout function.
Definition: log0meb.cc:498
 
stdx::expected< native_handle_type, error_type > socket(int family, int sock_type, int protocol)
Definition: socket.h:63
 
void set_active(space_id_t space_id)
Set an undo tablespace active.
Definition: trx0purge.cc:1138
 
required uint64 port
Definition: replication_asynchronous_connection_failover.proto:33
 
#define DECLARE_METHOD(retval, name, args)
Declares a method as a part of the Service definition.
Definition: service.h:103
 
#define END_SERVICE_DEFINITION(name)
A macro to end the last Service definition started with the BEGIN_SERVICE_DEFINITION macro.
Definition: service.h:91
 
#define BEGIN_SERVICE_DEFINITION(name)
Declares a new Service.
Definition: service.h:86
 
An instrumented socket.
Definition: mysql_socket_bits.h:35
 
Definition: mysql_com_server.h:59
 
Connection parameters including SSL.
Definition: clone_protocol_service.h:53
 
int m_ssl_mode
Clone ssl mode.
Definition: clone_protocol_service.h:55
 
NET_SERVER * m_server_extn
Definition: clone_protocol_service.h:65
 
const char * m_ssl_key
Clone ssl private key.
Definition: clone_protocol_service.h:57
 
bool m_enable_compression
Enable network compression.
Definition: clone_protocol_service.h:64
 
const char * m_ssl_ca
Clone ssl certificate authority.
Definition: clone_protocol_service.h:61
 
const char * m_ssl_cert
Clone ssl certificate.
Definition: clone_protocol_service.h:59
 
command
Definition: version_token.cc:280