connect_stage

Enum connect_stage 

Source
#[non_exhaustive]
#[repr(u32)]
pub enum connect_stage {
Show 24 variants CONNECT_STAGE_INVALID = 0, CONNECT_STAGE_NOT_STARTED = 1, CONNECT_STAGE_NET_BEGIN_CONNECT = 2, CONNECT_STAGE_NET_WAIT_CONNECT = 3, CONNECT_STAGE_NET_COMPLETE_CONNECT = 4, CONNECT_STAGE_READ_GREETING = 5, CONNECT_STAGE_PARSE_HANDSHAKE = 6, CONNECT_STAGE_ESTABLISH_SSL = 7, CONNECT_STAGE_AUTHENTICATE = 8, CONNECT_STAGE_AUTH_BEGIN = 9, CONNECT_STAGE_AUTH_RUN_FIRST_AUTHENTICATE_USER = 10, CONNECT_STAGE_AUTH_HANDLE_FIRST_AUTHENTICATE_USER = 11, CONNECT_STAGE_AUTH_READ_CHANGE_USER_RESULT = 12, CONNECT_STAGE_AUTH_HANDLE_CHANGE_USER_REQUEST = 13, CONNECT_STAGE_AUTH_RUN_SECOND_AUTHENTICATE_USER = 14, CONNECT_STAGE_AUTH_INIT_MULTI_AUTH = 15, CONNECT_STAGE_AUTH_FINISH_AUTH = 16, CONNECT_STAGE_AUTH_HANDLE_SECOND_AUTHENTICATE_USER = 17, CONNECT_STAGE_AUTH_DO_MULTI_PLUGIN_AUTH = 18, CONNECT_STAGE_AUTH_HANDLE_MULTI_AUTH_RESPONSE = 19, CONNECT_STAGE_PREP_SELECT_DATABASE = 20, CONNECT_STAGE_PREP_INIT_COMMANDS = 21, CONNECT_STAGE_SEND_ONE_INIT_COMMAND = 22, CONNECT_STAGE_COMPLETE = 23,
}
Expand description

Describes the current state of Asynchronous connection phase state machine

@startuml [] –> CONNECT_STAGE_INVALID [] –> CONNECT_STAGE_NOT_STARTED

CONNECT_STAGE_NOT_STARTED –> CONNECT_STAGE_NET_BEGIN_CONNECT CONNECT_STAGE_NOT_STARTED –> CONNECT_STAGE_COMPLETE

CONNECT_STAGE_NET_BEGIN_CONNECT –> CONNECT_STAGE_NET_WAIT_CONNECT CONNECT_STAGE_NET_BEGIN_CONNECT –> CONNECT_STAGE_NET_COMPLETE_CONNECT CONNECT_STAGE_NET_BEGIN_CONNECT –> STATE_MACHINE_FAILED

CONNECT_STAGE_NET_WAIT_CONNECT –> CONNECT_STAGE_NET_COMPLETE_CONNECT CONNECT_STAGE_NET_WAIT_CONNECT –> STATE_MACHINE_FAILED

CONNECT_STAGE_NET_COMPLETE_CONNECT –> STATE_MACHINE_FAILED CONNECT_STAGE_NET_COMPLETE_CONNECT –> CONNECT_STAGE_READ_GREETING

CONNECT_STAGE_READ_GREETING –> STATE_MACHINE_FAILED CONNECT_STAGE_READ_GREETING –> CONNECT_STAGE_PARSE_HANDSHAKE

CONNECT_STAGE_PARSE_HANDSHAKE –> STATE_MACHINE_FAILED CONNECT_STAGE_PARSE_HANDSHAKE –> CONNECT_STAGE_ESTABLISH_SSL

CONNECT_STAGE_ESTABLISH_SSL –> STATE_MACHINE_FAILED CONNECT_STAGE_ESTABLISH_SSL –> CONNECT_STAGE_AUTHENTICATE

CONNECT_STAGE_AUTHENTICATE –> STATE_MACHINE_FAILED CONNECT_STAGE_AUTHENTICATE –> CONNECT_STAGE_AUTH_BEGIN

CONNECT_STAGE_AUTH_BEGIN –> STATE_MACHINE_FAILED CONNECT_STAGE_AUTH_BEGIN –> CONNECT_STAGE_AUTH_RUN_FIRST_AUTHENTICATE_USER

CONNECT_STAGE_AUTH_RUN_FIRST_AUTHENTICATE_USER –> CONNECT_STAGE_AUTH_HANDLE_FIRST_AUTHENTICATE_USER

CONNECT_STAGE_AUTH_HANDLE_FIRST_AUTHENTICATE_USER –> STATE_MACHINE_FAILED CONNECT_STAGE_AUTH_HANDLE_FIRST_AUTHENTICATE_USER –> CONNECT_STAGE_AUTH_READ_CHANGE_USER_RESULT

CONNECT_STAGE_AUTH_READ_CHANGE_USER_RESULT –> CONNECT_STAGE_AUTH_HANDLE_CHANGE_USER_REQUEST

CONNECT_STAGE_AUTH_HANDLE_CHANGE_USER_REQUEST –> STATE_MACHINE_FAILED CONNECT_STAGE_AUTH_HANDLE_CHANGE_USER_REQUEST –> CONNECT_STAGE_AUTH_RUN_SECOND_AUTHENTICATE_USER CONNECT_STAGE_AUTH_HANDLE_CHANGE_USER_REQUEST –> CONNECT_STAGE_AUTH_INIT_MULTI_AUTH CONNECT_STAGE_AUTH_HANDLE_CHANGE_USER_REQUEST –> CONNECT_STAGE_AUTH_FINISH_AUTH

CONNECT_STAGE_AUTH_RUN_SECOND_AUTHENTICATE_USER –> STATE_MACHINE_FAILED CONNECT_STAGE_AUTH_RUN_SECOND_AUTHENTICATE_USER –> CONNECT_STAGE_AUTH_HANDLE_SECOND_AUTHENTICATE_USER

CONNECT_STAGE_AUTH_HANDLE_SECOND_AUTHENTICATE_USER –> STATE_MACHINE_FAILED CONNECT_STAGE_AUTH_HANDLE_SECOND_AUTHENTICATE_USER –> CONNECT_STAGE_AUTH_INIT_MULTI_AUTH CONNECT_STAGE_AUTH_HANDLE_SECOND_AUTHENTICATE_USER –> CONNECT_STAGE_AUTH_FINISH_AUTH

CONNECT_STAGE_AUTH_INIT_MULTI_AUTH –> STATE_MACHINE_FAILED CONNECT_STAGE_AUTH_INIT_MULTI_AUTH –> CONNECT_STAGE_AUTH_DO_MULTI_PLUGIN_AUTH

CONNECT_STAGE_AUTH_DO_MULTI_PLUGIN_AUTH –> STATE_MACHINE_FAILED CONNECT_STAGE_AUTH_DO_MULTI_PLUGIN_AUTH –> CONNECT_STAGE_AUTH_HANDLE_MULTI_AUTH_RESPONSE

CONNECT_STAGE_AUTH_HANDLE_MULTI_AUTH_RESPONSE –> STATE_MACHINE_FAILED CONNECT_STAGE_AUTH_HANDLE_MULTI_AUTH_RESPONSE –> CONNECT_STAGE_AUTH_INIT_MULTI_AUTH CONNECT_STAGE_AUTH_HANDLE_MULTI_AUTH_RESPONSE –> CONNECT_STAGE_AUTH_FINISH_AUTH

CONNECT_STAGE_AUTH_FINISH_AUTH –> STATE_MACHINE_FAILED CONNECT_STAGE_AUTH_FINISH_AUTH –> CONNECT_STAGE_PREP_SELECT_DATABASE

CONNECT_STAGE_PREP_SELECT_DATABASE –> CONNECT_STAGE_COMPLETE CONNECT_STAGE_PREP_SELECT_DATABASE –> CONNECT_STAGE_PREP_INIT_COMMANDS

CONNECT_STAGE_PREP_INIT_COMMANDS –> CONNECT_STAGE_COMPLETE CONNECT_STAGE_PREP_INIT_COMMANDS –> CONNECT_STAGE_SEND_ONE_INIT_COMMAND

CONNECT_STAGE_SEND_ONE_INIT_COMMAND –> CONNECT_STAGE_SEND_ONE_INIT_COMMAND CONNECT_STAGE_SEND_ONE_INIT_COMMAND –> STATE_MACHINE_FAILED CONNECT_STAGE_SEND_ONE_INIT_COMMAND –> CONNECT_STAGE_COMPLETE

STATE_MACHINE_FAILED –> [] CONNECT_STAGE_COMPLETE –> [] CONNECT_STAGE_INVALID –> [*] @enduml

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

CONNECT_STAGE_INVALID = 0

MYSQL not valid or an unknown state

§

CONNECT_STAGE_NOT_STARTED = 1

not connected

§

CONNECT_STAGE_NET_BEGIN_CONNECT = 2

begin connection to the server

§

CONNECT_STAGE_NET_WAIT_CONNECT = 3

wait for connection to be established

§

CONNECT_STAGE_NET_COMPLETE_CONNECT = 4

init the local data structures post connect

§

CONNECT_STAGE_READ_GREETING = 5

read the first packet

§

CONNECT_STAGE_PARSE_HANDSHAKE = 6

parse the first packet

§

CONNECT_STAGE_ESTABLISH_SSL = 7

tls establishment

§

CONNECT_STAGE_AUTHENTICATE = 8

authentication phase

§

CONNECT_STAGE_AUTH_BEGIN = 9

determine the plugin to use

§

CONNECT_STAGE_AUTH_RUN_FIRST_AUTHENTICATE_USER = 10

run first auth plugin

§

CONNECT_STAGE_AUTH_HANDLE_FIRST_AUTHENTICATE_USER = 11

handle the result of the first auth plugin run

§

CONNECT_STAGE_AUTH_READ_CHANGE_USER_RESULT = 12

read the implied changed user auth, if any

§

CONNECT_STAGE_AUTH_HANDLE_CHANGE_USER_REQUEST = 13

Check if server asked to use a different authentication plugin

§

CONNECT_STAGE_AUTH_RUN_SECOND_AUTHENTICATE_USER = 14

Start the authentication process again with the plugin which server asked for

§

CONNECT_STAGE_AUTH_INIT_MULTI_AUTH = 15

Start multi factor authentication

§

CONNECT_STAGE_AUTH_FINISH_AUTH = 16

Final cleanup

§

CONNECT_STAGE_AUTH_HANDLE_SECOND_AUTHENTICATE_USER = 17

Now read the results of the second plugin run

§

CONNECT_STAGE_AUTH_DO_MULTI_PLUGIN_AUTH = 18

Invoke client plugins multi-auth authentication method

§

CONNECT_STAGE_AUTH_HANDLE_MULTI_AUTH_RESPONSE = 19

Handle response from client plugins authentication method

§

CONNECT_STAGE_PREP_SELECT_DATABASE = 20

Authenticated, set initial database if specified

§

CONNECT_STAGE_PREP_INIT_COMMANDS = 21

Prepare to send a sequence of init commands.

§

CONNECT_STAGE_SEND_ONE_INIT_COMMAND = 22

Send an init command. This is called once per init command until they’ve all been run (or a failure occurs)

§

CONNECT_STAGE_COMPLETE = 23

Connected or no async connect in progress

Trait Implementations§

Source§

impl Clone for connect_stage

Source§

fn clone(&self) -> connect_stage

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for connect_stage

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Hash for connect_stage

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for connect_stage

Source§

fn eq(&self, other: &connect_stage) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for connect_stage

Source§

impl Eq for connect_stage

Source§

impl StructuralPartialEq for connect_stage

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.