diff options
| author | Linus Färnstrand <linus@mullvad.net> | 2017-03-06 17:28:54 +0100 |
|---|---|---|
| committer | Linus Färnstrand <linus@mullvad.net> | 2017-03-07 07:20:25 +0100 |
| commit | d1874d1734b6ddbae9d6149a3415379cb224db1a (patch) | |
| tree | 3ab290033e64dcbaf71430c594b58e4dc9b76dfb /src/process | |
| parent | 4917a64ac305bc157e3f78345c51b40d5ceea822 (diff) | |
| download | mullvadvpn-d1874d1734b6ddbae9d6149a3415379cb224db1a.tar.xz mullvadvpn-d1874d1734b6ddbae9d6149a3415379cb224db1a.zip | |
Add stop method to OpenVpnMonitor
Diffstat (limited to 'src/process')
| -rw-r--r-- | src/process/openvpn.rs | 15 |
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()?) } } |
