MySQL 8.0.39
Source Code Documentation
network_provider.h File Reference
#include <openssl/err.h>
#include <openssl/ssl.h>
#include <atomic>
#include <functional>
#include <memory>
#include <string>
#include <vector>

Go to the source code of this file.

Classes

class  Communication_stack_to_string
 This class is a helper to translate a Communication Stack to a string. More...
 
struct  Network_security_credentials
 Security credentials to establish a connection. More...
 
struct  ssl_parameters
 
struct  tls_parameters
 
struct  Network_configuration_parameters
 Possible configuration parameters. More...
 
struct  Network_connection
 Represents an open connection. More...
 
class  Network_namespace_manager
 Class that provides Network Namespace services. More...
 
class  Network_provider
 Base class for External Network Providers. More...
 

Enumerations

enum  enum_transport_protocol { INVALID_PROTOCOL = -1 , XCOM_PROTOCOL = 0 , MYSQL_PROTOCOL }
 Enum that describes the available XCom Communication Stacks. More...
 
enum  ssl_enum_mode_options {
  INVALID_SSL_MODE = -1 , SSL_DISABLED = 1 , SSL_PREFERRED , SSL_REQUIRED ,
  SSL_VERIFY_CA , SSL_VERIFY_IDENTITY , LAST_SSL_MODE , INVALID_SSL_MODE = -1 ,
  SSL_DISABLED = 1 , SSL_PREFERRED , SSL_REQUIRED , SSL_VERIFY_CA ,
  SSL_VERIFY_IDENTITY , LAST_SSL_MODE
}
 
enum  ssl_enum_fips_mode_options {
  INVALID_SSL_FIPS_MODE = -1 , FIPS_MODE_OFF = 0 , FIPS_MODE_ON , FIPS_MODE_STRICT ,
  LAST_SSL_FIPS_MODE , INVALID_SSL_FIPS_MODE = -1 , SSL_FIPS_MODE_OFF = 0 , SSL_FIPS_MODE_ON ,
  SSL_FIPS_MODE_STRICT , LAST_SSL_FIPS_MODE
}
 
enum class  network_provider_dynamic_log_level {
  PROVIDED = 0 , FATAL , ERROR , WARNING ,
  INFO , DEBUG , TRACE , LAST_NETWORK_PROVIDER_DYNAMIC_LOG_LEVEL
}
 Dynamic log level enum values. More...
 

Enumeration Type Documentation

◆ enum_transport_protocol

Enum that describes the available XCom Communication Stacks.

Enumerator
INVALID_PROTOCOL 
XCOM_PROTOCOL 
MYSQL_PROTOCOL 

◆ network_provider_dynamic_log_level

Dynamic log level enum values.

Network Provider will allow external entities to change a given log level, determined by an external condition.

For that, we create an enumeration that contains all possible generic log levels that we have seen in all implementations of a Network Provider.

Each Network Provider specialization must provide a mapping between network_provider_dynamic_log_level and their specific log level.

An example of this mechanism is as follows:

Let us consider that a coder decided that a certain log output in open_connection, on an implementation of a network provider, is ERROR.

At the same time, that developer allows an external entity that calls open_connection to override that log output. That could happen because the caller of open_connection wants to lower the verbosity due to too many errors in a short amount of time.

The developer must then use the implemented mapping referenced above on that instruction and consume the input parameter of open_connection that refers to an external network_provider_dynamic_log_level.

Enumerator
PROVIDED 
FATAL 
ERROR 
WARNING 
INFO 
DEBUG 
TRACE 
LAST_NETWORK_PROVIDER_DYNAMIC_LOG_LEVEL 

◆ ssl_enum_fips_mode_options

Enumerator
INVALID_SSL_FIPS_MODE 
FIPS_MODE_OFF 
FIPS_MODE_ON 
FIPS_MODE_STRICT 
LAST_SSL_FIPS_MODE 
INVALID_SSL_FIPS_MODE 
SSL_FIPS_MODE_OFF 
SSL_FIPS_MODE_ON 
SSL_FIPS_MODE_STRICT 
LAST_SSL_FIPS_MODE 

◆ ssl_enum_mode_options

Enumerator
INVALID_SSL_MODE 
SSL_DISABLED 
SSL_PREFERRED 
SSL_REQUIRED 
SSL_VERIFY_CA 
SSL_VERIFY_IDENTITY 
LAST_SSL_MODE 
INVALID_SSL_MODE 
SSL_DISABLED 
SSL_PREFERRED 
SSL_REQUIRED 
SSL_VERIFY_CA 
SSL_VERIFY_IDENTITY 
LAST_SSL_MODE