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

gitlab.com/Remmina/Remmina.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiovanni Panozzo <giovanni@panozzo.it>2016-02-07 19:47:14 +0300
committerGiovanni Panozzo <giovanni@panozzo.it>2016-02-14 15:50:44 +0300
commit009d0d8a0c231fa72595811a3772d2a98b3a68ac (patch)
tree6ecb6bba873eaaf29be680f957c5eed74acfea4a
parente5ce6ac29a8bf7445a730127bafde65092707046 (diff)
RDP reconnection timing fix
-rw-r--r--remmina-plugins/rdp/rdp_plugin.c7
1 files changed, 6 insertions, 1 deletions
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 <errno.h>
#include <pthread.h>
+#include <time.h>
#include <cairo/cairo-xlib.h>
#include <freerdp/freerdp.h>
#include <freerdp/constants.h>
@@ -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",