diff --git a/net/src/lib.rs b/net/src/lib.rs index 55e7234d..7ece8f0a 100644 --- a/net/src/lib.rs +++ b/net/src/lib.rs @@ -11,6 +11,7 @@ mod ip; mod message; mod port; mod service; +mod version; pub use primitives::{hash, bytes}; @@ -22,3 +23,4 @@ pub use self::ip::IpAddress; pub use self::message::Message; pub use self::port::Port; pub use self::service::ServiceFlags; +pub use self::version::{Version, Simple, V106, V70001}; diff --git a/net/src/version.rs b/net/src/version.rs new file mode 100644 index 00000000..a99e9b0c --- /dev/null +++ b/net/src/version.rs @@ -0,0 +1,34 @@ +use {ServiceFlags, NetAddress}; + +pub enum Version { + Simple(Simple), + V106(V106), + V70001(V70001), +} + +pub struct Simple { + pub version: u32, + pub services: ServiceFlags, + pub timestamp: i64, + pub receiver: NetAddress, +} + +pub struct V106 { + pub version: u32, + pub services: ServiceFlags, + pub timestamp: i64, + pub receiver: NetAddress, + pub from: NetAddress, + pub nonce: u64, + // TODO: read str +} + +pub struct V70001 { + pub version: u32, + pub services: ServiceFlags, + pub timestamp: i64, + pub receiver: NetAddress, + pub from: NetAddress, + pub nonce: u64, + // TODO: read str +} diff --git a/tools/graph.dot b/tools/graph.dot index 40ba52f2..acfd3aa5 100644 --- a/tools/graph.dot +++ b/tools/graph.dot @@ -43,6 +43,7 @@ digraph dependencies { N3 -> N15[label="",style=dashed]; N3 -> N18[label="",style=dashed]; N3 -> N22[label="",style=dashed]; + N4 -> N1[label="",style=dashed]; N4 -> N5[label="",style=dashed]; N4 -> N7[label="",style=dashed]; N4 -> N13[label="",style=dashed]; diff --git a/tools/graph.png b/tools/graph.png index 2dab4d11..f1741571 100644 Binary files a/tools/graph.png and b/tools/graph.png differ