Select Git revision
ws2p_connection.rs 17.18 KiB
extern crate serde_json;
extern crate websocket;
use duniter_crypto::keys::ed25519;
use duniter_crypto::keys::PublicKey;
use duniter_dal::parsers::blocks::parse_json_block;
use duniter_module::ModuleReqId;
use duniter_network::network_endpoint::{NetworkEndpoint, NetworkEndpointApi};
use duniter_network::{NetworkDocument, NodeUUID};
use std::fmt::Debug;
use std::net::TcpStream;
use super::{NodeFullId, WS2PAckMessageV1, WS2PConnectMessageV1, WS2PMessage, WS2POkMessageV1};
#[derive(Debug, Copy, Clone)]
pub enum WS2POrderForListeningThread {
Close,
}
#[derive(Debug, Copy, Clone, PartialEq)]
pub enum WS2PConnectionState {
NeverTry = 0,
TryToOpenWS = 1,
WSError = 2,
TryToSendConnectMess = 3,
Unreachable = 4,
WaitingConnectMess = 5,
NoResponse = 6,
ConnectMessOk = 7,
OkMessOkWaitingAckMess = 8,
AckMessOk = 9,
Denial = 10,
Close = 11,
Established = 12,
}
impl From<u32> for WS2PConnectionState {
fn from(integer: u32) -> Self {
match integer {
1 | 2 => WS2PConnectionState::WSError,
3 | 4 => WS2PConnectionState::Unreachable,
5 | 6 => WS2PConnectionState::NoResponse,
7 | 8 | 9 | 10 => WS2PConnectionState::Denial,
11 | 12 => WS2PConnectionState::Close,
_ => WS2PConnectionState::NeverTry,
}
}
}
impl WS2PConnectionState {
pub fn from_u32(integer: u32, from_db: bool) -> Self {
if from_db {
WS2PConnectionState::from(integer)
} else {
match integer {
1 => WS2PConnectionState::TryToOpenWS,
2 => WS2PConnectionState::WSError,
3 | 4 => WS2PConnectionState::Unreachable,
5 | 6 => WS2PConnectionState::NoResponse,
7 => WS2PConnectionState::ConnectMessOk,
8 => WS2PConnectionState::OkMessOkWaitingAckMess,
9 => WS2PConnectionState::AckMessOk,
10 => WS2PConnectionState::Denial,
11 => WS2PConnectionState::Close,
12 => WS2PConnectionState::Established,
_ => WS2PConnectionState::NeverTry,
}
}
}
pub fn to_u32(&self) -> u32 {