mirror of
https://github.com/darkrenaissance/darkfi.git
synced 2026-01-09 22:57:59 -05:00
session: cleanup SessionBitFlags
Add an additional byte to SessionBitFlags to accommodate SESSION_REFINE and reduce the risk of logic errors. Additionally: * `!SESSION_SEED & !SESSION_REFINE` is now referred to as `SESSION_DEFAULT` * `!SESSION_REFINE` is refered to as `SESSION_NET`. * `SESSION_ALL` has been deleted since it was conceptually out-dated * Binaries have been updated.
This commit is contained in:
@@ -23,7 +23,7 @@ use smol::{fs::read_to_string, Executor};
|
|||||||
use structopt_toml::StructOptToml;
|
use structopt_toml::StructOptToml;
|
||||||
|
|
||||||
use darkfi::{
|
use darkfi::{
|
||||||
net::{P2p, P2pPtr, Settings, SESSION_ALL},
|
net::{P2p, P2pPtr, Settings, SESSION_NET},
|
||||||
rpc::jsonrpc::JsonSubscriber,
|
rpc::jsonrpc::JsonSubscriber,
|
||||||
util::path::get_config_path,
|
util::path::get_config_path,
|
||||||
validator::ValidatorPtr,
|
validator::ValidatorPtr,
|
||||||
@@ -48,7 +48,7 @@ pub async fn spawn_p2p(
|
|||||||
|
|
||||||
let _validator = validator.clone();
|
let _validator = validator.clone();
|
||||||
registry
|
registry
|
||||||
.register(SESSION_ALL, move |channel, _p2p| {
|
.register(SESSION_NET, move |channel, _p2p| {
|
||||||
let validator = _validator.clone();
|
let validator = _validator.clone();
|
||||||
async move { ProtocolSync::init(channel, validator).await.unwrap() }
|
async move { ProtocolSync::init(channel, validator).await.unwrap() }
|
||||||
})
|
})
|
||||||
@@ -57,7 +57,7 @@ pub async fn spawn_p2p(
|
|||||||
let _validator = validator.clone();
|
let _validator = validator.clone();
|
||||||
let _subscriber = subscribers.get("proposals").unwrap().clone();
|
let _subscriber = subscribers.get("proposals").unwrap().clone();
|
||||||
registry
|
registry
|
||||||
.register(SESSION_ALL, move |channel, p2p| {
|
.register(SESSION_NET, move |channel, p2p| {
|
||||||
let validator = _validator.clone();
|
let validator = _validator.clone();
|
||||||
let subscriber = _subscriber.clone();
|
let subscriber = _subscriber.clone();
|
||||||
async move {
|
async move {
|
||||||
@@ -71,7 +71,7 @@ pub async fn spawn_p2p(
|
|||||||
let _validator = validator.clone();
|
let _validator = validator.clone();
|
||||||
let _subscriber = subscribers.get("txs").unwrap().clone();
|
let _subscriber = subscribers.get("txs").unwrap().clone();
|
||||||
registry
|
registry
|
||||||
.register(SESSION_ALL, move |channel, p2p| {
|
.register(SESSION_NET, move |channel, p2p| {
|
||||||
let validator = _validator.clone();
|
let validator = _validator.clone();
|
||||||
let subscriber = _subscriber.clone();
|
let subscriber = _subscriber.clone();
|
||||||
async move { ProtocolTx::init(channel, validator, p2p, subscriber).await.unwrap() }
|
async move { ProtocolTx::init(channel, validator, p2p, subscriber).await.unwrap() }
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ async fn dht_remote_get_insert_real(ex: Arc<Executor<'_>>) -> Result<()> {
|
|||||||
|
|
||||||
let _dhtd = dhtd.clone();
|
let _dhtd = dhtd.clone();
|
||||||
registry
|
registry
|
||||||
.register(net::SESSION_ALL, move |channel, p2p| {
|
.register(net::SESSION_NET, move |channel, p2p| {
|
||||||
let dhtd = _dhtd.clone();
|
let dhtd = _dhtd.clone();
|
||||||
async move { ProtocolDht::init(channel, p2p, dhtd).await.unwrap() }
|
async move { ProtocolDht::init(channel, p2p, dhtd).await.unwrap() }
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -604,7 +604,7 @@ async fn realmain(args: Args, ex: Arc<Executor<'static>>) -> Result<()> {
|
|||||||
let registry = p2p.protocol_registry();
|
let registry = p2p.protocol_registry();
|
||||||
let fud_ = fud.clone();
|
let fud_ = fud.clone();
|
||||||
registry
|
registry
|
||||||
.register(net::SESSION_ALL, move |channel, p2p| {
|
.register(net::SESSION_NET, move |channel, p2p| {
|
||||||
let fud_ = fud_.clone();
|
let fud_ = fud_.clone();
|
||||||
async move { ProtocolFud::init(fud_, channel, p2p).await.unwrap() }
|
async move { ProtocolFud::init(fud_, channel, p2p).await.unwrap() }
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ use std::sync::{Arc, OnceLock};
|
|||||||
use darkfi::{
|
use darkfi::{
|
||||||
async_daemonize, cli_desc,
|
async_daemonize, cli_desc,
|
||||||
event_graph::{proto::ProtocolEventGraph, EventGraph, EventGraphPtr, NULL_ID},
|
event_graph::{proto::ProtocolEventGraph, EventGraph, EventGraphPtr, NULL_ID},
|
||||||
net::{settings::SettingsOpt, P2p, SESSION_ALL},
|
net::{settings::SettingsOpt, P2p, SESSION_NET},
|
||||||
rpc::{
|
rpc::{
|
||||||
jsonrpc::JsonSubscriber,
|
jsonrpc::JsonSubscriber,
|
||||||
server::{listen_and_serve, RequestHandler},
|
server::{listen_and_serve, RequestHandler},
|
||||||
@@ -112,7 +112,7 @@ async fn realmain(settings: Args, executor: Arc<smol::Executor<'static>>) -> Res
|
|||||||
let event_graph_ = Arc::clone(&event_graph);
|
let event_graph_ = Arc::clone(&event_graph);
|
||||||
let registry = p2p.protocol_registry();
|
let registry = p2p.protocol_registry();
|
||||||
registry
|
registry
|
||||||
.register(SESSION_ALL, move |channel, _| {
|
.register(SESSION_NET, move |channel, _| {
|
||||||
let event_graph_ = event_graph_.clone();
|
let event_graph_ = event_graph_.clone();
|
||||||
async move { ProtocolEventGraph::init(event_graph_, channel).await.unwrap() }
|
async move { ProtocolEventGraph::init(event_graph_, channel).await.unwrap() }
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ use darkfi::{
|
|||||||
proto::{EventPut, ProtocolEventGraph},
|
proto::{EventPut, ProtocolEventGraph},
|
||||||
Event, EventGraph, EventGraphPtr, NULL_ID,
|
Event, EventGraph, EventGraphPtr, NULL_ID,
|
||||||
},
|
},
|
||||||
net::{P2p, P2pPtr, SESSION_ALL},
|
net::{P2p, P2pPtr, SESSION_NET},
|
||||||
rpc::{
|
rpc::{
|
||||||
jsonrpc::JsonSubscriber,
|
jsonrpc::JsonSubscriber,
|
||||||
server::{listen_and_serve, RequestHandler},
|
server::{listen_and_serve, RequestHandler},
|
||||||
@@ -362,7 +362,7 @@ async fn realmain(settings: Args, executor: Arc<smol::Executor<'static>>) -> Res
|
|||||||
let event_graph_ = Arc::clone(&event_graph);
|
let event_graph_ = Arc::clone(&event_graph);
|
||||||
let registry = p2p.protocol_registry();
|
let registry = p2p.protocol_registry();
|
||||||
registry
|
registry
|
||||||
.register(SESSION_ALL, move |channel, _| {
|
.register(SESSION_NET, move |channel, _| {
|
||||||
let event_graph_ = event_graph_.clone();
|
let event_graph_ = event_graph_.clone();
|
||||||
async move { ProtocolEventGraph::init(event_graph_, channel).await.unwrap() }
|
async move { ProtocolEventGraph::init(event_graph_, channel).await.unwrap() }
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -152,7 +152,7 @@ async fn realmain(args: Args, ex: Arc<smol::Executor<'static>>) -> Result<()> {
|
|||||||
info!("Registering Dchat protocol");
|
info!("Registering Dchat protocol");
|
||||||
let registry = p2p.protocol_registry();
|
let registry = p2p.protocol_registry();
|
||||||
registry
|
registry
|
||||||
.register(!net::session::SESSION_SEED, move |channel, _p2p| {
|
.register(net::session::SESSION_DEFAULT, move |channel, _p2p| {
|
||||||
let msgs_ = msgs.clone();
|
let msgs_ = msgs.clone();
|
||||||
async move { ProtocolDchat::init(channel, msgs_).await }
|
async move { ProtocolDchat::init(channel, msgs_).await }
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ use crate::{
|
|||||||
proto::{EventPut, ProtocolEventGraph},
|
proto::{EventPut, ProtocolEventGraph},
|
||||||
Event, EventGraph,
|
Event, EventGraph,
|
||||||
},
|
},
|
||||||
net::{P2p, Settings, SESSION_ALL},
|
net::{P2p, Settings, SESSION_NET},
|
||||||
system::sleep,
|
system::sleep,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -98,7 +98,7 @@ async fn spawn_node(
|
|||||||
// Register the P2P protocols
|
// Register the P2P protocols
|
||||||
let registry = p2p.protocol_registry();
|
let registry = p2p.protocol_registry();
|
||||||
registry
|
registry
|
||||||
.register(SESSION_ALL, move |channel, _| {
|
.register(SESSION_NET, move |channel, _| {
|
||||||
let event_graph_ = event_graph_.clone();
|
let event_graph_ = event_graph_.clone();
|
||||||
async move { ProtocolEventGraph::init(event_graph_, channel).await.unwrap() }
|
async move { ProtocolEventGraph::init(event_graph_, channel).await.unwrap() }
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -104,7 +104,7 @@ pub use protocol::{
|
|||||||
/// the first time. Implements the `Session` trait which describes the
|
/// the first time. Implements the `Session` trait which describes the
|
||||||
/// common functions across all sessions.
|
/// common functions across all sessions.
|
||||||
pub mod session;
|
pub mod session;
|
||||||
pub use session::SESSION_ALL;
|
pub use session::SESSION_NET;
|
||||||
|
|
||||||
/// Handles the acceptance of inbound socket connections.
|
/// Handles the acceptance of inbound socket connections.
|
||||||
/// Used to start listening on a local socket, to accept incoming connections,
|
/// Used to start listening on a local socket, to accept incoming connections,
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
use super::{
|
use super::{
|
||||||
p2p::P2pPtr,
|
p2p::P2pPtr,
|
||||||
session::{SESSION_ALL, SESSION_SEED},
|
session::{SESSION_DEFAULT, SESSION_NET, SESSION_SEED},
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Manages the tasks for the network protocol. Used by other connection
|
/// Manages the tasks for the network protocol. Used by other connection
|
||||||
@@ -75,7 +75,7 @@ pub mod protocol_registry;
|
|||||||
/// Register the default network protocols for a p2p instance.
|
/// Register the default network protocols for a p2p instance.
|
||||||
pub async fn register_default_protocols(p2p: P2pPtr) {
|
pub async fn register_default_protocols(p2p: P2pPtr) {
|
||||||
let registry = p2p.protocol_registry();
|
let registry = p2p.protocol_registry();
|
||||||
registry.register(SESSION_ALL, ProtocolPing::init).await;
|
registry.register(SESSION_NET, ProtocolPing::init).await;
|
||||||
registry.register(!SESSION_SEED, ProtocolAddress::init).await;
|
registry.register(SESSION_DEFAULT, ProtocolAddress::init).await;
|
||||||
registry.register(SESSION_SEED, ProtocolSeed::init).await;
|
registry.register(SESSION_SEED, ProtocolSeed::init).await;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,15 +40,17 @@ pub mod refine_session;
|
|||||||
pub use refine_session::{RefineSession, RefineSessionPtr};
|
pub use refine_session::{RefineSession, RefineSessionPtr};
|
||||||
|
|
||||||
/// Bitwise selectors for the `protocol_registry`
|
/// Bitwise selectors for the `protocol_registry`
|
||||||
// TODO: SESSION_ALL currently does not include SESSION_REFINE, which is
|
|
||||||
// conceptually wrong. Should we rename SESSION_ALL to SESSION_DEFAULT?
|
|
||||||
pub type SessionBitFlag = u32;
|
pub type SessionBitFlag = u32;
|
||||||
pub const SESSION_INBOUND: SessionBitFlag = 0b0001;
|
pub const SESSION_INBOUND: SessionBitFlag = 0b00001;
|
||||||
pub const SESSION_OUTBOUND: SessionBitFlag = 0b0010;
|
pub const SESSION_OUTBOUND: SessionBitFlag = 0b00010;
|
||||||
pub const SESSION_MANUAL: SessionBitFlag = 0b0100;
|
pub const SESSION_MANUAL: SessionBitFlag = 0b00100;
|
||||||
pub const SESSION_SEED: SessionBitFlag = 0b1000;
|
pub const SESSION_SEED: SessionBitFlag = 0b01000;
|
||||||
pub const SESSION_REFINE: SessionBitFlag = 0b0000;
|
pub const SESSION_REFINE: SessionBitFlag = 0b10000;
|
||||||
pub const SESSION_ALL: SessionBitFlag = 0b1111;
|
|
||||||
|
// Equivalent to !SESSION_REFINE.
|
||||||
|
pub const SESSION_NET: SessionBitFlag = 0b01111;
|
||||||
|
// Equivalent to !SESSION_REFINE & !SESSION_SEED.
|
||||||
|
pub const SESSION_DEFAULT: SessionBitFlag = 0b00111;
|
||||||
|
|
||||||
pub type SessionWeakPtr = Weak<dyn Session + Send + Sync + 'static>;
|
pub type SessionWeakPtr = Weak<dyn Session + Send + Sync + 'static>;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user