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

gitlab.com/Remmina/remmina-plugins.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiovanni Panozzo <giovanni@panozzo.it>2019-11-01 01:25:10 +0300
committerGiovanni Panozzo <giovanni@panozzo.it>2019-11-01 16:29:13 +0300
commitb5233e33ef48e66a4e4a887d8c37482450dabaaf (patch)
tree415256cd628f7417a694543e1ad53723f9fef212
parent5f6dcafd264ab2eeb7aa0863f8a299c0b3911f2d (diff)
Better messagepanel plugin API
-rw-r--r--nx_plugin.c46
1 files changed, 34 insertions, 12 deletions
diff --git a/nx_plugin.c b/nx_plugin.c
index c16f0bf..8b98f1c 100644
--- a/nx_plugin.c
+++ b/nx_plugin.c
@@ -198,13 +198,16 @@ gboolean remmina_plugin_nx_ssh_auth_callback(gchar **passphrase, gpointer userda
gint ret;
/* SSH passwords must not be saved */
- ret = remmina_plugin_nx_service->protocol_plugin_init_authpwd(gp, REMMINA_AUTHPWD_TYPE_SSH_PRIVKEY, FALSE);
-
- if (ret != GTK_RESPONSE_OK)
+ ret = remmina_plugin_nx_service->protocol_plugin_init_auth(gp, 0,
+ _("SSH credentials"), NULL,
+ NULL,
+ NULL,
+ _("SSH private key passphrase"));
+ if (ret == GTK_RESPONSE_OK) {
+ *passphrase = remmina_plugin_nx_service->protocol_plugin_init_get_password(gp);
+ return TRUE;
+ } else
return FALSE;
- *passphrase = remmina_plugin_nx_service->protocol_plugin_init_get_password(gp);
-
- return TRUE;
}
static void remmina_plugin_nx_on_proxy_exit(GPid pid, gint status, gpointer data)
@@ -355,15 +358,34 @@ static gboolean remmina_plugin_nx_start_session(RemminaProtocolWidget *gp)
g_free(s1);
g_free(s2);
+ gchar *s_username, *s_password;
+
disablepasswordstoring = remmina_plugin_nx_service->file_get_int(remminafile, "disablepasswordstoring", FALSE);
- ret = remmina_plugin_nx_service->protocol_plugin_init_authuserpwd(gp, FALSE, !disablepasswordstoring);
- if (ret != GTK_RESPONSE_OK)
- return FALSE;
+ ret = remmina_plugin_nx_service->protocol_plugin_init_auth(gp,
+ (disablepasswordstoring ? 0 : REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD) | REMMINA_MESSAGE_PANEL_FLAG_USERNAME,
+ _("Enter NX authentication credentials"),
+ remmina_plugin_nx_service->file_get_string(remminafile, "username"),
+ remmina_plugin_nx_service->file_get_string(remminafile, "password"),
+ NULL,
+ NULL);
+ if (ret == GTK_RESPONSE_OK) {
+ gboolean save;
+ s_username = remmina_plugin_nx_service->protocol_plugin_init_get_username(gp);
+ s_password = remmina_plugin_nx_service->protocol_plugin_init_get_password(gp);
+ save = remmina_plugin_nx_service->protocol_plugin_init_get_savepassword(gp);
+ if (save) {
+ remmina_plugin_nx_service->file_set_string(remminafile, "username", s_username);
+ remmina_plugin_nx_service->file_set_string(remminafile, "password", s_password);
+ } else
+ remmina_plugin_nx_service->file_unsave_passwords(remminafile);
+ } else {
+ return False;
+ }
- s1 = remmina_plugin_nx_service->protocol_plugin_init_get_username(gp);
- s2 = remmina_plugin_nx_service->protocol_plugin_init_get_password(gp);
- ret = remmina_nx_session_login(nx, s1, s2);
+ ret = remmina_nx_session_login(nx, s_username, s_password);
+ g_free(s_username);
+ g_free(s_password);
}
g_free(s1);
g_free(s2);