aboutsummaryrefslogtreecommitdiff
path: root/openssl/src/macros.rs
diff options
context:
space:
mode:
Diffstat (limited to 'openssl/src/macros.rs')
-rw-r--r--openssl/src/macros.rs23
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)
+ }
+ })
+}