Added app version to Shake message.

pull/99/head
Revertron 3 years ago
parent 349540b9f2
commit 65483f73c9

@ -39,8 +39,12 @@ jobs:
tag_name: ${{ env.VERSION }}
release_name: ${{ env.VERSION }}
body: |
## A new version
## New
* Added new features.
## Bug Fixes & Improvements
* Various fixes and stability improvements.
## Documentation & others
* Updated documentation.
draft: true
prerelease: false

@ -8,7 +8,7 @@ use crate::Bytes;
pub enum Message {
Error,
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 },
Pong { height: u64, hash: Bytes },
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() }
}
pub fn shake(origin: &str, version: u32, ok: bool, height: u64) -> Self {
Message::Shake { origin: origin.to_owned(), version, ok, height }
pub fn shake(app_version: &str, origin: &str, version: u32, ok: bool, height: u64) -> Self {
Message::Shake { app_version: app_version.to_owned(), origin: origin.to_owned(), version, ok, height }
}
pub fn ping(height: u64, hash: Bytes) -> Self {

@ -397,21 +397,23 @@ fn handle_message(context: Arc<Mutex<Context>>, message: Message, peers: &mut Pe
let peer = peers.get_mut_peer(token).unwrap();
peer.set_public(public);
peer.set_active(true);
debug!("Hello from v{} on {}", &app_version, peer.get_addr().ip());
State::message(Message::shake(&origin, version, true, my_height))
debug!(">> v{} on {}", &app_version, peer.get_addr().ip());
let app_version = context.lock().unwrap().app_version.clone();
State::message(Message::shake(&app_version, &origin, version, true, my_height))
} else {
warn!("Handshake from unsupported chain or version");
State::Banned
}
}
}
Message::Shake { origin, version, ok, height } => {
Message::Shake { app_version, origin, version, ok, height } => {
if origin.ne(my_origin) || version != my_version {
return State::Banned;
}
if ok {
let nodes = peers.get_peers_active_count();
let peer = peers.get_mut_peer(token).unwrap();
debug!("<< v{} on {}", &app_version, peer.get_addr().ip());
peer.set_height(height);
peer.set_active(true);
peer.reset_reconnects();

Loading…
Cancel
Save