server: handle disconnection.

This commit is contained in:
Vic Lee
2011-08-23 16:14:32 +08:00
parent 2d4f10038e
commit ca52da15cd
2 changed files with 7 additions and 0 deletions

View File

@@ -216,6 +216,9 @@ static int peer_recv_callback(rdpTransport* transport, STREAM* s, void* extra)
static void freerdp_peer_disconnect(freerdp_peer* client)
{
rdpPeer* peer = (rdpPeer*)client->peer;
transport_disconnect(peer->rdp->transport);
}
freerdp_peer* freerdp_peer_new(int sockfd)

View File

@@ -70,6 +70,8 @@ void transport_attach(rdpTransport* transport, int sockfd)
boolean transport_disconnect(rdpTransport* transport)
{
if (transport->tls)
IFCALL(transport->tls->disconnect, transport->tls);
return transport->tcp->disconnect(transport->tcp);
}
@@ -403,6 +405,8 @@ void transport_free(rdpTransport* transport)
stream_free(transport->recv_stream);
stream_free(transport->send_stream);
wait_obj_free(transport->recv_event);
if (transport->tls)
tls_free(transport->tls);
tcp_free(transport->tcp);
xfree(transport);
}