diff options
| author | Erik Larkö <erik@mullvad.net> | 2017-03-22 13:07:00 +0800 |
|---|---|---|
| committer | Erik Larkö <erik@mullvad.net> | 2017-03-22 14:33:16 +0800 |
| commit | e3870e91df3558ab7ae3c853009632b42de32e63 (patch) | |
| tree | 2feb8e22a4278e249eaa9d69d42a25e52cf1f7ef | |
| parent | 0b849ba02420a6c1d47b7f13fa7c7105e232d2f3 (diff) | |
| download | mullvadvpn-e3870e91df3558ab7ae3c853009632b42de32e63.tar.xz mullvadvpn-e3870e91df3558ab7ae3c853009632b42de32e63.zip | |
Simplify serde parsing
| -rw-r--r-- | talpid_ipc/src/http_ipc.rs | 20 |
1 files changed, 2 insertions, 18 deletions
diff --git a/talpid_ipc/src/http_ipc.rs b/talpid_ipc/src/http_ipc.rs index ce06c2e356..bfa21756f5 100644 --- a/talpid_ipc/src/http_ipc.rs +++ b/talpid_ipc/src/http_ipc.rs @@ -4,7 +4,6 @@ extern crate hyper; use super::{ErrorKind, Result, ResultExt, IpcServerId}; use serde; -use std::io::Read; use std::thread; pub fn start_new_server<T, U, F>(on_message: F) -> Result<IpcServerId> @@ -46,19 +45,7 @@ fn start_receive_loop<T, U, F>(server: tiny_http::Server, mut on_message: F) } fn parse_request<T: serde::Deserialize>(request: &mut tiny_http::Request) -> Result<T> { - read_body_as_string(request) - .and_then(|s| serde_json::from_str(&s).chain_err(|| ErrorKind::ParseFailure)) -} - -fn read_body_as_string(request: &mut tiny_http::Request) -> Result<String> { - let mut buffer = String::new(); - let res = request.as_reader() - .read_to_string(&mut buffer) - .chain_err(|| ErrorKind::ReadFailure) - .map(|_| buffer); - - debug!("HTTP IPC read body {:?}", res); - res + serde_json::from_reader(request.as_reader()).chain_err(|| ErrorKind::ParseFailure) } fn send_response<U: serde::Serialize>(response: &U, request: tiny_http::Request) -> Result<()> { @@ -109,9 +96,6 @@ impl<T, U> IpcClient<T, U> } fn parse_reply(reply: &mut hyper::client::response::Response) -> Result<U> { - let mut buffer = String::new(); - reply.read_to_string(&mut buffer).chain_err(|| ErrorKind::ParseFailure)?; - - serde_json::from_str(&buffer).chain_err(|| ErrorKind::ParseFailure) + serde_json::from_reader(reply).chain_err(|| ErrorKind::ParseFailure) } } |
