From 009d0d8a0c231fa72595811a3772d2a98b3a68ac Mon Sep 17 00:00:00 2001 From: Giovanni Panozzo Date: Sun, 7 Feb 2016 17:47:14 +0100 Subject: RDP reconnection timing fix --- remmina-plugins/rdp/rdp_plugin.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/remmina-plugins/rdp/rdp_plugin.c b/remmina-plugins/rdp/rdp_plugin.c index 39919e965..e7be8edd2 100644 --- a/remmina-plugins/rdp/rdp_plugin.c +++ b/remmina-plugins/rdp/rdp_plugin.c @@ -44,6 +44,7 @@ #include #include +#include #include #include #include @@ -165,6 +166,7 @@ BOOL rf_auto_reconnect(rfContext* rfi) TRACE_CALL("rf_auto_reconnect"); rdpSettings* settings = rfi->instance->settings; RemminaPluginRdpUiObject* ui; + time_t treconn; rfi->is_reconnecting = TRUE; rfi->reconnect_maxattempts = settings->AutoReconnectMaxRetries; @@ -212,6 +214,7 @@ BOOL rf_auto_reconnect(rfContext* rfi) ui->type = REMMINA_RDP_UI_RECONNECT_PROGRESS; rf_queue_ui(rfi->protocol_widget, ui); + treconn = time(NULL); if (freerdp_reconnect(rfi->instance)) { /* Reconnection is successful */ @@ -221,7 +224,9 @@ BOOL rf_auto_reconnect(rfContext* rfi) return TRUE; } - sleep(1); + /* Wait until 5 secs have elapsed from last reconnect attempt */ + while (time(NULL) - treconn < 5) + sleep(1); } remmina_plugin_service->log_printf("[RDP][%s] maximum number of reconnection attempts exceeded.\n", -- cgit v1.2.3