From 3c9dcfaaa0c4eb13a8bcc7cde1eff0bb6877cf62 Mon Sep 17 00:00:00 2001 From: Ansgar Becker Date: Fri, 2 Apr 2010 07:33:36 +0000 Subject: [PATCH] Last tweaks for SSH tunnel, issue #401: * Only pass SSH port if not empty * Put right default file extension for selecting a PuTTY private key file (*.ppk) * Add text hints on more input fields * Indicate modified session also if SSH host, port or key file was changed. --- source/connections.dfm | 4 ++++ source/connections.pas | 5 +++++ source/mysql_connection.pas | 3 ++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/source/connections.dfm b/source/connections.dfm index 4f4543b1..196d7295 100644 --- a/source/connections.dfm +++ b/source/connections.dfm @@ -382,6 +382,7 @@ object connform: Tconnform Anchors = [akLeft, akTop, akRight] TabOrder = 3 Text = 'editSSHUser' + TextHint = 'Your secure shell username' OnChange = Modification end object editSSHPassword: TEdit @@ -393,6 +394,7 @@ object connform: Tconnform PasswordChar = '*' TabOrder = 4 Text = 'editSSHPassword' + TextHint = 'Your secure shell password' OnChange = Modification end object editSSHPlinkExe: TButtonedEdit @@ -406,6 +408,7 @@ object connform: Tconnform RightButton.Visible = True TabOrder = 0 Text = 'editSSHPlinkExe' + TextHint = 'Doubleclick to select plink.exe ...' OnChange = editSSHPlinkExeChange OnDblClick = PickFile OnRightButtonClick = PickFile @@ -442,6 +445,7 @@ object connform: Tconnform RightButton.Visible = True TabOrder = 5 Text = 'editSSHPrivateKey' + TextHint = 'PuTTY private key (*.ppk)' OnChange = Modification OnDblClick = PickFile OnRightButtonClick = PickFile diff --git a/source/connections.pas b/source/connections.pas index 8e59fcf3..23d7bbfd 100644 --- a/source/connections.pas +++ b/source/connections.pas @@ -573,10 +573,13 @@ begin or ((opCompress in FOrgParams.Options) <> chkCompressed.Checked) or (FOrgParams.NetType <> TNetType(comboNetType.ItemIndex)) or (FOrgParams.StartupScriptFilename <> editStartupScript.Text) + or (FOrgParams.SSHHost <> editSSHHost.Text) + or (IntToStr(FOrgParams.SSHPort) <> editSSHPort.Text) or (FOrgParams.SSHPlinkExe <> editSSHPlinkExe.Text) or (IntToStr(FOrgParams.SSHLocalPort) <> editSSHlocalport.Text) or (FOrgParams.SSHUser <> editSSHUser.Text) or (FOrgParams.SSHPassword <> editSSHPassword.Text) + or (FOrgParams.SSHPrivateKey <> editSSHPrivateKey.Text) or (FOrgParams.SSLPrivateKey <> editSSLPrivateKey.Text) or (FOrgParams.SSLCertificate <> editSSLCertificate.Text) or (FOrgParams.SSLCACertificate <> editSSLCACertificate.Text); @@ -686,6 +689,8 @@ begin Selector.Filter := 'SQL-files (*.sql)|*.sql|All files (*.*)|*.*' else if Edit = editSSHPlinkExe then Selector.Filter := 'Executables (*.exe)|*.exe|All files (*.*)|*.*' + else if Edit = editSSHPrivateKey then + Selector.Filter := 'PuTTY private key (*.ppk)|*.ppk|All files (*.*)|*.*' else Selector.Filter := 'Privacy Enhanced Mail certificates (*.pem)|*.pem|Certificates (*.crt)|*.crt|All files (*.*)|*.*'; // Find relevant label and set open dialog's title diff --git a/source/mysql_connection.pas b/source/mysql_connection.pas index 40752e4e..fcf36975 100644 --- a/source/mysql_connection.pas +++ b/source/mysql_connection.pas @@ -350,7 +350,8 @@ begin PlinkCmd := PlinkCmd + FParameters.Hostname; if FParameters.SSHPassword <> '' then PlinkCmd := PlinkCmd + ' -pw ' + FParameters.SSHPassword; - PlinkCmd := PlinkCmd + ' -P ' + IntToStr(FParameters.SSHPort); + if FParameters.SSHPort > 0 then + PlinkCmd := PlinkCmd + ' -P ' + IntToStr(FParameters.SSHPort); if FParameters.SSHPrivateKey <> '' then PlinkCmd := PlinkCmd + ' -i "' + FParameters.SSHPrivateKey + '"'; PlinkCmd := PlinkCmd + ' -L ' + IntToStr(FParameters.SSHLocalPort) + ':' + FParameters.Hostname + ':' + IntToStr(FParameters.Port);