secur32: Switch back to non-blocking mode for DTLS sessions.

In order for DTLS retransmission to occur properly, we need to be in
non-blocking mode.

Signed-off-by: Connor McAdams <cmcadams@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Connor McAdams 2022-01-27 11:11:29 +01:00 committed by Alexandre Julliard
parent 290cd6769f
commit 387a30a8ce
2 changed files with 4 additions and 5 deletions

View File

@ -461,14 +461,13 @@ static NTSTATUS schan_get_enabled_protocols( void *args )
static int pull_timeout(gnutls_transport_ptr_t transport, unsigned int timeout)
{
struct schan_transport *t = (struct schan_transport*)transport;
gnutls_session_t s = (gnutls_session_t)t->session;
SIZE_T count = 0;
TRACE("\n");
if (get_buffer(t, &t->in, &count)) return 1;
pgnutls_transport_set_errno(s, EAGAIN);
return -1;
return 0;
}
static NTSTATUS schan_create_session( void *args )
@ -483,7 +482,7 @@ static NTSTATUS schan_create_session( void *args )
if (cred->enabled_protocols & (SP_PROT_DTLS1_0_CLIENT | SP_PROT_DTLS1_2_CLIENT))
{
flags |= GNUTLS_DATAGRAM;
flags |= GNUTLS_DATAGRAM | GNUTLS_NONBLOCK;
}
err = pgnutls_init(s, flags);

View File

@ -1706,7 +1706,7 @@ static void test_dtls(void)
ok( ctx_handle.dwUpper == ctx_handle2.dwUpper, "dwUpper mismatch, expected %#lx, got %#lx\n", ctx_handle.dwUpper, ctx_handle2.dwUpper);
/* With no new input buffer, output buffer length should match prior call. */
todo_wine ok(buffers[1].pBuffers[0].cbBuffer == prev_buf_len, "Output buffer size mismatch, expected %#x, got %#x\n",
ok(buffers[1].pBuffers[0].cbBuffer == prev_buf_len, "Output buffer size mismatch, expected %#x, got %#x\n",
prev_buf_len, buffers[1].pBuffers[0].cbBuffer);
free_buffers( &buffers[0] );