24#ifndef CONNECTION_DELAY_H
25#define CONNECTION_DELAY_H
46 bool exempt_unknown_users,
93 if ((min && new_value > current_max) || (!min && new_value < current_min)) {
132 void *new_value)
override;
173 std::vector<opt_connection_control, CustomAllocator<opt_connection_control>>
#define MYSQL_THD
Definition: backup_page_tracker.h:38
Definition: connection_control_memory.h:41
Connection event action to enforce max failed login constraint.
Definition: connection_delay.h:43
void get_priv_account(MYSQL_THD thd, Sql_string &s)
ulonglong get_wait_time(int64 count) const
Generates wait time.
Definition: connection_delay.h:146
int64 m_threshold
Threshold value which triggers wait.
Definition: connection_delay.h:165
void set_threshold(int64 threshold)
Set threshold value.
Definition: connection_delay.h:66
mysql_rwlock_t * m_lock
RW lock.
Definition: connection_delay.h:180
Connection_delay_action(int64 threshold, int64 min_delay, int64 max_delay, bool exempt_unknown_users, opt_connection_control *sys_vars, size_t sys_vars_size, stats_connection_control *status_vars, size_t status_vars_size, mysql_rwlock_t *lock)
Connection_delay_action Constructor.
Definition: connection_delay.cc:75
void make_hash_key(MYSQL_THD thd, Sql_string &s)
Create hash key of the format 'user'@'host'.
Definition: connection_delay.cc:104
void conditional_wait(ulonglong wait_time)
Wait till the wait_time expires or thread is killed.
Definition: connection_delay.cc:161
bool m_exempt_unknown_users
Do not apply delays for failing unauthenticated TCP connections.
Definition: connection_delay.h:171
void set_exempt_unknown_users(bool new_value)
Set if component should exempt un-authenticated connections from connection control.
Definition: connection_delay.h:117
int64 get_min_delay() const
Get min value.
Definition: connection_delay.h:109
int64 get_threshold() const
Get threshold value.
Definition: connection_delay.h:69
int64 m_max_delay
Upper cap on delay in msec to be generated.
Definition: connection_delay.h:169
bool set_delay(int64 new_value, bool min)
Set min/max delay.
Definition: connection_delay.h:83
void init(Connection_event_coordinator *coordinator)
Subscribe with coordinator for connection events.
Definition: connection_delay.cc:405
void deinit()
Clear data from Connection_delay_action.
Definition: connection_delay.cc:422
int64 get_max_delay() const
Get max value.
Definition: connection_delay.h:106
int64 m_min_delay
Lower cap on delay in msec to be generated.
Definition: connection_delay.h:167
~Connection_delay_action() override
Destructor.
Definition: connection_delay.h:53
bool get_exempt_unknown_users() const
Get exempt_unknown_users flag.
Definition: connection_delay.h:122
bool notify_event(MYSQL_THD thd, Connection_event_coordinator *coordinator, const mysql_event_tracking_connection_data *connection_event) override
Overridden functions.
Definition: connection_delay.cc:250
std::vector< stats_connection_control, CustomAllocator< stats_connection_control > > m_stats_vars
Status variables.
Definition: connection_delay.h:178
bool notify_sys_var(Connection_event_coordinator *coordinator, opt_connection_control variable, void *new_value) override
Notification of a change in system variable value.
Definition: connection_delay.cc:355
std::vector< opt_connection_control, CustomAllocator< opt_connection_control > > m_sys_vars
System variables.
Definition: connection_delay.h:174
Connection event coordinator.
Definition: connection_control_coordinator.h:65
Interface for defining action on connection events.
Definition: connection_control_interfaces.h:42
Definition: connection_control_pfs_table.h:39
opt_connection_control
Enum for system variables : Must be in sync with members of Connection_control_variables.
Definition: connection_control_data.h:35
stats_connection_control
Enum for status variables : Must be in sync with members of Connection_control_statistics.
Definition: connection_control_data.h:47
Common definition used by mysys, performance schema and server & client.
Some integer typedefs for easier portability.
unsigned long long int ulonglong
Definition: my_inttypes.h:56
int64_t int64
Definition: my_inttypes.h:68
static int count
Definition: myisam_ftdump.cc:45
static int wait_time
Definition: mysql.cc:217
SHOW_VAR status_vars[]
Definition: mysqld.cc:11655
Definition: connection_control.h:66
const int64 MIN_DELAY
Definition: connection_delay.cc:43
std::string Sql_string
Definition: connection_control_interfaces.h:34
const int64 MAX_DELAY
Definition: connection_delay.cc:44
Provides atomic access in shared-exclusive modes.
Definition: shared_spin_lock.h:79
ValueType max(X &&first)
Definition: gtid.h:103
std::vector< T, ut::allocator< T > > vector
Specialization of vector which uses allocator.
Definition: ut0new.h:2880
Plugin service that provides access to the parser and some operations on the parse tree.
Structure for Connection event tracking.
Definition: event_tracking_connection_defs.h:60
An instrumented rwlock structure.
Definition: mysql_rwlock_bits.h:51