if (!freerdp_tcp_connect(tcp, settings->GatewayHostname, settings->GatewayPort, timeout))
return -1;
- if (!freerdp_tcp_set_blocking_mode(tcp, FALSE))
+ if (!BIO_set_nonblock(tcp->socketBio, TRUE))
return -1;
tls = channel->tls = tls_new(settings);
return TRUE;
}
-BOOL freerdp_tcp_set_blocking_mode(rdpTcp* tcp, BOOL blocking)
-{
- return BIO_set_nonblock(tcp->socketBio, blocking ? 0 : 1) ? TRUE : FALSE;
-}
-
BOOL freerdp_tcp_set_keep_alive_mode(rdpTcp* tcp)
{
#ifndef _WIN32
return 1;
}
-HANDLE freerdp_tcp_get_event_handle(rdpTcp* tcp)
-{
- if (!tcp)
- return NULL;
-
- return tcp->event;
-}
-
int freerdp_tcp_wait_read(rdpTcp* tcp, DWORD dwMilliSeconds)
{
int status;
};
BOOL freerdp_tcp_connect(rdpTcp* tcp, const char* hostname, int port, int timeout);
-int freerdp_tcp_read(rdpTcp* tcp, BYTE* data, int length);
-int freerdp_tcp_write(rdpTcp* tcp, BYTE* data, int length);
int freerdp_tcp_wait_read(rdpTcp* tcp, DWORD dwMilliSeconds);
int freerdp_tcp_wait_write(rdpTcp* tcp, DWORD dwMilliSeconds);
-BOOL freerdp_tcp_set_blocking_mode(rdpTcp* tcp, BOOL blocking);
BOOL freerdp_tcp_set_keep_alive_mode(rdpTcp* tcp);
int freerdp_tcp_attach(rdpTcp* tcp, int sockfd);
-HANDLE freerdp_tcp_get_event_handle(rdpTcp* tcp);
rdpTcp* freerdp_tcp_new(rdpSettings* settings);
void freerdp_tcp_free(rdpTcp* tcp);
if (transport->GatewayEnabled)
{
- tls = transport->tls = tls_new(transport->settings);
+ tls = transport->tls = tls_new(settings);
transport->layer = TRANSPORT_LAYER_TSG_TLS;
bio = transport->frontBio;
}
else
{
- transport->tls = tls_new(settings);
+ tls = transport->tls = tls_new(settings);
transport->layer = TRANSPORT_LAYER_TLS;
bio = transport->TcpIn->bufferedBio;
}
DWORD nCount = 0;
if (events)
- events[nCount] = freerdp_tcp_get_event_handle(transport->TcpIn);
+ events[nCount] = transport->TcpIn->event;
nCount++;
if (transport->ReceiveEvent)
BOOL transport_set_blocking_mode(rdpTransport* transport, BOOL blocking)
{
- BOOL status = TRUE;
-
transport->blocking = blocking;
if (!transport->SplitInputOutput)
{
- status &= freerdp_tcp_set_blocking_mode(transport->TcpIn, blocking);
+ if (!BIO_set_nonblock(transport->TcpIn->socketBio, blocking ? FALSE : TRUE))
+ return FALSE;
}
- return status;
+ return TRUE;
}
void transport_set_gateway_enabled(rdpTransport* transport, BOOL GatewayEnabled)
else
{
if (transport->tls)
+ {
tls_free(transport->tls);
+ transport->tls = NULL;
+ }
if (transport->TcpIn)
+ {
freerdp_tcp_free(transport->TcpIn);
+ transport->TcpIn = NULL;
+ }
}
transport->TcpIn = NULL;