summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <msvensson@neptunus.(none)>2005-09-01 11:46:43 +0200
committerunknown <msvensson@neptunus.(none)>2005-09-01 11:46:43 +0200
commitc16f09cc2a9fe79c5a7ee663057b2c375e96c70b (patch)
tree4daf5317650035bf1bbdfc42f168595d88bc9d54
parent5f097498f18ca9290bfe915414d1d67445cba01c (diff)
downloadmariadb-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.c2
-rw-r--r--extra/yassl/src/socket_wrapper.cpp8
-rw-r--r--sql/sql_parse.cc5
-rw-r--r--vio/viossl.c7
-rw-r--r--vio/viosslfactories.c6
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)));