mirror of
https://github.com/mariadb-corporation/mariadb-connector-c.git
synced 2025-08-20 16:31:06 +00:00
Merge branch '3.1' into 3.2
This commit is contained in:
@ -11,8 +11,8 @@ IF(SIZEOF_VOIDP EQUAL 8)
|
|||||||
SET(IS64 1)
|
SET(IS64 1)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
SET (PLAFORM_NAME CMAKE_SYSTEM_NAME)
|
SET (PLATFORM_NAME ${CMAKE_SYSTEM_NAME})
|
||||||
SET (MACHINE_NAME CMAKE_SYSTEM_PROCESSOR)
|
SET (MACHINE_NAME ${CMAKE_SYSTEM_PROCESSOR})
|
||||||
SET (CONCAT_SIGN "-")
|
SET (CONCAT_SIGN "-")
|
||||||
|
|
||||||
IF(CMAKE_SYSTEM_NAME MATCHES "Windows")
|
IF(CMAKE_SYSTEM_NAME MATCHES "Windows")
|
||||||
|
@ -272,7 +272,6 @@ SECURITY_STATUS ma_schannel_client_handshake(MARIADB_TLS *ctls)
|
|||||||
MARIADB_PVIO *pvio;
|
MARIADB_PVIO *pvio;
|
||||||
SECURITY_STATUS sRet;
|
SECURITY_STATUS sRet;
|
||||||
DWORD OutFlags;
|
DWORD OutFlags;
|
||||||
DWORD r;
|
|
||||||
SC_CTX *sctx;
|
SC_CTX *sctx;
|
||||||
SecBuffer ExtraData;
|
SecBuffer ExtraData;
|
||||||
DWORD SFlags= ISC_REQ_SEQUENCE_DETECT | ISC_REQ_REPLAY_DETECT |
|
DWORD SFlags= ISC_REQ_SEQUENCE_DETECT | ISC_REQ_REPLAY_DETECT |
|
||||||
@ -318,7 +317,7 @@ SECURITY_STATUS ma_schannel_client_handshake(MARIADB_TLS *ctls)
|
|||||||
return sRet;
|
return sRet;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* send client hello packaet */
|
/* send client hello */
|
||||||
if(BuffersOut.cbBuffer != 0 && BuffersOut.pvBuffer != NULL)
|
if(BuffersOut.cbBuffer != 0 && BuffersOut.pvBuffer != NULL)
|
||||||
{
|
{
|
||||||
ssize_t nbytes = (DWORD)pvio->methods->write(pvio, (uchar *)BuffersOut.pvBuffer, (size_t)BuffersOut.cbBuffer);
|
ssize_t nbytes = (DWORD)pvio->methods->write(pvio, (uchar *)BuffersOut.pvBuffer, (size_t)BuffersOut.cbBuffer);
|
||||||
@ -328,7 +327,6 @@ SECURITY_STATUS ma_schannel_client_handshake(MARIADB_TLS *ctls)
|
|||||||
sRet= SEC_E_INTERNAL_ERROR;
|
sRet= SEC_E_INTERNAL_ERROR;
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
r = (DWORD)nbytes;
|
|
||||||
}
|
}
|
||||||
sRet= ma_schannel_handshake_loop(pvio, TRUE, &ExtraData);
|
sRet= ma_schannel_handshake_loop(pvio, TRUE, &ExtraData);
|
||||||
|
|
||||||
@ -564,8 +562,6 @@ ssize_t ma_schannel_write_encrypt(MARIADB_PVIO *pvio,
|
|||||||
SECURITY_STATUS scRet;
|
SECURITY_STATUS scRet;
|
||||||
SecBufferDesc Message;
|
SecBufferDesc Message;
|
||||||
SecBuffer Buffers[4];
|
SecBuffer Buffers[4];
|
||||||
DWORD cbMessage;
|
|
||||||
PBYTE pbMessage;
|
|
||||||
SC_CTX *sctx= (SC_CTX *)pvio->ctls->ssl;
|
SC_CTX *sctx= (SC_CTX *)pvio->ctls->ssl;
|
||||||
size_t payload;
|
size_t payload;
|
||||||
ssize_t nbytes;
|
ssize_t nbytes;
|
||||||
@ -574,8 +570,6 @@ ssize_t ma_schannel_write_encrypt(MARIADB_PVIO *pvio,
|
|||||||
payload= MIN(WriteBufferSize, sctx->Sizes.cbMaximumMessage);
|
payload= MIN(WriteBufferSize, sctx->Sizes.cbMaximumMessage);
|
||||||
|
|
||||||
memcpy(&sctx->IoBuffer[sctx->Sizes.cbHeader], WriteBuffer, payload);
|
memcpy(&sctx->IoBuffer[sctx->Sizes.cbHeader], WriteBuffer, payload);
|
||||||
pbMessage = sctx->IoBuffer + sctx->Sizes.cbHeader;
|
|
||||||
cbMessage = (DWORD)payload;
|
|
||||||
|
|
||||||
Buffers[0].pvBuffer = sctx->IoBuffer;
|
Buffers[0].pvBuffer = sctx->IoBuffer;
|
||||||
Buffers[0].cbBuffer = sctx->Sizes.cbHeader;
|
Buffers[0].cbBuffer = sctx->Sizes.cbHeader;
|
||||||
@ -589,10 +583,9 @@ ssize_t ma_schannel_write_encrypt(MARIADB_PVIO *pvio,
|
|||||||
Buffers[2].cbBuffer = sctx->Sizes.cbTrailer;
|
Buffers[2].cbBuffer = sctx->Sizes.cbTrailer;
|
||||||
Buffers[2].BufferType = SECBUFFER_STREAM_TRAILER;
|
Buffers[2].BufferType = SECBUFFER_STREAM_TRAILER;
|
||||||
|
|
||||||
Buffers[3].pvBuffer = SECBUFFER_EMPTY; // Pointer to buffer 4
|
Buffers[3].pvBuffer = SECBUFFER_EMPTY;
|
||||||
Buffers[3].cbBuffer = SECBUFFER_EMPTY; // length of buffer 4
|
Buffers[3].cbBuffer = SECBUFFER_EMPTY;
|
||||||
Buffers[3].BufferType = SECBUFFER_EMPTY; // Type of the buffer 4
|
Buffers[3].BufferType = SECBUFFER_EMPTY;
|
||||||
|
|
||||||
|
|
||||||
Message.ulVersion = SECBUFFER_VERSION;
|
Message.ulVersion = SECBUFFER_VERSION;
|
||||||
Message.cBuffers = 4;
|
Message.cBuffers = 4;
|
||||||
|
@ -142,26 +142,6 @@ static void ma_tls_set_error(MYSQL *mysql)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef HAVE_OPENSSL_1_1_API
|
|
||||||
/*
|
|
||||||
thread safe callbacks for OpenSSL
|
|
||||||
Crypto call back functions will be
|
|
||||||
set during ssl_initialization
|
|
||||||
*/
|
|
||||||
#if OPENSSL_VERSION_NUMBER < 0x10000000L
|
|
||||||
static unsigned long my_cb_threadid(void)
|
|
||||||
{
|
|
||||||
/* cast pthread_t to unsigned long */
|
|
||||||
return (unsigned long) pthread_self();
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
static void my_cb_threadid(CRYPTO_THREADID *id)
|
|
||||||
{
|
|
||||||
CRYPTO_THREADID_set_numeric(id, (unsigned long)pthread_self());
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef HAVE_OPENSSL_1_1_API
|
#ifndef HAVE_OPENSSL_1_1_API
|
||||||
static void my_cb_locking(int mode, int n,
|
static void my_cb_locking(int mode, int n,
|
||||||
const char *file __attribute__((unused)),
|
const char *file __attribute__((unused)),
|
||||||
@ -175,25 +155,18 @@ static void my_cb_locking(int mode, int n,
|
|||||||
|
|
||||||
static int ssl_thread_init()
|
static int ssl_thread_init()
|
||||||
{
|
{
|
||||||
if (!CRYPTO_THREADID_get_callback()
|
if (LOCK_crypto == NULL)
|
||||||
#ifndef OPENSSL_NO_DEPRECATED
|
|
||||||
&& !CRYPTO_get_id_callback()
|
|
||||||
#endif
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
int i, max= CRYPTO_num_locks();
|
int i, max= CRYPTO_num_locks();
|
||||||
|
|
||||||
if (LOCK_crypto == NULL)
|
|
||||||
{
|
|
||||||
if (!(LOCK_crypto=
|
if (!(LOCK_crypto=
|
||||||
(pthread_mutex_t *)ma_malloc(sizeof(pthread_mutex_t) * max, MYF(0))))
|
(pthread_mutex_t *)ma_malloc(sizeof(pthread_mutex_t) * max, MYF(0))))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
for (i=0; i < max; i++)
|
for (i=0; i < max; i++)
|
||||||
pthread_mutex_init(&LOCK_crypto[i], NULL);
|
pthread_mutex_init(&LOCK_crypto[i], NULL);
|
||||||
}
|
|
||||||
CRYPTO_set_locking_callback(my_cb_locking);
|
CRYPTO_set_locking_callback(my_cb_locking);
|
||||||
CRYPTO_THREADID_set_callback(my_cb_threadid);
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user