Added app version to Shake message.
This commit is contained in:
@@ -39,8 +39,12 @@ jobs:
|
|||||||
tag_name: ${{ env.VERSION }}
|
tag_name: ${{ env.VERSION }}
|
||||||
release_name: ${{ env.VERSION }}
|
release_name: ${{ env.VERSION }}
|
||||||
body: |
|
body: |
|
||||||
## A new version
|
## New
|
||||||
|
* Added new features.
|
||||||
|
## Bug Fixes & Improvements
|
||||||
* Various fixes and stability improvements.
|
* Various fixes and stability improvements.
|
||||||
|
## Documentation & others
|
||||||
|
* Updated documentation.
|
||||||
draft: true
|
draft: true
|
||||||
prerelease: false
|
prerelease: false
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -8,7 +8,7 @@ use crate::Bytes;
|
|||||||
pub enum Message {
|
pub enum Message {
|
||||||
Error,
|
Error,
|
||||||
Hand { #[serde(default = "default_version")] app_version: String, origin: String, version: u32, public: bool, #[serde(default)] rand: String },
|
Hand { #[serde(default = "default_version")] app_version: String, origin: String, version: u32, public: bool, #[serde(default)] rand: String },
|
||||||
Shake { origin: String, version: u32, ok: bool, height: u64 },
|
Shake { #[serde(default = "default_version")] app_version: String, origin: String, version: u32, ok: bool, height: u64 },
|
||||||
Ping { height: u64, hash: Bytes },
|
Ping { height: u64, hash: Bytes },
|
||||||
Pong { height: u64, hash: Bytes },
|
Pong { height: u64, hash: Bytes },
|
||||||
Twin,
|
Twin,
|
||||||
@@ -32,8 +32,8 @@ impl Message {
|
|||||||
Message::Hand { app_version: app_version.to_owned(), origin: origin.to_owned(), version, public, rand: rand.to_owned() }
|
Message::Hand { app_version: app_version.to_owned(), origin: origin.to_owned(), version, public, rand: rand.to_owned() }
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn shake(origin: &str, version: u32, ok: bool, height: u64) -> Self {
|
pub fn shake(app_version: &str, origin: &str, version: u32, ok: bool, height: u64) -> Self {
|
||||||
Message::Shake { origin: origin.to_owned(), version, ok, height }
|
Message::Shake { app_version: app_version.to_owned(), origin: origin.to_owned(), version, ok, height }
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn ping(height: u64, hash: Bytes) -> Self {
|
pub fn ping(height: u64, hash: Bytes) -> Self {
|
||||||
|
|||||||
+5
-3
@@ -397,21 +397,23 @@ fn handle_message(context: Arc<Mutex<Context>>, message: Message, peers: &mut Pe
|
|||||||
let peer = peers.get_mut_peer(token).unwrap();
|
let peer = peers.get_mut_peer(token).unwrap();
|
||||||
peer.set_public(public);
|
peer.set_public(public);
|
||||||
peer.set_active(true);
|
peer.set_active(true);
|
||||||
debug!("Hello from v{} on {}", &app_version, peer.get_addr().ip());
|
debug!(">> v{} on {}", &app_version, peer.get_addr().ip());
|
||||||
State::message(Message::shake(&origin, version, true, my_height))
|
let app_version = context.lock().unwrap().app_version.clone();
|
||||||
|
State::message(Message::shake(&app_version, &origin, version, true, my_height))
|
||||||
} else {
|
} else {
|
||||||
warn!("Handshake from unsupported chain or version");
|
warn!("Handshake from unsupported chain or version");
|
||||||
State::Banned
|
State::Banned
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Message::Shake { origin, version, ok, height } => {
|
Message::Shake { app_version, origin, version, ok, height } => {
|
||||||
if origin.ne(my_origin) || version != my_version {
|
if origin.ne(my_origin) || version != my_version {
|
||||||
return State::Banned;
|
return State::Banned;
|
||||||
}
|
}
|
||||||
if ok {
|
if ok {
|
||||||
let nodes = peers.get_peers_active_count();
|
let nodes = peers.get_peers_active_count();
|
||||||
let peer = peers.get_mut_peer(token).unwrap();
|
let peer = peers.get_mut_peer(token).unwrap();
|
||||||
|
debug!("<< v{} on {}", &app_version, peer.get_addr().ip());
|
||||||
peer.set_height(height);
|
peer.set_height(height);
|
||||||
peer.set_active(true);
|
peer.set_active(true);
|
||||||
peer.reset_reconnects();
|
peer.reset_reconnects();
|
||||||
|
|||||||
Reference in New Issue
Block a user