From e3ee50b7af30c313229b232017dfce9ec709c78f Mon Sep 17 00:00:00 2001 From: Antoine Poinsot Date: Wed, 28 Jun 2023 11:30:33 +0200 Subject: [PATCH] Update rust-jsonrpc dependency to latest version --- Cargo.lock | 22 +++-------------- Cargo.toml | 2 +- src/bitcoin/d/mod.rs | 4 +--- src/lib.rs | 56 +++++++++++++++++++++++++------------------- 4 files changed, 37 insertions(+), 47 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b58d267a..fcbe7ccc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -49,15 +49,6 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" -[[package]] -name = "base64-compat" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a8d4d2746f89841e49230dd26917df1876050f95abafafbe34f47cb534b88d7" -dependencies = [ - "byteorder", -] - [[package]] name = "bech32" version = "0.9.1" @@ -118,12 +109,6 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" -[[package]] -name = "byteorder" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" - [[package]] name = "cc" version = "1.0.73" @@ -226,13 +211,12 @@ checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" [[package]] name = "jsonrpc" -version = "0.12.1" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f8423b78fc94d12ef1a4a9d13c348c9a78766dda0cc18817adf0faf77e670c8" +checksum = "34efde8d2422fb79ed56db1d3aea8fa5b583351d15a26770cdee2f88813dd702" dependencies = [ - "base64-compat", + "base64", "serde", - "serde_derive", "serde_json", ] diff --git a/Cargo.toml b/Cargo.toml index fac64f57..7a94ae86 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -49,7 +49,7 @@ backtrace = "0.3" rusqlite = { version = "0.27", features = ["bundled", "unlock_notify"] } # To talk to bitcoind -jsonrpc = "0.12" +jsonrpc = "0.16" # Used for daemonization libc = { version = "0.2", optional = true } diff --git a/src/bitcoin/d/mod.rs b/src/bitcoin/d/mod.rs index 798694ff..e95c5e2f 100644 --- a/src/bitcoin/d/mod.rs +++ b/src/bitcoin/d/mod.rs @@ -77,7 +77,6 @@ impl BitcoindError { match self { BitcoindError::Server(jsonrpc::Error::Transport(ref e)) => { match e.downcast_ref::() { - Some(simple_http::Error::Timeout) => true, Some(simple_http::Error::SocketError(e)) => e.kind() == io::ErrorKind::TimedOut, _ => false, } @@ -310,8 +309,7 @@ impl BitcoinD { error = Some(e) } else if let BitcoindError::Server(jsonrpc::Error::Transport(ref err)) = e { match err.downcast_ref::() { - Some(simple_http::Error::Timeout) - | Some(simple_http::Error::SocketError(_)) + Some(simple_http::Error::SocketError(_)) | Some(simple_http::Error::HttpErrorCode(503)) => { if i <= self.retries { std::thread::sleep(Duration::from_secs(1)); diff --git a/src/lib.rs b/src/lib.rs index abb52019..d0e61392 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -513,10 +513,12 @@ mod tests { "HTTP/1.1 200\n\r\n{\"jsonrpc\":\"2.0\",\"id\":1,\"result\":[]}\n".as_bytes(); // Read the first echo, respond to it - let (mut stream, _) = server.accept().unwrap(); - read_til_json_end(&mut stream); - stream.write_all(echo_resp).unwrap(); - stream.flush().unwrap(); + { + let (mut stream, _) = server.accept().unwrap(); + read_til_json_end(&mut stream); + stream.write_all(echo_resp).unwrap(); + stream.flush().unwrap(); + } // Read the second echo, respond to it let (mut stream, _) = server.accept().unwrap(); @@ -549,23 +551,27 @@ mod tests { // Send them responses for the calls involved when creating a fresh wallet fn complete_wallet_creation(server: &net::TcpListener) { - let net_resp = - ["HTTP/1.1 200\n\r\n{\"jsonrpc\":\"2.0\",\"id\":1,\"result\":[]}\n".as_bytes()] - .concat(); - let (mut stream, _) = server.accept().unwrap(); - read_til_json_end(&mut stream); - stream.write_all(&net_resp).unwrap(); - stream.flush().unwrap(); + { + let net_resp = + ["HTTP/1.1 200\n\r\n{\"jsonrpc\":\"2.0\",\"id\":1,\"result\":[]}\n".as_bytes()] + .concat(); + let (mut stream, _) = server.accept().unwrap(); + read_til_json_end(&mut stream); + stream.write_all(&net_resp).unwrap(); + stream.flush().unwrap(); + } - let net_resp = [ + { + let net_resp = [ "HTTP/1.1 200\n\r\n{\"jsonrpc\":\"2.0\",\"id\":1,\"result\":{\"name\":\"dummy\"}}\n" .as_bytes(), - ] - .concat(); - let (mut stream, _) = server.accept().unwrap(); - read_til_json_end(&mut stream); - stream.write_all(&net_resp).unwrap(); - stream.flush().unwrap(); + ] + .concat(); + let (mut stream, _) = server.accept().unwrap(); + read_til_json_end(&mut stream); + stream.write_all(&net_resp).unwrap(); + stream.flush().unwrap(); + } let net_resp = [ "HTTP/1.1 200\n\r\n{\"jsonrpc\":\"2.0\",\"id\":1,\"result\":[{\"success\":true}]}\n" @@ -580,12 +586,14 @@ mod tests { // Send them a dummy result to loadwallet. fn complete_wallet_loading(server: &net::TcpListener) { - let listwallets_resp = - "HTTP/1.1 200\n\r\n{\"jsonrpc\":\"2.0\",\"id\":1,\"result\":[]}\n".as_bytes(); - let (mut stream, _) = server.accept().unwrap(); - read_til_json_end(&mut stream); - stream.write_all(listwallets_resp).unwrap(); - stream.flush().unwrap(); + { + let listwallets_resp = + "HTTP/1.1 200\n\r\n{\"jsonrpc\":\"2.0\",\"id\":1,\"result\":[]}\n".as_bytes(); + let (mut stream, _) = server.accept().unwrap(); + read_til_json_end(&mut stream); + stream.write_all(listwallets_resp).unwrap(); + stream.flush().unwrap(); + } let loadwallet_resp = "HTTP/1.1 200\n\r\n{\"jsonrpc\":\"2.0\",\"id\":1,\"result\":{\"name\":\"dummy\"}}\n"