From 35b4f08049fab4a4b659885cce48856619fa725d Mon Sep 17 00:00:00 2001 From: toddouska Date: Fri, 26 Oct 2012 15:09:58 -0700 Subject: [PATCH] add CyaSSL_send()/recv() with flags parameter --- cyassl/ssl.h | 2 ++ src/ssl.c | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/cyassl/ssl.h b/cyassl/ssl.h index 6f8792095..e29bcc79f 100644 --- a/cyassl/ssl.h +++ b/cyassl/ssl.h @@ -190,6 +190,8 @@ CYASSL_API int CyaSSL_accept(CYASSL*); CYASSL_API void CyaSSL_CTX_free(CYASSL_CTX*); CYASSL_API void CyaSSL_free(CYASSL*); CYASSL_API int CyaSSL_shutdown(CYASSL*); +CYASSL_API int CyaSSL_send(CYASSL*, const void*, int sz, int flags); +CYASSL_API int CyaSSL_recv(CYASSL*, void*, int sz, int flags); CYASSL_API void CyaSSL_CTX_set_quiet_shutdown(CYASSL_CTX*, int); CYASSL_API void CyaSSL_set_quiet_shutdown(CYASSL*, int); diff --git a/src/ssl.c b/src/ssl.c index c0ec5cde8..f9efabd56 100644 --- a/src/ssl.c +++ b/src/ssl.c @@ -395,6 +395,40 @@ int CyaSSL_read(CYASSL* ssl, void* data, int sz) } +int CyaSSL_send(CYASSL* ssl, const void* data, int sz, int flags) +{ + int ret; + int oldFlags = ssl->wflags; + + CYASSL_ENTER("CyaSSL_send()"); + + ssl->wflags = flags; + ret = CyaSSL_write(ssl, data, sz); + ssl->wflags = oldFlags; + + CYASSL_LEAVE("CyaSSL_send()", ret); + + return ret; +} + + +int CyaSSL_recv(CYASSL* ssl, void* data, int sz, int flags) +{ + int ret; + int oldFlags = ssl->rflags; + + CYASSL_ENTER("CyaSSL_recv()"); + + ssl->rflags = flags; + ret = CyaSSL_read(ssl, data, sz); + ssl->rflags = oldFlags; + + CYASSL_LEAVE("CyaSSL_recv()", ret); + + return ret; +} + + int CyaSSL_shutdown(CYASSL* ssl) { CYASSL_ENTER("SSL_shutdown()");