diff options
Diffstat (limited to 'openssl/src/macros.rs')
| -rw-r--r-- | openssl/src/macros.rs | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/openssl/src/macros.rs b/openssl/src/macros.rs index 35221f1c..e2d9cae5 100644 --- a/openssl/src/macros.rs +++ b/openssl/src/macros.rs @@ -33,6 +33,17 @@ macro_rules! try_ssl_null{ }) } +/// Shortcut return with SSL error if last error result is -1 +/// (default for size) +macro_rules! try_ssl_returns_size{ + ($e:expr) => ( + if $e == -1 { + return Err(::error::ErrorStack::get().into()) + } else { + $e + } + ) +} /// Lifts current SSL error code into Result<(), Error> /// if expression is true @@ -57,3 +68,15 @@ macro_rules! lift_ssl_if{ macro_rules! lift_ssl { ($e:expr) => (lift_ssl_if!($e == 0)) } + +/// Lifts current SSL error code into Result<(), Error> +/// if SSL returned -1 (default size error indication) +macro_rules! lift_ssl_returns_size { + ($e:expr) => ( { + if $e == -1 { + Err(::error::ErrorStack::get().into()) + } else { + Ok($e) + } + }) +} |