mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
Merge pilot.mysql.com:/home/msvensson/mysql/mysql-5.0-maint
into pilot.mysql.com:/home/msvensson/mysql/mysql-5.1-new-maint mysql-test/t/rpl_openssl.test: Auto merged vio/vio.c: Auto merged vio/viossl.c: Auto merged
This commit is contained in:
commit
b081cccef7
4 changed files with 28 additions and 16 deletions
|
@ -1,7 +1,3 @@
|
||||||
# TODO: THIS TEST DOES NOT WORK ON WINDOWS
|
|
||||||
# This should be fixed.
|
|
||||||
--source include/not_windows.inc
|
|
||||||
|
|
||||||
source include/have_openssl.inc;
|
source include/have_openssl.inc;
|
||||||
source include/master-slave.inc;
|
source include/master-slave.inc;
|
||||||
|
|
||||||
|
|
19
vio/vio.c
19
vio/vio.c
|
@ -86,7 +86,7 @@ static void vio_init(Vio* vio, enum enum_vio_type type,
|
||||||
#ifdef HAVE_OPENSSL
|
#ifdef HAVE_OPENSSL
|
||||||
if (type == VIO_TYPE_SSL)
|
if (type == VIO_TYPE_SSL)
|
||||||
{
|
{
|
||||||
vio->viodelete =vio_delete;
|
vio->viodelete =vio_ssl_delete;
|
||||||
vio->vioerrno =vio_errno;
|
vio->vioerrno =vio_errno;
|
||||||
vio->read =vio_ssl_read;
|
vio->read =vio_ssl_read;
|
||||||
vio->write =vio_ssl_write;
|
vio->write =vio_ssl_write;
|
||||||
|
@ -220,17 +220,16 @@ Vio *vio_new_win32shared_memory(NET *net,HANDLE handle_file_map, HANDLE handle_m
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
void vio_delete(Vio* vio)
|
void vio_delete(Vio* vio)
|
||||||
{
|
{
|
||||||
/* It must be safe to delete null pointers. */
|
if (!vio)
|
||||||
/* This matches the semantics of C++'s delete operator. */
|
return; /* It must be safe to delete null pointers. */
|
||||||
if (vio)
|
|
||||||
{
|
if (vio->type != VIO_CLOSED)
|
||||||
if (vio->type != VIO_CLOSED)
|
vio->vioclose(vio);
|
||||||
vio->vioclose(vio);
|
my_free((gptr) vio->read_buffer, MYF(MY_ALLOW_ZERO_PTR));
|
||||||
my_free((gptr) vio->read_buffer, MYF(MY_ALLOW_ZERO_PTR));
|
my_free((gptr) vio,MYF(0));
|
||||||
my_free((gptr) vio,MYF(0));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,7 @@ int vio_ssl_write(Vio *vio,const gptr buf,int size);
|
||||||
|
|
||||||
/* When the workday is over... */
|
/* When the workday is over... */
|
||||||
int vio_ssl_close(Vio *vio);
|
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);
|
int vio_ssl_blocking(Vio *vio, my_bool set_blocking_mode, my_bool *old_mode);
|
||||||
|
|
||||||
|
|
20
vio/viossl.c
20
vio/viossl.c
|
@ -140,13 +140,29 @@ int vio_ssl_close(Vio *vio)
|
||||||
SSL_get_error(ssl, r)));
|
SSL_get_error(ssl, r)));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
SSL_free(ssl);
|
|
||||||
vio->ssl_arg= 0;
|
|
||||||
}
|
}
|
||||||
DBUG_RETURN(vio_close(vio));
|
DBUG_RETURN(vio_close(vio));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void vio_ssl_delete(Vio *vio)
|
||||||
|
{
|
||||||
|
if (!vio)
|
||||||
|
return; /* It must be safe to delete null pointer */
|
||||||
|
|
||||||
|
if (vio->type == VIO_TYPE_SSL)
|
||||||
|
vio_ssl_close(vio); /* Still open, close connection first */
|
||||||
|
|
||||||
|
if (vio->ssl_arg)
|
||||||
|
{
|
||||||
|
SSL_free((SSL*) vio->ssl_arg);
|
||||||
|
vio->ssl_arg= 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
vio_delete(vio);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int sslaccept(struct st_VioSSLFd *ptr, Vio *vio, long timeout)
|
int sslaccept(struct st_VioSSLFd *ptr, Vio *vio, long timeout)
|
||||||
{
|
{
|
||||||
SSL *ssl;
|
SSL *ssl;
|
||||||
|
|
Loading…
Reference in a new issue