Skip to content

Commit e5261f1

Browse files
committed
Added support for communicating with pre-0.1.8 peers
1 parent f718b41 commit e5261f1

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

src/protocol/results.rs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,12 @@ pub struct TcpSendResult {
248248
}
249249
impl TcpSendResult {
250250
fn from_json(value:serde_json::Value) -> BoxResult<TcpSendResult> {
251-
let send_result:TcpSendResult = serde_json::from_value(value)?;
251+
let mut local_value = value.clone();
252+
if local_value.get("sends_blocked").is_none() { //pre-0.1.8 peer
253+
local_value["sends_blocked"] = serde_json::json!(0 as u64); //report pre-0.1.8 status
254+
}
255+
256+
let send_result:TcpSendResult = serde_json::from_value(local_value)?;
252257
Ok(send_result)
253258
}
254259

@@ -392,7 +397,12 @@ pub struct UdpSendResult {
392397
}
393398
impl UdpSendResult {
394399
fn from_json(value:serde_json::Value) -> BoxResult<UdpSendResult> {
395-
let send_result:UdpSendResult = serde_json::from_value(value)?;
400+
let mut local_value = value.clone();
401+
if local_value.get("sends_blocked").is_none() { //pre-0.1.8 peer
402+
local_value["sends_blocked"] = serde_json::json!(0 as u64); //report pre-0.1.8 status
403+
}
404+
405+
let send_result:UdpSendResult = serde_json::from_value(local_value)?;
396406
Ok(send_result)
397407
}
398408

0 commit comments

Comments
 (0)