Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FreeRDP/FreeRDP-old.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMads Kiilerich <mads@kiilerich.com>2011-07-01 15:56:25 +0400
committerMads Kiilerich <mads@kiilerich.com>2011-07-01 15:56:25 +0400
commit5b66bdf2ac5a645d94c3e171c0fb2be7674c0fe7 (patch)
tree0734c2f57acda928bc50bece81442da8442d701f
parentac088e0fb59b814c904b5089f12114bf2c0886cf (diff)
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.
-rw-r--r--libfreerdp-core/rdp.c3
1 files changed, 3 insertions, 0 deletions
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;