diff options
author | Konstantin Osipov <kostja@sun.com> | 2009-11-21 02:12:23 +0300 |
---|---|---|
committer | Konstantin Osipov <kostja@sun.com> | 2009-11-21 02:12:23 +0300 |
commit | 6bdc288ff2b0cf1c4cbe6cfd1af54e93056937d9 (patch) | |
tree | 5dce889282a827cf14833d620768175a0d2da231 /include/violite.h | |
parent | c4d22fda0e8f531fee43656628671f5ce523fd9f (diff) | |
download | mariadb-git-6bdc288ff2b0cf1c4cbe6cfd1af54e93056937d9.tar.gz |
Backport the implementation of vio_pending from 6.0-codebase.
Original changeset:
------------------------------------------------------------
revno: 2626
committer: davi@mysql.com/endora.local
timestamp: Wed 2008-04-23 09:33:25 -0300
message:
Fix for main.ssl and main.ssl_compress test case failures under pool-of-threads.
The problem is that the SSL layer has a read buffer and might read
more data than requested by the VIO layer. The SSL layer empties the
socket buffer which causes the socket to not be signaled for IO if
the client is waiting for a command which is sitting in the read
buffer.
The solution is to retrieve from the transport layer the number of
bytes waiting in the read buffer. The data in the read buffer needs
to be processed before waiting for more data.
Diffstat (limited to 'include/violite.h')
-rw-r--r-- | include/violite.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/violite.h b/include/violite.h index 0af7a566307..3e8e430392b 100644 --- a/include/violite.h +++ b/include/violite.h @@ -86,6 +86,7 @@ my_bool vio_peer_addr(Vio* vio, char *buf, uint16 *port); void vio_in_addr(Vio *vio, struct in_addr *in); my_bool vio_poll_read(Vio *vio, uint timeout); my_bool vio_is_connected(Vio *vio); +ssize_t vio_pending(Vio *vio); #ifdef HAVE_OPENSSL #include <openssl/opensslv.h> |