Commit c35b4866 authored by Antenore Gatta's avatar Antenore Gatta

Enable save ssh password

parent 209a2d22
......@@ -608,7 +608,7 @@ static gboolean remmina_protocol_widget_init_tunnel (RemminaProtocolWidget* gp)
return FALSE;
}
ret = remmina_ssh_auth_gui (REMMINA_SSH (tunnel), REMMINA_INIT_DIALOG (gp->priv->init_dialog));
ret = remmina_ssh_auth_gui (REMMINA_SSH (tunnel), REMMINA_INIT_DIALOG (gp->priv->init_dialog), gp->priv->remmina_file);
if (ret <= 0)
{
if (ret == 0)
......@@ -998,9 +998,7 @@ gint remmina_protocol_widget_init_authpwd(RemminaProtocolWidget* gp, RemminaAuth
REMMINA_INIT_DIALOG(gp->priv->init_dialog),
s,
remmina_file_get_filename(remminafile) != NULL &&
allow_password_saving &&
authpwd_type != REMMINA_AUTHPWD_TYPE_SSH_PWD &&
authpwd_type != REMMINA_AUTHPWD_TYPE_SSH_PRIVKEY);
allow_password_saving);
g_free(s);
return ret;
......
......@@ -110,7 +110,7 @@ remmina_plugin_sftp_main_thread (gpointer data)
}
ret = remmina_ssh_auth_gui (REMMINA_SSH (sftp),
REMMINA_INIT_DIALOG (remmina_protocol_widget_get_init_dialog (gp)));
REMMINA_INIT_DIALOG (remmina_protocol_widget_get_init_dialog (gp)), remminafile);
if (ret == 0)
{
remmina_plugin_service->protocol_plugin_set_error (gp, "%s", REMMINA_SSH (sftp)->error);
......
......@@ -72,9 +72,10 @@
#include <termios.h>
#endif
#include "remmina_public.h"
#include "remmina_file.h"
#include "remmina_log.h"
#include "remmina_ssh.h"
#include "remmina_pref.h"
#include "remmina_ssh.h"
#include "remmina/remmina_trace_calls.h"
#ifdef HAVE_NETINET_TCP_H
......@@ -320,7 +321,7 @@ remmina_ssh_auth (RemminaSSH *ssh, const gchar *password)
}
gint
remmina_ssh_auth_gui (RemminaSSH *ssh, RemminaInitDialog *dialog)
remmina_ssh_auth_gui (RemminaSSH *ssh, RemminaInitDialog *dialog, RemminaFile *remminafile)
{
TRACE_CALL("remmina_ssh_auth_gui");
gchar *tips;
......@@ -403,9 +404,16 @@ remmina_ssh_auth_gui (RemminaSSH *ssh, RemminaInitDialog *dialog)
if (ssh->auth != SSH_AUTH_AUTO_PUBLICKEY)
{
remmina_init_dialog_set_status (dialog, tips, ssh->user, ssh->server);
ret = remmina_init_dialog_authpwd (dialog, keyname, FALSE);
ret = remmina_init_dialog_authpwd (dialog, keyname, TRUE);
if (ret != GTK_RESPONSE_OK) return -1;
if (ret == GTK_RESPONSE_OK)
{
remmina_file_set_string( remminafile, "ssh_password", dialog->password);
}
else
{
return -1;
}
}
ret = remmina_ssh_auth (ssh, dialog->password);
}
......
......@@ -91,7 +91,7 @@ gboolean remmina_ssh_init_session (RemminaSSH *ssh);
gint remmina_ssh_auth (RemminaSSH *ssh, const gchar *password);
/* -1: Cancelled; 0: Failed; 1: Succeeded */
gint remmina_ssh_auth_gui (RemminaSSH *ssh, RemminaInitDialog *dialog);
gint remmina_ssh_auth_gui (RemminaSSH *ssh, RemminaInitDialog *dialog, RemminaFile *remminafile);
/* Error handling */
#define remmina_ssh_has_error(ssh) (((RemminaSSH*)ssh)->error!=NULL)
......
......@@ -286,7 +286,8 @@ remmina_plugin_ssh_main_thread (gpointer data)
}
ret = remmina_ssh_auth_gui (REMMINA_SSH (shell),
REMMINA_INIT_DIALOG (remmina_protocol_widget_get_init_dialog (gp)));
REMMINA_INIT_DIALOG (remmina_protocol_widget_get_init_dialog (gp)),
remminafile);
if (ret == 0)
{
remmina_plugin_service->protocol_plugin_set_error (gp, "%s", REMMINA_SSH (shell)->error);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment