summaryrefslogtreecommitdiff
path: root/vio/viossl.c
diff options
context:
space:
mode:
authorunknown <knielsen@knielsen-hq.org>2012-02-21 22:15:44 +0100
committerunknown <knielsen@knielsen-hq.org>2012-02-21 22:15:44 +0100
commitf6b68a10707c95e24f67d338eaaa03f1bd575598 (patch)
treebd7748f0d0a239145e4c02b223f523b4c571aacb /vio/viossl.c
parent4b9907979ce316be12a7ce2b62874b42edf2e39e (diff)
parent7c8ebb532eef543a9b98107c164a12a49e28d0ca (diff)
downloadmariadb-git-f6b68a10707c95e24f67d338eaaa03f1bd575598.tar.gz
Merge MWL#192: Non-blocking client library, into MariaDB 5.5.
Diffstat (limited to 'vio/viossl.c')
-rw-r--r--vio/viossl.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/vio/viossl.c b/vio/viossl.c
index b40f7b931e6..48881cc2903 100644
--- a/vio/viossl.c
+++ b/vio/viossl.c
@@ -21,6 +21,8 @@
*/
#include "vio_priv.h"
+#include "my_context.h"
+#include <mysql_async.h>
#ifdef HAVE_OPENSSL
@@ -66,7 +68,10 @@ size_t vio_ssl_read(Vio *vio, uchar* buf, size_t size)
DBUG_PRINT("enter", ("sd: %d buf: 0x%lx size: %u ssl: 0x%lx",
vio->sd, (long) buf, (uint) size, (long) vio->ssl_arg));
- r= SSL_read((SSL*) vio->ssl_arg, buf, size);
+ if (vio->async_context && vio->async_context->active)
+ r= my_ssl_read_async(vio->async_context, (SSL *)vio->ssl_arg, buf, size);
+ else
+ r= SSL_read((SSL*) vio->ssl_arg, buf, size);
#ifndef DBUG_OFF
if (r == (size_t) -1)
report_errors((SSL*) vio->ssl_arg);
@@ -83,7 +88,10 @@ size_t vio_ssl_write(Vio *vio, const uchar* buf, size_t size)
DBUG_PRINT("enter", ("sd: %d buf: 0x%lx size: %u", vio->sd,
(long) buf, (uint) size));
- r= SSL_write((SSL*) vio->ssl_arg, buf, size);
+ if (vio->async_context && vio->async_context->active)
+ r= my_ssl_write_async(vio->async_context, (SSL *)vio->ssl_arg, buf, size);
+ else
+ r= SSL_write((SSL*) vio->ssl_arg, buf, size);
#ifndef DBUG_OFF
if (r == (size_t) -1)
report_errors((SSL*) vio->ssl_arg);