Nicer port in use errors (#2859)
* dapps port * rpc port * signer port * different instance as possible cause * network port
This commit is contained in:
parent
4fc1c5f42e
commit
8d0cff3599
@ -102,6 +102,7 @@ mod server {
|
|||||||
use super::Dependencies;
|
use super::Dependencies;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use std::net::SocketAddr;
|
use std::net::SocketAddr;
|
||||||
|
use std::io;
|
||||||
use util::{Bytes, Address, U256};
|
use util::{Bytes, Address, U256};
|
||||||
|
|
||||||
use ethcore::transaction::{Transaction, Action};
|
use ethcore::transaction::{Transaction, Action};
|
||||||
@ -143,7 +144,10 @@ mod server {
|
|||||||
};
|
};
|
||||||
|
|
||||||
match start_result {
|
match start_result {
|
||||||
Err(dapps::ServerError::IoError(err)) => Err(format!("WebApps io error: {}", err)),
|
Err(dapps::ServerError::IoError(err)) => match err.kind() {
|
||||||
|
io::ErrorKind::AddrInUse => Err(format!("WebApps address {} is already in use, make sure that another instance of an Ethereum client is not running or change the address using the --dapps-port and --dapps-interface options.", url)),
|
||||||
|
_ => Err(format!("WebApps io error: {}", err)),
|
||||||
|
},
|
||||||
Err(e) => Err(format!("WebApps error: {:?}", e)),
|
Err(e) => Err(format!("WebApps error: {:?}", e)),
|
||||||
Ok(server) => {
|
Ok(server) => {
|
||||||
server.set_panic_handler(move || {
|
server.set_panic_handler(move || {
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
use std::fmt;
|
use std::fmt;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use std::net::SocketAddr;
|
use std::net::SocketAddr;
|
||||||
|
use std::io;
|
||||||
use io::PanicHandler;
|
use io::PanicHandler;
|
||||||
use ethcore_rpc::{RpcServerError, RpcServer as Server};
|
use ethcore_rpc::{RpcServerError, RpcServer as Server};
|
||||||
use jsonipc;
|
use jsonipc;
|
||||||
@ -108,7 +109,10 @@ pub fn setup_http_rpc_server(
|
|||||||
let ph = dependencies.panic_handler.clone();
|
let ph = dependencies.panic_handler.clone();
|
||||||
let start_result = server.start_http(url, cors_domains, allowed_hosts, ph);
|
let start_result = server.start_http(url, cors_domains, allowed_hosts, ph);
|
||||||
match start_result {
|
match start_result {
|
||||||
Err(RpcServerError::IoError(err)) => Err(format!("RPC io error: {}", err)),
|
Err(RpcServerError::IoError(err)) => match err.kind() {
|
||||||
|
io::ErrorKind::AddrInUse => Err(format!("RPC address {} is already in use, make sure that another instance of an Ethereum client is not running or change the address using the --jsonrpc-port and --jsonrpc-interface options.", url)),
|
||||||
|
_ => Err(format!("RPC io error: {}", err)),
|
||||||
|
},
|
||||||
Err(e) => Err(format!("RPC error: {:?}", e)),
|
Err(e) => Err(format!("RPC error: {:?}", e)),
|
||||||
Ok(server) => Ok(server),
|
Ok(server) => Ok(server),
|
||||||
}
|
}
|
||||||
|
@ -103,7 +103,10 @@ fn do_start(conf: Configuration, deps: Dependencies) -> Result<SignerServer, Str
|
|||||||
};
|
};
|
||||||
|
|
||||||
match start_result {
|
match start_result {
|
||||||
Err(signer::ServerError::IoError(err)) => Err(format!("Trusted Signer Error: {}", err)),
|
Err(signer::ServerError::IoError(err)) => match err.kind() {
|
||||||
|
io::ErrorKind::AddrInUse => Err(format!("Trusted Signer address {} is already in use, make sure that another instance of an Ethereum client is not running or change the address using the --signer-port and --signer-interface options.", addr)),
|
||||||
|
_ => Err(format!("Trusted Signer io error: {}", err)),
|
||||||
|
},
|
||||||
Err(e) => Err(format!("Trusted Signer Error: {:?}", e)),
|
Err(e) => Err(format!("Trusted Signer Error: {:?}", e)),
|
||||||
Ok(server) => {
|
Ok(server) => {
|
||||||
deps.panic_handler.forward_from(&server);
|
deps.panic_handler.forward_from(&server);
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
use std::io;
|
||||||
use util::Bytes;
|
use util::Bytes;
|
||||||
use network::{NetworkProtocolHandler, NetworkService, NetworkContext, PeerId, ProtocolId,
|
use network::{NetworkProtocolHandler, NetworkService, NetworkContext, PeerId, ProtocolId,
|
||||||
NetworkConfiguration as BasicNetworkConfiguration, NonReservedPeerMode, NetworkError,
|
NetworkConfiguration as BasicNetworkConfiguration, NonReservedPeerMode, NetworkError,
|
||||||
@ -210,7 +211,11 @@ impl ChainNotify for EthSync {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn start(&self) {
|
fn start(&self) {
|
||||||
self.network.start().unwrap_or_else(|e| warn!("Error starting network: {:?}", e));
|
match self.network.start() {
|
||||||
|
Err(NetworkError::StdIo(ref e)) if e.kind() == io::ErrorKind::AddrInUse => warn!("Network port {:?} is already in use, make sure that another instance of an Ethereum client is not running or change the port using the --port option.", self.network.config().listen_address.expect("Listen address is not set.")),
|
||||||
|
Err(err) => warn!("Error starting network: {}", err),
|
||||||
|
_ => {},
|
||||||
|
}
|
||||||
self.network.register_protocol(self.handler.clone(), self.subprotocol_name, ETH_PACKET_COUNT, &[62u8, 63u8])
|
self.network.register_protocol(self.handler.clone(), self.subprotocol_name, ETH_PACKET_COUNT, &[62u8, 63u8])
|
||||||
.unwrap_or_else(|e| warn!("Error registering ethereum protocol: {:?}", e));
|
.unwrap_or_else(|e| warn!("Error registering ethereum protocol: {:?}", e));
|
||||||
// register the warp sync subprotocol
|
// register the warp sync subprotocol
|
||||||
|
Loading…
Reference in New Issue
Block a user