summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorLinus Färnstrand <linus@mullvad.net>2017-05-18 10:13:47 +0200
committerLinus Färnstrand <linus@mullvad.net>2017-05-18 13:52:34 +0200
commite6aa7f23e145eba399f9ef5fbd12f631d629adb9 (patch)
tree946739720d869412d545df0ca2ddbc269dae4369
parent1a8c2a002e34c8be6f38a9264e16048944be8a7d (diff)
downloadmullvadvpn-e6aa7f23e145eba399f9ef5fbd12f631d629adb9.tar.xz
mullvadvpn-e6aa7f23e145eba399f9ef5fbd12f631d629adb9.zip
Remove port_offset from IpcServer. Bind port zero
-rw-r--r--mullvad_daemon/src/mock_ipc.rs27
-rw-r--r--talpid_ipc/src/lib.rs15
2 files changed, 12 insertions, 30 deletions
diff --git a/mullvad_daemon/src/mock_ipc.rs b/mullvad_daemon/src/mock_ipc.rs
index e490357741..dd76f8f8c0 100644
--- a/mullvad_daemon/src/mock_ipc.rs
+++ b/mullvad_daemon/src/mock_ipc.rs
@@ -21,17 +21,13 @@ pub struct IpcServer {
impl IpcServer {
pub fn start() -> talpid_ipc::Result<Self> {
let active_subscriptions = ActiveSubscriptions::default();
- let mut last_error = None;
- for i in 0..10 {
- match Self::try_start(active_subscriptions.clone(), i) {
- Ok(server) => {
- Self::spawn_broadcast_thread(active_subscriptions);
- return Ok(IpcServer { server });
- }
- Err(e) => last_error = Some(e),
- }
- }
- bail!(last_error.unwrap());
+ let rpc = MockIpcApi::new(active_subscriptions.clone());
+ let mut io = PubSubHandler::default();
+ io.extend_with(rpc.to_delegate());
+ let server = talpid_ipc::IpcServer::start_with_metadata(io.into(), meta_extractor)?;
+
+ Self::spawn_broadcast_thread(active_subscriptions);
+ Ok(IpcServer { server })
}
pub fn address(&self) -> &str {
@@ -42,15 +38,6 @@ impl IpcServer {
self.server.wait()
}
- fn try_start(active_subscriptions: ActiveSubscriptions,
- port_offset: u8)
- -> talpid_ipc::Result<talpid_ipc::IpcServer> {
- let rpc = MockIpcApi::new(active_subscriptions);
- let mut io = PubSubHandler::default();
- io.extend_with(rpc.to_delegate());
- talpid_ipc::IpcServer::start_with_metadata(io.into(), meta_extractor, port_offset)
- }
-
// TODO(linus): This thread will never die. But this is just mock anyway so not important.
fn spawn_broadcast_thread(active_subscriptions: ActiveSubscriptions) {
::std::thread::spawn(
diff --git a/talpid_ipc/src/lib.rs b/talpid_ipc/src/lib.rs
index bad341bb32..8452a8db92 100644
--- a/talpid_ipc/src/lib.rs
+++ b/talpid_ipc/src/lib.rs
@@ -55,27 +55,22 @@ pub struct IpcServer {
}
impl IpcServer {
- pub fn start<M: Metadata>(handler: MetaIoHandler<M>, port_offset: u8) -> Result<Self> {
- Self::start_with_metadata(handler, NoopExtractor, port_offset)
+ pub fn start<M: Metadata>(handler: MetaIoHandler<M>) -> Result<Self> {
+ Self::start_with_metadata(handler, NoopExtractor)
}
- pub fn start_with_metadata<M, E>(handler: MetaIoHandler<M>,
- meta_extractor: E,
- port_offset: u8)
- -> Result<Self>
+ pub fn start_with_metadata<M, E>(handler: MetaIoHandler<M>, meta_extractor: E) -> Result<Self>
where M: Metadata,
E: MetaExtractor<M>
{
- let port = 5000 + port_offset as u16;
- let ip = IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1));
- let listen_addr = SocketAddr::new(ip, port);
+ let listen_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 0);
ServerBuilder::new(handler)
.session_meta_extractor(meta_extractor)
.start(&listen_addr)
.map(
|server| {
IpcServer {
- address: format!("ws://{}", listen_addr),
+ address: format!("ws://{}", server.addr()),
server: server,
}
},