summaryrefslogtreecommitdiffhomepage
path: root/talpid_openvpn_plugin
diff options
context:
space:
mode:
authorLinus Färnstrand <linus@mullvad.net>2017-02-28 18:32:09 +0100
committerLinus Färnstrand <linus@mullvad.net>2017-03-02 14:41:18 +0100
commit0264d28adee81f279934f243da9e4774caed4e9e (patch)
treeac7af2ef7c62fbaf5eb447ac515c6c5ddf4267f1 /talpid_openvpn_plugin
parent1e546d46fba261a3e3b6c4ea43f4a7e16aa64c5b (diff)
downloadmullvadvpn-0264d28adee81f279934f243da9e4774caed4e9e.tar.xz
mullvadvpn-0264d28adee81f279934f243da9e4774caed4e9e.zip
Add number to enum parsing error
Diffstat (limited to 'talpid_openvpn_plugin')
-rw-r--r--talpid_openvpn_plugin/src/ffi/consts.rs9
1 files changed, 5 insertions, 4 deletions
diff --git a/talpid_openvpn_plugin/src/ffi/consts.rs b/talpid_openvpn_plugin/src/ffi/consts.rs
index 34f6f6c44b..18473dbc07 100644
--- a/talpid_openvpn_plugin/src/ffi/consts.rs
+++ b/talpid_openvpn_plugin/src/ffi/consts.rs
@@ -5,8 +5,9 @@ use std::os::raw::c_int;
error_chain!{
errors {
- InvalidEnumVariant {
+ InvalidEnumVariant(i: c_int) {
description("Integer does not match any enum variant")
+ display("{} is not a valid OPENVPN_PLUGIN_* constant", i)
}
}
}
@@ -34,7 +35,7 @@ impl OpenVpnPluginEvent {
if i >= OpenVpnPluginEvent::Up as c_int && i <= OpenVpnPluginEvent::N as c_int {
Ok(unsafe { ::std::mem::transmute_copy::<c_int, OpenVpnPluginEvent>(&i) })
} else {
- Err(ErrorKind::InvalidEnumVariant.into())
+ Err(ErrorKind::InvalidEnumVariant(i).into())
}
}
}
@@ -76,13 +77,13 @@ mod tests {
#[test]
fn from_int_negative() {
let result = OpenVpnPluginEvent::from_int(-5);
- assert_matches!(result, Err(Error(ErrorKind::InvalidEnumVariant, _)));
+ assert_matches!(result, Err(Error(ErrorKind::InvalidEnumVariant(-5), _)));
}
#[test]
fn from_int_invalid() {
let result = OpenVpnPluginEvent::from_int(14);
- assert_matches!(result, Err(Error(ErrorKind::InvalidEnumVariant, _)));
+ assert_matches!(result, Err(Error(ErrorKind::InvalidEnumVariant(14), _)));
}
#[test]