diff options
| author | Linus Färnstrand <linus@mullvad.net> | 2017-05-18 10:13:47 +0200 |
|---|---|---|
| committer | Linus Färnstrand <linus@mullvad.net> | 2017-05-18 13:52:34 +0200 |
| commit | e6aa7f23e145eba399f9ef5fbd12f631d629adb9 (patch) | |
| tree | 946739720d869412d545df0ca2ddbc269dae4369 | |
| parent | 1a8c2a002e34c8be6f38a9264e16048944be8a7d (diff) | |
| download | mullvadvpn-e6aa7f23e145eba399f9ef5fbd12f631d629adb9.tar.xz mullvadvpn-e6aa7f23e145eba399f9ef5fbd12f631d629adb9.zip | |
Remove port_offset from IpcServer. Bind port zero
| -rw-r--r-- | mullvad_daemon/src/mock_ipc.rs | 27 | ||||
| -rw-r--r-- | talpid_ipc/src/lib.rs | 15 |
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, } }, |
