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/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
|
||||
if (type == VIO_TYPE_SSL)
|
||||
{
|
||||
vio->viodelete =vio_delete;
|
||||
vio->viodelete =vio_ssl_delete;
|
||||
vio->vioerrno =vio_errno;
|
||||
vio->read =vio_ssl_read;
|
||||
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
|
||||
|
||||
|
||||
void vio_delete(Vio* vio)
|
||||
{
|
||||
/* It must be safe to delete null pointers. */
|
||||
/* This matches the semantics of C++'s delete operator. */
|
||||
if (vio)
|
||||
{
|
||||
if (vio->type != VIO_CLOSED)
|
||||
vio->vioclose(vio);
|
||||
my_free((gptr) vio->read_buffer, MYF(MY_ALLOW_ZERO_PTR));
|
||||
my_free((gptr) vio,MYF(0));
|
||||
}
|
||||
if (!vio)
|
||||
return; /* It must be safe to delete null pointers. */
|
||||
|
||||
if (vio->type != VIO_CLOSED)
|
||||
vio->vioclose(vio);
|
||||
my_free((gptr) vio->read_buffer, MYF(MY_ALLOW_ZERO_PTR));
|
||||
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... */
|
||||
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);
|
||||
|
||||
|
|
20
vio/viossl.c
20
vio/viossl.c
|
@ -140,13 +140,29 @@ int vio_ssl_close(Vio *vio)
|
|||
SSL_get_error(ssl, r)));
|
||||
break;
|
||||
}
|
||||
SSL_free(ssl);
|
||||
vio->ssl_arg= 0;
|
||||
}
|
||||
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)
|
||||
{
|
||||
SSL *ssl;
|
||||
|
|
Loading…
Reference in a new issue