diff options
author | Michael Widenius <monty@askmonty.org> | 2012-08-17 16:46:34 +0300 |
---|---|---|
committer | Michael Widenius <monty@askmonty.org> | 2012-08-17 16:46:34 +0300 |
commit | f1159b18d930910d5b5b9c454a17b0ee66f853c3 (patch) | |
tree | 67d9ac4fb191347f0fff24a4b2b1f0e9fceda319 /vio | |
parent | 60589aeee03949033c66da5c1eae70d4342179fc (diff) | |
download | mariadb-git-f1159b18d930910d5b5b9c454a17b0ee66f853c3.tar.gz |
More fixes
Diffstat (limited to 'vio')
-rw-r--r-- | vio/vio.c | 8 | ||||
-rw-r--r-- | vio/vio_priv.h | 1 | ||||
-rw-r--r-- | vio/viossl.c | 10 |
3 files changed, 19 insertions, 0 deletions
diff --git a/vio/vio.c b/vio/vio.c index e2a3b9dcf50..a18482f3dfd 100644 --- a/vio/vio.c +++ b/vio/vio.c @@ -106,6 +106,8 @@ static void vio_init(Vio *vio, enum enum_vio_type type, vio->was_timeout =vio_was_timeout; vio->vioclose =vio_close_pipe; vio->peer_addr =vio_peer_addr; + vio->vioblocking =vio_blocking; + vio->is_blocking =vio_is_blocking; vio->io_wait =no_io_wait; vio->is_connected =vio_is_connected_pipe; vio->has_data =has_no_data; @@ -126,6 +128,8 @@ static void vio_init(Vio *vio, enum enum_vio_type type, vio->was_timeout =vio_was_timeout; vio->vioclose =vio_close_shared_memory; vio->peer_addr =vio_peer_addr; + vio->vioblocking =vio_blocking; + vio->is_blocking =vio_is_blocking; vio->io_wait =no_io_wait; vio->is_connected =vio_is_connected_shared_memory; vio->has_data =vio_shared_memory_has_data; @@ -146,6 +150,8 @@ static void vio_init(Vio *vio, enum enum_vio_type type, vio->was_timeout =vio_was_timeout; vio->vioclose =vio_ssl_close; vio->peer_addr =vio_peer_addr; + vio->vioblocking =vio_ssl_blocking; + vio->is_blocking =vio_is_blocking; vio->io_wait =vio_io_wait; vio->is_connected =vio_is_connected; vio->has_data =vio_ssl_has_data; @@ -164,6 +170,8 @@ static void vio_init(Vio *vio, enum enum_vio_type type, vio->was_timeout =vio_was_timeout; vio->vioclose =vio_close; vio->peer_addr =vio_peer_addr; + vio->vioblocking =vio_blocking; + vio->is_blocking =vio_is_blocking; vio->io_wait =vio_io_wait; vio->is_connected =vio_is_connected; vio->shutdown =vio_socket_shutdown; diff --git a/vio/vio_priv.h b/vio/vio_priv.h index c1dc090a106..248e1a59b23 100644 --- a/vio/vio_priv.h +++ b/vio/vio_priv.h @@ -58,6 +58,7 @@ size_t vio_ssl_write(Vio *vio,const uchar* buf, size_t size); /* When the workday is over... */ int vio_ssl_close(Vio *vio); void vio_ssl_delete(Vio *vio); +int vio_ssl_blocking(Vio *vio, my_bool set_blocking_mode, my_bool *old_mode); my_bool vio_ssl_has_data(Vio *vio); #endif /* HAVE_OPENSSL */ diff --git a/vio/viossl.c b/vio/viossl.c index dfca68947cc..74ad97809e2 100644 --- a/vio/viossl.c +++ b/vio/viossl.c @@ -451,6 +451,16 @@ int sslconnect(struct st_VioSSLFd *ptr, Vio *vio, long timeout, unsigned long *e } +int vio_ssl_blocking(Vio *vio __attribute__((unused)), + my_bool set_blocking_mode, + my_bool *old_mode) +{ + /* Mode is always blocking */ + *old_mode= 1; + /* Return error if we try to change to non_blocking mode */ + return (set_blocking_mode ? 0 : 1); +} + my_bool vio_ssl_has_data(Vio *vio) { return SSL_pending(vio->ssl_arg) > 0 ? TRUE : FALSE; |