diff --git a/drone/src/bin/drone.rs b/drone/src/bin/drone.rs index 3cf2fb78c..3f2125769 100644 --- a/drone/src/bin/drone.rs +++ b/drone/src/bin/drone.rs @@ -1,3 +1,4 @@ +use bytes::Bytes; use clap::{crate_description, crate_name, crate_version, App, Arg}; use log::*; use solana_drone::drone::{Drone, DRONE_PORT}; @@ -85,12 +86,16 @@ fn main() -> Result<(), Box> { let (writer, reader) = framed.split(); let processor = reader.and_then(move |bytes| { - let response_bytes = drone2 - .lock() - .unwrap() - .process_drone_request(&bytes) - .unwrap(); - Ok(response_bytes) + match drone2.lock().unwrap().process_drone_request(&bytes) { + Ok(response_bytes) => { + trace!("Airdrop response_bytes: {:?}", response_bytes.to_vec()); + Ok(response_bytes) + } + Err(e) => { + info!("Error in request: {:?}", e); + Ok(Bytes::from(&b""[..])) + } + } }); let server = writer .send_all(processor.or_else(|err| { diff --git a/drone/src/drone.rs b/drone/src/drone.rs index a4e1add59..e015f3e8e 100644 --- a/drone/src/drone.rs +++ b/drone/src/drone.rs @@ -267,13 +267,16 @@ pub fn run_local_drone( let (writer, reader) = framed.split(); let processor = reader.and_then(move |bytes| { - let response_bytes = drone2 - .lock() - .unwrap() - .process_drone_request(&bytes) - .unwrap(); - trace!("Airdrop response_bytes: {:?}", response_bytes.to_vec()); - Ok(response_bytes) + match drone2.lock().unwrap().process_drone_request(&bytes) { + Ok(response_bytes) => { + trace!("Airdrop response_bytes: {:?}", response_bytes.to_vec()); + Ok(response_bytes) + } + Err(e) => { + info!("Error in request: {:?}", e); + Ok(Bytes::from(&b""[..])) + } + } }); let server = writer .send_all(processor.or_else(|err| {