23#ifndef HOSTNAME_CACHE_INCLUDED
24#define HOSTNAME_CACHE_INCLUDED
36#ifdef HAVE_NETINET_IN_H
37#include <netinet/in.h>
113#define HOST_ENTRY_KEY_SIZE INET6_ADDRSTRLEN
159#define RC_BLOCKED_HOST 1
160#define RC_LONG_HOSTNAME 2
161int ip_to_hostname(
struct sockaddr_storage *ip_storage,
const char *ip_string,
162 char **hostname,
uint *connect_errors);
An entry in the hostname hash table cache.
Definition: hostname_cache.h:125
bool m_host_validated
The hostname is validated and used for authorization.
Definition: hostname_cache.h:144
uint m_hostname_length
Length in bytes of m_hostname.
Definition: hostname_cache.h:142
ulonglong m_last_error_seen
Definition: hostname_cache.h:148
Host_errors m_errors
Error statistics.
Definition: hostname_cache.h:150
ulonglong m_first_error_seen
Definition: hostname_cache.h:147
char ip_key[HOST_ENTRY_KEY_SIZE]
Client IP address.
Definition: hostname_cache.h:135
ulonglong m_first_seen
Definition: hostname_cache.h:145
char m_hostname[HOSTNAME_LENGTH+1]
One of the host names for the IP address.
Definition: hostname_cache.h:140
ulonglong m_last_seen
Definition: hostname_cache.h:146
void set_error_timestamps(ulonglong now)
Definition: hostname_cache.h:152
int ip_to_hostname(struct sockaddr_storage *ip_storage, const char *ip_string, char **hostname, uint *connect_errors)
Resolve IP-address to host name.
Definition: hostname_cache.cc:445
std::list< std::unique_ptr< Host_entry > >::iterator hostname_cache_begin()
Definition: hostname_cache.cc:228
void reset_host_connect_errors(const char *ip_string)
Definition: hostname_cache.cc:368
void inc_host_errors(const char *ip_string, Host_errors *errors)
Definition: hostname_cache.cc:346
void hostname_cache_free()
Definition: hostname_cache.cc:206
bool hostname_cache_init(uint size)
Definition: hostname_cache.cc:192
#define HOST_ENTRY_KEY_SIZE
Size of IP address string in the hash cache.
Definition: hostname_cache.h:113
std::list< std::unique_ptr< Host_entry > >::iterator hostname_cache_end()
Definition: hostname_cache.cc:233
void hostname_cache_refresh(void)
Definition: hostname_cache.cc:170
uint hostname_cache_size()
Definition: hostname_cache.cc:178
void hostname_cache_resize(uint size)
Definition: hostname_cache.cc:183
void hostname_cache_unlock()
Definition: hostname_cache.cc:223
void hostname_cache_lock()
Definition: hostname_cache.cc:218
Common definition used by mysys, performance schema and server & client.
static constexpr int HOSTNAME_LENGTH
Definition: my_hostname.h:42
Some integer typedefs for easier portability.
unsigned long long int ulonglong
Definition: my_inttypes.h:55
Common definition between mysql server & client.
Definition: hostname_cache.h:40
ulong m_host_blocked
Number of host blocked errors.
Definition: hostname_cache.h:52
ulong m_authentication
Number of errors from authentication.
Definition: hostname_cache.h:78
void clear_connect_errors()
Definition: hostname_cache.h:109
ulong m_handshake
Number of errors from authentication plugins.
Definition: hostname_cache.h:72
ulong m_max_user_connection_per_hour
Number of errors from max user connection per hour.
Definition: hostname_cache.h:84
bool has_error() const
Definition: hostname_cache.h:92
ulong m_default_database
Number of errors from the default database.
Definition: hostname_cache.h:86
void reset()
Definition: hostname_cache.cc:115
void sum_connect_errors()
Definition: hostname_cache.h:104
ulong m_nameinfo_transient
Number of transient errors from getnameinfo().
Definition: hostname_cache.h:54
void aggregate(const Host_errors *errors)
Definition: hostname_cache.cc:139
ulong m_init_connect
Number of errors from init_connect.
Definition: hostname_cache.h:88
ulong m_connect
Number of connect errors.
Definition: hostname_cache.h:49
ulong m_nameinfo_permanent
Number of permanent errors from getnameinfo().
Definition: hostname_cache.h:56
ulong m_FCrDNS
Number of errors from Forward-Confirmed reverse DNS checks.
Definition: hostname_cache.h:64
Host_errors()
Definition: hostname_cache.cc:90
ulong m_max_user_connection
Number of errors from max user connection.
Definition: hostname_cache.h:82
ulong m_no_auth_plugin
Number of errors from missing auth plugin.
Definition: hostname_cache.h:68
ulong m_proxy_user
Number of errors from proxy user.
Definition: hostname_cache.h:74
ulong m_proxy_user_acl
Number of errors from proxy user acl.
Definition: hostname_cache.h:76
ulong m_host_acl
Number of errors from host grants.
Definition: hostname_cache.h:66
ulong m_local
Number of errors from the server itself.
Definition: hostname_cache.h:90
ulong m_addrinfo_permanent
Number of permanent errors from getaddrinfo().
Definition: hostname_cache.h:62
ulong m_addrinfo_transient
Number of transient errors from getaddrinfo().
Definition: hostname_cache.h:60
ulong m_ssl
Number of errors from ssl.
Definition: hostname_cache.h:80
ulong m_format
Number of errors from is_hostname_valid().
Definition: hostname_cache.h:58
ulong m_auth_plugin
Number of errors from auth plugin.
Definition: hostname_cache.h:70
unsigned int uint
Definition: uca9-dump.cc:74