Skip to content
Snippets Groups Projects
Select Git revision
  • 39becabbbaf51bd10e7918b72dd2e3c804bc9bbf
  • dev default protected
  • vainamoinen197-transactiondocument-replace-vec-fields-by-smallvec-2
  • dvermd/200-keypairs-dewif
  • elois/wot
  • jawaka/155-dbex-add-dump-fork-tree-command
  • elois/195-bcdbwriteop
  • elois/deps-crypto
  • elois/gva-monetary-mass
  • elois/191-sled
  • elois/195
  • ji_emme/gva-humantimefield
  • 184-gva-rename-commontime-field-to-blockchaintime
  • ji_emme/182-gva-implement-block-meta-data
  • ji_emme/rml14
  • hugo/151-ws2pv2-sync
  • ji_emme/181-gva-implement-identity-request
  • ji_emme/89-implement-client-api-gva-graphql-verification-api
  • logo
  • test-juniper-from-schema
  • elois/exemple-gva-global-context
  • v0.2.0-a4 protected
  • v0.2.0-a2 protected
  • v0.2.0-a protected
  • v0.1.1-a1 protected
  • documents/v0.10.0-b1 protected
  • crypto/v0.4.0-b1 protected
  • crypto/v0.3.0-b3 protected
  • crypto/v0.3.0-b2 protected
  • crypto/v0.3.0-b1 protected
  • wot/v0.8.0-a0.9 protected
  • wot/v0.8.0-a0.8 protected
  • 0.1.0-a0.1 protected
  • v0.0.1-a0.12 protected
  • v0.0.1-a0.11 protected
  • v0.0.1-a0.10 protected
  • v0.0.1-a0.9 protected
  • v0.0.1-a0.8 protected
  • v0.0.1-a0.7 protected
  • v0.0.1-a0.6 protected
  • v0.0.1-a0.5 protected
41 results

ws2p_connection.rs

Blame
  • 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 {