From 5b66bdf2ac5a645d94c3e171c0fb2be7674c0fe7 Mon Sep 17 00:00:00 2001 From: Mads Kiilerich Date: Fri, 1 Jul 2011 13:56:25 +0200 Subject: core: network and sec are indistinguishable and must both be re-created on reconnect This is needed because network_new steals a reference to rdp->sec and injects a reference to itself in it. --- libfreerdp-core/rdp.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libfreerdp-core/rdp.c b/libfreerdp-core/rdp.c index d3fa364..0c8e137 100644 --- a/libfreerdp-core/rdp.c +++ b/libfreerdp-core/rdp.c @@ -1706,8 +1706,11 @@ rdp_reconnect(rdpRdp * rdp) username = rdp->redirect_username ? rdp->redirect_username : rdp->settings->username; sec_disconnect(rdp->sec); + network_free(rdp->net); sec_free(rdp->sec); + rdp->sec = sec_new(rdp); + rdp->net = network_new(rdp); if (!network_connect(rdp->net, server, username, rdp->settings->tcp_port_rdp)) return False; -- cgit v1.2.3