Commit 80d8898f authored by monty@hundin.mysql.fi's avatar monty@hundin.mysql.fi

Merge work:/home/bk/mysql-4.0 into hundin.mysql.fi:/my/bk/mysql-4.0

parents 10416c1b f3f1e53e
...@@ -254,7 +254,7 @@ if (!$opt_no_test) ...@@ -254,7 +254,7 @@ if (!$opt_no_test)
$extra=""; $extra="";
if ($opt_bdb) if ($opt_bdb)
{ {
$extra.=" -O bdb_cache_size=16M"; $extra.=" --bdb_cache_size=16M --bdb_max_lock=60000"
} }
if ($opt_innodb) if ($opt_innodb)
{ {
......
...@@ -1315,11 +1315,11 @@ AC_CHECK_LIB(pthread,strtok_r) ...@@ -1315,11 +1315,11 @@ AC_CHECK_LIB(pthread,strtok_r)
LIBS="$my_save_LIBS" LIBS="$my_save_LIBS"
if test "$ac_cv_lib_pthread_strtok_r" = "no" if test "$ac_cv_lib_pthread_strtok_r" = "no"
then then
my_save_LIBS="$LIBS"
AC_CHECK_LIB(c_r,strtok_r) AC_CHECK_LIB(c_r,strtok_r)
case "$with_osf32_threads---$target_os" in case "$with_osf32_threads---$target_os" in
# Don't keep -lc_r in LIBS; -pthread handles it magically # Don't keep -lc_r in LIBS; -pthread handles it magically
yes---* | *---freebsd* ) LIBS="$my_save_LIBS" ;; yes---* | *---freebsd* | *---hpux*) LIBS="$my_save_LIBS" ;;
esac esac
AC_CHECK_FUNCS(strtok_r pthread_init) AC_CHECK_FUNCS(strtok_r pthread_init)
else else
......
...@@ -1444,11 +1444,6 @@ mysql_ssl_set(MYSQL *mysql __attribute__((unused)) , ...@@ -1444,11 +1444,6 @@ mysql_ssl_set(MYSQL *mysql __attribute__((unused)) ,
mysql->options.ssl_ca= strdup_if_not_null(ca); mysql->options.ssl_ca= strdup_if_not_null(ca);
mysql->options.ssl_capath= strdup_if_not_null(capath); mysql->options.ssl_capath= strdup_if_not_null(capath);
mysql->options.ssl_cipher= strdup_if_not_null(cipher); mysql->options.ssl_cipher= strdup_if_not_null(cipher);
mysql->connector_fd = (gptr) new_VioSSLConnectorFd(key, cert, ca, capath,
cipher);
DBUG_PRINT("info",("mysql_ssl_set, context: %p",
((struct st_VioSSLConnectorFd *) (mysql->connector_fd))->
ssl_context_));
#endif #endif
return 0; return 0;
} }
...@@ -1863,6 +1858,7 @@ mysql_real_connect(MYSQL *mysql,const char *host, const char *user, ...@@ -1863,6 +1858,7 @@ mysql_real_connect(MYSQL *mysql,const char *host, const char *user,
*/ */
if (client_flag & CLIENT_SSL) if (client_flag & CLIENT_SSL)
{ {
struct st_mysql_options *options= &mysql->options;
if (my_net_write(net,buff,(uint) (2)) || net_flush(net)) if (my_net_write(net,buff,(uint) (2)) || net_flush(net))
{ {
net->last_errno= CR_SERVER_LOST; net->last_errno= CR_SERVER_LOST;
...@@ -1870,9 +1866,22 @@ mysql_real_connect(MYSQL *mysql,const char *host, const char *user, ...@@ -1870,9 +1866,22 @@ mysql_real_connect(MYSQL *mysql,const char *host, const char *user,
goto error; goto error;
} }
/* Do the SSL layering. */ /* Do the SSL layering. */
if (!(mysql->connector_fd=
(gptr) new_VioSSLConnectorFd(options->ssl_key,
options->ssl_cert,
options->ssl_ca,
options->ssl_capath,
options->ssl_cipher)))
{
/* TODO: Change to SSL error */
net->last_errno= CR_SERVER_LOST;
strmov(net->last_error,ER(net->last_errno));
goto error;
}
DBUG_PRINT("info", ("IO layer change in progress...")); DBUG_PRINT("info", ("IO layer change in progress..."));
DBUG_PRINT("info", ("IO context %p",((struct st_VioSSLConnectorFd*)mysql->connector_fd)->ssl_context_)); /* TODO: Add proper error checking here, with return error message */
sslconnect((struct st_VioSSLConnectorFd*)(mysql->connector_fd),mysql->net.vio, (long)(mysql->options.connect_timeout)); sslconnect((struct st_VioSSLConnectorFd*)(mysql->connector_fd),
mysql->net.vio, (long) (mysql->options.connect_timeout));
DBUG_PRINT("info", ("IO layer change done!")); DBUG_PRINT("info", ("IO layer change done!"));
} }
#endif /* HAVE_OPENSSL */ #endif /* HAVE_OPENSSL */
......
...@@ -123,7 +123,6 @@ int vio_blocking(Vio * vio __attribute__((unused)), my_bool set_blocking_mode, ...@@ -123,7 +123,6 @@ int vio_blocking(Vio * vio __attribute__((unused)), my_bool set_blocking_mode,
#if !defined(HAVE_OPENSSL) #if !defined(HAVE_OPENSSL)
#if !defined(___WIN__) && !defined(__EMX__) #if !defined(___WIN__) && !defined(__EMX__)
#if !defined(NO_FCNTL_NONBLOCK) #if !defined(NO_FCNTL_NONBLOCK)
if (vio->sd >= 0) if (vio->sd >= 0)
{ {
int old_fcntl=vio->fcntl_mode; int old_fcntl=vio->fcntl_mode;
...@@ -134,6 +133,8 @@ int vio_blocking(Vio * vio __attribute__((unused)), my_bool set_blocking_mode, ...@@ -134,6 +133,8 @@ int vio_blocking(Vio * vio __attribute__((unused)), my_bool set_blocking_mode,
if (old_fcntl != vio->fcntl_mode) if (old_fcntl != vio->fcntl_mode)
r = fcntl(vio->sd, F_SETFL, vio->fcntl_mode); r = fcntl(vio->sd, F_SETFL, vio->fcntl_mode);
} }
#else
r= set_blocking_mode ? 0 : 1;
#endif /* !defined(NO_FCNTL_NONBLOCK) */ #endif /* !defined(NO_FCNTL_NONBLOCK) */
#else /* !defined(__WIN__) && !defined(__EMX__) */ #else /* !defined(__WIN__) && !defined(__EMX__) */
#ifndef __EMX__ #ifndef __EMX__
...@@ -155,6 +156,10 @@ int vio_blocking(Vio * vio __attribute__((unused)), my_bool set_blocking_mode, ...@@ -155,6 +156,10 @@ int vio_blocking(Vio * vio __attribute__((unused)), my_bool set_blocking_mode,
if (old_fcntl != vio->fcntl_mode) if (old_fcntl != vio->fcntl_mode)
r = ioctlsocket(vio->sd,FIONBIO,(void*) &arg, sizeof(arg)); r = ioctlsocket(vio->sd,FIONBIO,(void*) &arg, sizeof(arg));
} }
#ifndef __EMX__
else
r= test(!(vio->fcntl_mode & O_NONBLOCK)) != set_blocking_mode;
#endif /* __EMX__ */
#endif /* !defined(__WIN__) && !defined(__EMX__) */ #endif /* !defined(__WIN__) && !defined(__EMX__) */
#endif /* !defined (HAVE_OPENSSL) */ #endif /* !defined (HAVE_OPENSSL) */
DBUG_PRINT("exit", ("%d", r)); DBUG_PRINT("exit", ("%d", r));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment