Merge branch 'master' into dapps-sync
Conflicts: Cargo.lock dapps/src/router/mod.rs signer/src/ws_server/session.rs
This commit is contained in:
@@ -22,7 +22,7 @@ use std::path::{PathBuf, Path};
|
||||
use std::sync::Arc;
|
||||
use std::str::FromStr;
|
||||
use jsonrpc_core::IoHandler;
|
||||
use util::{H256, version};
|
||||
use util::{H256, Mutex, version};
|
||||
|
||||
#[cfg(feature = "ui")]
|
||||
mod signer {
|
||||
@@ -95,7 +95,7 @@ fn add_headers(mut response: ws::Response, mime: &str) -> ws::Response {
|
||||
}
|
||||
|
||||
pub struct Session {
|
||||
out: ws::Sender,
|
||||
out: Arc<Mutex<ws::Sender>>,
|
||||
skip_origin_validation: bool,
|
||||
self_origin: String,
|
||||
authcodes_path: PathBuf,
|
||||
@@ -156,12 +156,16 @@ impl ws::Handler for Session {
|
||||
|
||||
fn on_message(&mut self, msg: ws::Message) -> ws::Result<()> {
|
||||
let req = try!(msg.as_text());
|
||||
match self.handler.handle_request(req) {
|
||||
Some(res) => {
|
||||
self.out.send(res)
|
||||
},
|
||||
None => Ok(()),
|
||||
if let Some(async) = self.handler.handle_request(req) {
|
||||
let out = self.out.clone();
|
||||
async.on_result(move |result| {
|
||||
let res = out.lock().send(result);
|
||||
if let Err(e) = res {
|
||||
warn!(target: "signer", "Error while sending response: {:?}", e);
|
||||
}
|
||||
});
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -188,7 +192,7 @@ impl ws::Factory for Factory {
|
||||
|
||||
fn connection_made(&mut self, sender: ws::Sender) -> Self::Handler {
|
||||
Session {
|
||||
out: sender,
|
||||
out: Arc::new(Mutex::new(sender)),
|
||||
handler: self.handler.clone(),
|
||||
skip_origin_validation: self.skip_origin_validation,
|
||||
self_origin: self.self_origin.clone(),
|
||||
|
||||
Reference in New Issue
Block a user