summaryrefslogtreecommitdiffhomepage
path: root/src/process
diff options
context:
space:
mode:
authorLinus Färnstrand <linus@mullvad.net>2017-03-06 17:28:54 +0100
committerLinus Färnstrand <linus@mullvad.net>2017-03-07 07:20:25 +0100
commitd1874d1734b6ddbae9d6149a3415379cb224db1a (patch)
tree3ab290033e64dcbaf71430c594b58e4dc9b76dfb /src/process
parent4917a64ac305bc157e3f78345c51b40d5ceea822 (diff)
downloadmullvadvpn-d1874d1734b6ddbae9d6149a3415379cb224db1a.tar.xz
mullvadvpn-d1874d1734b6ddbae9d6149a3415379cb224db1a.zip
Add stop method to OpenVpnMonitor
Diffstat (limited to 'src/process')
-rw-r--r--src/process/openvpn.rs15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/process/openvpn.rs b/src/process/openvpn.rs
index c02d6b5bf1..79237b9eff 100644
--- a/src/process/openvpn.rs
+++ b/src/process/openvpn.rs
@@ -168,15 +168,15 @@ pub enum OpenVpnEvent {
/// A struct able to start and monitor OpenVPN procesess.
pub struct OpenVpnMonitor {
command: OpenVpnCommand,
- monitor: Option<ChildMonitor<OpenVpnCommand>>,
+ monitor: ChildMonitor<OpenVpnCommand>,
}
impl OpenVpnMonitor {
/// Creates a new `OpenVpnMonitor` based on the given command
pub fn new(command: OpenVpnCommand) -> Self {
OpenVpnMonitor {
- command: command,
- monitor: None,
+ command: command.clone(),
+ monitor: ChildMonitor::new(command),
}
}
@@ -212,8 +212,13 @@ impl OpenVpnMonitor {
(listener.deref_mut())(OpenVpnEvent::Shutdown(clean_exit));
};
- self.monitor = Some(ChildMonitor::new(self.command.clone()));
- Ok(self.monitor.as_mut().unwrap().start(callback)?)
+ self.monitor = ChildMonitor::new(self.command.clone());
+ Ok(self.monitor.start(callback)?)
+ }
+
+ /// Forwards a stop call to the underlying `ChildMonitor`.
+ pub fn stop(&self) -> Result<()> {
+ Ok(self.monitor.stop()?)
}
}