diff options
author | unknown <msvensson@neptunus.(none)> | 2005-09-01 11:46:43 +0200 |
---|---|---|
committer | unknown <msvensson@neptunus.(none)> | 2005-09-01 11:46:43 +0200 |
commit | c16f09cc2a9fe79c5a7ee663057b2c375e96c70b (patch) | |
tree | 4daf5317650035bf1bbdfc42f168595d88bc9d54 | |
parent | 5f097498f18ca9290bfe915414d1d67445cba01c (diff) | |
download | mariadb-git-c16f09cc2a9fe79c5a7ee663057b2c375e96c70b.tar.gz |
Bug #11286 yassl incompatible with "load data infile"
- Make sure that mysqltest always uses ssl when connecting to the server.
- Pass a i32-bit int variable as argument to FIONREAD ioctl.
client/mysqltest.c:
Set the flag CLIENT_REMENBER_OPTIONS so that all connection attempts from mysqltest is done with the same settings.
Old impl caused mysqltest to loose all it's settings in the second connection attempt, ex ssl settings.
extra/yassl/src/socket_wrapper.cpp:
64-bit Solaris requires the variable passed to FIONREAD be a 32-bit value.
Using "int" unless _WIN32_ is defined.
sql/sql_parse.cc:
Update error message when sslaccepts fails. Must have been a copy and paste error.
vio/viossl.c:
Minor fixes
Add timeout to DBUG_PRINT
use function vio_ssl_fd to get sd from vio
Remove extra whitespace
vio/viosslfactories.c:
Remove DBUG_PRINT("enter" in sslaccept and sslconnect as it tries to print out null strings. That is not suported on all platforms.
-rw-r--r-- | client/mysqltest.c | 2 | ||||
-rw-r--r-- | extra/yassl/src/socket_wrapper.cpp | 8 | ||||
-rw-r--r-- | sql/sql_parse.cc | 5 | ||||
-rw-r--r-- | vio/viossl.c | 7 | ||||
-rw-r--r-- | vio/viosslfactories.c | 6 |
5 files changed, 13 insertions, 15 deletions
diff --git a/client/mysqltest.c b/client/mysqltest.c index 57b81e46b66..3ec9fa20998 100644 --- a/client/mysqltest.c +++ b/client/mysqltest.c @@ -1741,7 +1741,7 @@ int safe_connect(MYSQL* con, const char* host, const char* user, for (i = 0; i < MAX_CON_TRIES; ++i) { if (mysql_real_connect(con, host,user, pass, db, port, sock, - CLIENT_MULTI_STATEMENTS)) + CLIENT_MULTI_STATEMENTS | CLIENT_REMEMBER_OPTIONS)) { con_error = 0; break; diff --git a/extra/yassl/src/socket_wrapper.cpp b/extra/yassl/src/socket_wrapper.cpp index 2252dfafdc5..91cea1f9753 100644 --- a/extra/yassl/src/socket_wrapper.cpp +++ b/extra/yassl/src/socket_wrapper.cpp @@ -93,11 +93,15 @@ void Socket::closeSocket() uint Socket::get_ready() const { - unsigned long ready = 0; - #ifdef _WIN32 + unsigned long ready = 0; ioctlsocket(socket_, FIONREAD, &ready); #else + /* + 64-bit Solaris requires the variable passed to + FIONREAD be a 32-bit value. + */ + int ready = 0; ioctl(socket_, FIONREAD, &ready); #endif diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 70920b07a97..c26dddd93e3 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -919,8 +919,7 @@ static int check_connection(THD *thd) DBUG_PRINT("info", ("IO layer change in progress...")); if (sslaccept(ssl_acceptor_fd, net->vio, thd->variables.net_wait_timeout)) { - DBUG_PRINT("error", ("Failed to read user information (pkt_len= %lu)", - pkt_len)); + DBUG_PRINT("error", ("Failed to accept new SSL connection")); inc_host_errors(&thd->remote.sin_addr); return(ER_HANDSHAKE_ERROR); } @@ -3449,7 +3448,7 @@ end_with_restore_list: if (lex->local_file) { if (!(thd->client_capabilities & CLIENT_LOCAL_FILES) || - ! opt_local_infile) + !opt_local_infile) { my_message(ER_NOT_ALLOWED_COMMAND, ER(ER_NOT_ALLOWED_COMMAND), MYF(0)); goto error; diff --git a/vio/viossl.c b/vio/viossl.c index 7528e9071cf..fbbc545bb9b 100644 --- a/vio/viossl.c +++ b/vio/viossl.c @@ -283,9 +283,10 @@ int sslaccept(struct st_VioSSLAcceptorFd* ptr, Vio* vio, long timeout) X509* client_cert; my_bool unused; my_bool net_blocking; - enum enum_vio_type old_type; + enum enum_vio_type old_type; DBUG_ENTER("sslaccept"); - DBUG_PRINT("enter", ("sd: %d ptr: Ox%p", vio->sd,ptr)); + DBUG_PRINT("enter", ("sd: %d ptr: Ox%p, timeout: %d", + vio->sd, ptr, timeout)); old_type= vio->type; net_blocking = vio_is_blocking(vio); @@ -379,7 +380,7 @@ int sslconnect(struct st_VioSSLConnectorFd* ptr, Vio* vio, long timeout) (SSL*) vio->ssl_arg, timeout)); SSL_clear((SSL*) vio->ssl_arg); SSL_SESSION_set_timeout(SSL_get_session((SSL*) vio->ssl_arg), timeout); - SSL_set_fd ((SSL*) vio->ssl_arg, vio->sd); + SSL_set_fd ((SSL*) vio->ssl_arg, vio_ssl_fd(vio)); SSL_set_connect_state((SSL*) vio->ssl_arg); if (SSL_do_handshake((SSL*) vio->ssl_arg) < 1) { diff --git a/vio/viosslfactories.c b/vio/viosslfactories.c index 44a077c33fc..766d835d2c0 100644 --- a/vio/viosslfactories.c +++ b/vio/viosslfactories.c @@ -219,9 +219,6 @@ new_VioSSLConnectorFd(const char* key_file, int result; DH *dh; DBUG_ENTER("new_VioSSLConnectorFd"); - DBUG_PRINT("enter", - ("key_file: %s, cert_file: %s, ca_path: %s, ca_file: %s, cipher: %s", - key_file, cert_file, ca_path, ca_file, cipher)); if (!(ptr=((struct st_VioSSLConnectorFd*) my_malloc(sizeof(struct st_VioSSLConnectorFd),MYF(0))))) @@ -314,9 +311,6 @@ new_VioSSLAcceptorFd(const char *key_file, int result; DH *dh; DBUG_ENTER("new_VioSSLAcceptorFd"); - DBUG_PRINT("enter", - ("key_file: %s, cert_file: %s, ca_path: %s, ca_file: %s, cipher: %s", - key_file, cert_file, ca_path, ca_file, cipher)); ptr= ((struct st_VioSSLAcceptorFd*) my_malloc(sizeof(struct st_VioSSLAcceptorFd),MYF(0))); |