diff options
author | Lorenz Brun <lorenz@brun.one> | 2022-03-18 17:02:13 +0300 |
---|---|---|
committer | Lorenz Brun <lorenz@brun.one> | 2022-03-18 17:16:17 +0300 |
commit | 8f0d4e9dad8ffec26f4f386f52d379325197870d (patch) | |
tree | 2c371527493b9d5077507b603db0d1d93192acf8 /plugins | |
parent | a42c1d85587825f854f82a10937f4007e33e9908 (diff) |
Handle after-auth connection errors in VNC properly
Signed-off-by: Lorenz Brun <lorenz@brun.one>
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/vnc/vnc_plugin.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/plugins/vnc/vnc_plugin.c b/plugins/vnc/vnc_plugin.c index 0dee4a89e..60c7f65ae 100644 --- a/plugins/vnc/vnc_plugin.c +++ b/plugins/vnc/vnc_plugin.c @@ -1325,6 +1325,14 @@ static gboolean remmina_plugin_vnc_main(RemminaProtocolWidget *gp) gpdata->auth_called = FALSE; break; } + /* Don't assume authentication failed for known network-related errors in + libvncclient/sockets.c. */ + if (strstr(vnc_error, "read (") || strstr(vnc_error, "select\n") || + strstr(vnc_error, "write\n") || strstr(vnc_error, "Connection timed out")) { + gpdata->connected = FALSE; + gpdata->auth_called = FALSE; + break; + } /* Otherwise, it’s a password error. Try to clear saved password if any */ remmina_plugin_service->file_set_string(remminafile, "password", NULL); |