diff options
author | Mads Kiilerich <mads@kiilerich.com> | 2011-07-01 15:56:25 +0400 |
---|---|---|
committer | Mads Kiilerich <mads@kiilerich.com> | 2011-07-01 15:56:25 +0400 |
commit | 5b66bdf2ac5a645d94c3e171c0fb2be7674c0fe7 (patch) | |
tree | 0734c2f57acda928bc50bece81442da8442d701f | |
parent | ac088e0fb59b814c904b5089f12114bf2c0886cf (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.c | 3 |
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; |