diff --git a/.gitattributes b/.gitattributes
index 41e1c3c..dce8e29 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,2 +1,2 @@
# Ignore modified PostgreSQL sources
-pg_dump_dll/** linguist-vendored
+Source/pg_dump_dll/** linguist-vendored
diff --git a/TPSQLSSHDatabase/DEMO/SSHDemo.cfg b/Source/TPSQLSSHDatabase/DEMO/SSHDemo.cfg
similarity index 91%
rename from TPSQLSSHDatabase/DEMO/SSHDemo.cfg
rename to Source/TPSQLSSHDatabase/DEMO/SSHDemo.cfg
index 052bfee..f86f30f 100644
--- a/TPSQLSSHDatabase/DEMO/SSHDemo.cfg
+++ b/Source/TPSQLSSHDatabase/DEMO/SSHDemo.cfg
@@ -1,40 +1,40 @@
--$A8
--$B-
--$C+
--$D+
--$E-
--$F-
--$G+
--$H+
--$I+
--$J-
--$K-
--$L+
--$M-
--$N+
--$O+
--$P+
--$Q-
--$R-
--$S-
--$T-
--$U-
--$V+
--$W-
--$X+
--$YD
--$Z1
--GD
--cg
--AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
--H+
--W+
--M
--$M16384,1048576
--K$00400000
--LE"c:\program files\borland\delphi7\Projects\Bpl"
--LN"c:\program files\borland\delphi7\Projects\Bpl"
--DEUREKALOG;EUREKALOG_VER6
--w-UNSAFE_TYPE
--w-UNSAFE_CODE
--w-UNSAFE_CAST
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-GD
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-LE"c:\program files\borland\delphi7\Projects\Bpl"
+-LN"c:\program files\borland\delphi7\Projects\Bpl"
+-DEUREKALOG;EUREKALOG_VER6
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/TPSQLSSHDatabase/DEMO/SSHDemo.dpr b/Source/TPSQLSSHDatabase/DEMO/SSHDemo.dpr
similarity index 93%
rename from TPSQLSSHDatabase/DEMO/SSHDemo.dpr
rename to Source/TPSQLSSHDatabase/DEMO/SSHDemo.dpr
index 7f3df7b..f5f4d83 100644
--- a/TPSQLSSHDatabase/DEMO/SSHDemo.dpr
+++ b/Source/TPSQLSSHDatabase/DEMO/SSHDemo.dpr
@@ -1,15 +1,15 @@
-program SSHDemo;
-
-uses
- ExceptionLog,
- Forms,
- fuMain in 'fuMain.pas' {fmMain},
- fuLogin in 'fuLogin.pas' {fmLogin};
-
-{$R *.res}
-
-begin
- Application.Initialize;
- Application.CreateForm(TfmMain, fmMain);
- Application.Run;
-end.
+program SSHDemo;
+
+uses
+ ExceptionLog,
+ Forms,
+ fuMain in 'fuMain.pas' {fmMain},
+ fuLogin in 'fuLogin.pas' {fmLogin};
+
+{$R *.res}
+
+begin
+ Application.Initialize;
+ Application.CreateForm(TfmMain, fmMain);
+ Application.Run;
+end.
diff --git a/TPSQLSSHDatabase/DEMO/SSHDemo.res b/Source/TPSQLSSHDatabase/DEMO/SSHDemo.res
similarity index 100%
rename from TPSQLSSHDatabase/DEMO/SSHDemo.res
rename to Source/TPSQLSSHDatabase/DEMO/SSHDemo.res
diff --git a/TPSQLSSHDatabase/DEMO/fuLogin.dfm b/Source/TPSQLSSHDatabase/DEMO/fuLogin.dfm
similarity index 95%
rename from TPSQLSSHDatabase/DEMO/fuLogin.dfm
rename to Source/TPSQLSSHDatabase/DEMO/fuLogin.dfm
index a373272..99745d7 100644
--- a/TPSQLSSHDatabase/DEMO/fuLogin.dfm
+++ b/Source/TPSQLSSHDatabase/DEMO/fuLogin.dfm
@@ -1,368 +1,368 @@
-object fmLogin: TfmLogin
- Left = 392
- Top = 286
- BorderStyle = bsDialog
- Caption = 'mySQL Logon'
- ClientHeight = 349
- ClientWidth = 384
- Color = clBtnFace
- Font.Charset = DEFAULT_CHARSET
- Font.Color = clWindowText
- Font.Height = -11
- Font.Name = 'MS Sans Serif'
- Font.Style = []
- OldCreateOrder = False
- Position = poMainFormCenter
- DesignSize = (
- 384
- 349)
- PixelsPerInch = 96
- TextHeight = 13
- object Bevel1: TBevel
- Left = -1
- Top = 312
- Width = 385
- Height = 2
- Shape = bsTopLine
- end
- object pcProperties: TPageControl
- Left = 8
- Top = 8
- Width = 374
- Height = 297
- ActivePage = tsSSH
- TabOrder = 0
- object tsConnection: TTabSheet
- Caption = 'Connection'
- object laHost: TLabel
- Left = 12
- Top = 12
- Width = 33
- Height = 13
- AutoSize = False
- Caption = '&Host'
- FocusControl = edHost
- Transparent = True
- Layout = tlCenter
- end
- object laUser: TLabel
- Left = 12
- Top = 66
- Width = 33
- Height = 13
- AutoSize = False
- Caption = '&User'
- FocusControl = edUser
- Transparent = True
- Layout = tlCenter
- end
- object laPassword: TLabel
- Left = 231
- Top = 66
- Width = 46
- Height = 13
- AutoSize = False
- Caption = 'Pass&word'
- FocusControl = edPassword
- Transparent = True
- Layout = tlCenter
- end
- object laPort: TLabel
- Left = 231
- Top = 12
- Width = 33
- Height = 13
- AutoSize = False
- Caption = '&Port'
- FocusControl = edPort
- Transparent = True
- Layout = tlCenter
- end
- object laTimeOut: TLabel
- Left = 12
- Top = 149
- Width = 64
- Height = 13
- Caption = '&Timeout (sec)'
- FocusControl = edTimeOut
- Transparent = True
- end
- object laDBName: TLabel
- Left = 12
- Top = 176
- Width = 69
- Height = 21
- AutoSize = False
- Caption = '&Database'
- Transparent = True
- Layout = tlCenter
- end
- object bvOptions: TBevel
- Left = 8
- Top = 136
- Width = 354
- Height = 9
- Shape = bsTopLine
- end
- object edHost: TEdit
- Left = 12
- Top = 33
- Width = 209
- Height = 21
- TabOrder = 0
- Text = 'localhost'
- end
- object edUser: TEdit
- Left = 12
- Top = 87
- Width = 209
- Height = 21
- TabOrder = 2
- Text = 'root'
- end
- object edShowPassword: TCheckBox
- Left = 229
- Top = 112
- Width = 129
- Height = 21
- Caption = '&Show password chars'
- TabOrder = 4
- OnClick = edShowPasswordClick
- end
- object edPassword: TEdit
- Left = 231
- Top = 87
- Width = 129
- Height = 21
- PasswordChar = '*'
- TabOrder = 3
- end
- object edPort: TSpinEdit
- Left = 231
- Top = 33
- Width = 129
- Height = 22
- MaxValue = 9999
- MinValue = 0
- TabOrder = 1
- Value = 3306
- end
- object edTimeOut: TSpinEdit
- Left = 100
- Top = 146
- Width = 85
- Height = 22
- MaxValue = 120
- MinValue = 1
- TabOrder = 5
- Value = 5
- end
- object edDBName: TEdit
- Left = 88
- Top = 176
- Width = 273
- Height = 21
- TabOrder = 6
- end
- end
- object tsSSH: TTabSheet
- Caption = 'SSH'
- object laSSHHost: TLabel
- Left = 12
- Top = 44
- Width = 61
- Height = 13
- AutoSize = False
- Caption = 'SSH &Host'
- Enabled = False
- Transparent = True
- Layout = tlCenter
- end
- object laSSHUser: TLabel
- Left = 12
- Top = 98
- Width = 93
- Height = 13
- AutoSize = False
- Caption = 'SSH &User'
- Enabled = False
- FocusControl = edSSHUser
- Transparent = True
- Layout = tlCenter
- end
- object laSSHPassword: TLabel
- Left = 231
- Top = 98
- Width = 114
- Height = 13
- AutoSize = False
- Caption = 'SSH Pass&word'
- Enabled = False
- FocusControl = edSSHPassword
- Transparent = True
- Layout = tlCenter
- end
- object laSSHPort: TLabel
- Left = 231
- Top = 44
- Width = 74
- Height = 13
- AutoSize = False
- Caption = 'SSH &Port'
- Enabled = False
- FocusControl = edSSHPort
- Transparent = True
- Layout = tlCenter
- end
- object laSSHTimeout: TLabel
- Left = 15
- Top = 225
- Width = 89
- Height = 13
- Caption = 'SSH &Timeout (sec)'
- Enabled = False
- FocusControl = edSSHTimeout
- Transparent = True
- end
- object laSSHCompression: TLabel
- Left = 24
- Top = 194
- Width = 94
- Height = 21
- AutoSize = False
- Caption = 'Compresssion Level'
- Enabled = False
- Transparent = True
- Layout = tlCenter
- end
- object edSSHUser: TEdit
- Left = 12
- Top = 119
- Width = 209
- Height = 21
- Enabled = False
- TabOrder = 2
- end
- object edSSHPassword: TEdit
- Left = 231
- Top = 119
- Width = 129
- Height = 21
- Enabled = False
- PasswordChar = '*'
- TabOrder = 3
- end
- object edSSHPort: TSpinEdit
- Left = 231
- Top = 65
- Width = 129
- Height = 22
- Enabled = False
- MaxValue = 1000
- MinValue = 0
- TabOrder = 1
- Value = 22
- end
- object edShowSSHPassword: TCheckBox
- Left = 229
- Top = 144
- Width = 129
- Height = 21
- Caption = '&Show password chars'
- Enabled = False
- TabOrder = 4
- OnClick = edShowSSHPasswordClick
- end
- object edSSHTimeout: TSpinEdit
- Left = 136
- Top = 221
- Width = 85
- Height = 22
- Enabled = False
- MaxValue = 512
- MinValue = 1
- TabOrder = 7
- Value = 120
- end
- object chEnableSSH: TCheckBox
- Left = 12
- Top = 12
- Width = 233
- Height = 21
- Caption = '&Enable SSH Tunneling'
- TabOrder = 0
- OnClick = chEnableSSHClick
- end
- object chSSHCompression: TCheckBox
- Left = 12
- Top = 173
- Width = 205
- Height = 21
- Caption = 'Use Compression'
- Enabled = False
- TabOrder = 5
- OnClick = chSSHCompressionClick
- end
- object edSSHCompression: TComboBox
- Left = 136
- Top = 194
- Width = 85
- Height = 21
- Enabled = False
- ItemHeight = 13
- TabOrder = 6
- Text = '6'
- Items.Strings = (
- '1'
- '2'
- '3'
- '4'
- '5'
- '6'
- '7'
- '8'
- '9')
- end
- object edSSHHost: TEdit
- Left = 12
- Top = 65
- Width = 209
- Height = 21
- Enabled = False
- TabOrder = 8
- Text = 'localhost'
- end
- end
- end
- object buCancel: TButton
- Left = 304
- Top = 319
- Width = 75
- Height = 25
- HelpContext = 1001
- Anchors = [akRight, akBottom]
- Cancel = True
- Caption = '&Cancel'
- ModalResult = 2
- TabOrder = 1
- end
- object buOk: TButton
- Left = 224
- Top = 319
- Width = 75
- Height = 25
- Action = aReady
- Anchors = [akRight, akBottom]
- Default = True
- TabOrder = 2
- end
- object alProfileProps: TActionList
- Left = 8
- Top = 320
- object aReady: TAction
- Caption = '&OK'
- OnExecute = aReadyExecute
- OnUpdate = aReadyUpdate
- end
- end
-end
+object fmLogin: TfmLogin
+ Left = 392
+ Top = 286
+ BorderStyle = bsDialog
+ Caption = 'mySQL Logon'
+ ClientHeight = 349
+ ClientWidth = 384
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ Position = poMainFormCenter
+ DesignSize = (
+ 384
+ 349)
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Bevel1: TBevel
+ Left = -1
+ Top = 312
+ Width = 385
+ Height = 2
+ Shape = bsTopLine
+ end
+ object pcProperties: TPageControl
+ Left = 8
+ Top = 8
+ Width = 374
+ Height = 297
+ ActivePage = tsSSH
+ TabOrder = 0
+ object tsConnection: TTabSheet
+ Caption = 'Connection'
+ object laHost: TLabel
+ Left = 12
+ Top = 12
+ Width = 33
+ Height = 13
+ AutoSize = False
+ Caption = '&Host'
+ FocusControl = edHost
+ Transparent = True
+ Layout = tlCenter
+ end
+ object laUser: TLabel
+ Left = 12
+ Top = 66
+ Width = 33
+ Height = 13
+ AutoSize = False
+ Caption = '&User'
+ FocusControl = edUser
+ Transparent = True
+ Layout = tlCenter
+ end
+ object laPassword: TLabel
+ Left = 231
+ Top = 66
+ Width = 46
+ Height = 13
+ AutoSize = False
+ Caption = 'Pass&word'
+ FocusControl = edPassword
+ Transparent = True
+ Layout = tlCenter
+ end
+ object laPort: TLabel
+ Left = 231
+ Top = 12
+ Width = 33
+ Height = 13
+ AutoSize = False
+ Caption = '&Port'
+ FocusControl = edPort
+ Transparent = True
+ Layout = tlCenter
+ end
+ object laTimeOut: TLabel
+ Left = 12
+ Top = 149
+ Width = 64
+ Height = 13
+ Caption = '&Timeout (sec)'
+ FocusControl = edTimeOut
+ Transparent = True
+ end
+ object laDBName: TLabel
+ Left = 12
+ Top = 176
+ Width = 69
+ Height = 21
+ AutoSize = False
+ Caption = '&Database'
+ Transparent = True
+ Layout = tlCenter
+ end
+ object bvOptions: TBevel
+ Left = 8
+ Top = 136
+ Width = 354
+ Height = 9
+ Shape = bsTopLine
+ end
+ object edHost: TEdit
+ Left = 12
+ Top = 33
+ Width = 209
+ Height = 21
+ TabOrder = 0
+ Text = 'localhost'
+ end
+ object edUser: TEdit
+ Left = 12
+ Top = 87
+ Width = 209
+ Height = 21
+ TabOrder = 2
+ Text = 'root'
+ end
+ object edShowPassword: TCheckBox
+ Left = 229
+ Top = 112
+ Width = 129
+ Height = 21
+ Caption = '&Show password chars'
+ TabOrder = 4
+ OnClick = edShowPasswordClick
+ end
+ object edPassword: TEdit
+ Left = 231
+ Top = 87
+ Width = 129
+ Height = 21
+ PasswordChar = '*'
+ TabOrder = 3
+ end
+ object edPort: TSpinEdit
+ Left = 231
+ Top = 33
+ Width = 129
+ Height = 22
+ MaxValue = 9999
+ MinValue = 0
+ TabOrder = 1
+ Value = 3306
+ end
+ object edTimeOut: TSpinEdit
+ Left = 100
+ Top = 146
+ Width = 85
+ Height = 22
+ MaxValue = 120
+ MinValue = 1
+ TabOrder = 5
+ Value = 5
+ end
+ object edDBName: TEdit
+ Left = 88
+ Top = 176
+ Width = 273
+ Height = 21
+ TabOrder = 6
+ end
+ end
+ object tsSSH: TTabSheet
+ Caption = 'SSH'
+ object laSSHHost: TLabel
+ Left = 12
+ Top = 44
+ Width = 61
+ Height = 13
+ AutoSize = False
+ Caption = 'SSH &Host'
+ Enabled = False
+ Transparent = True
+ Layout = tlCenter
+ end
+ object laSSHUser: TLabel
+ Left = 12
+ Top = 98
+ Width = 93
+ Height = 13
+ AutoSize = False
+ Caption = 'SSH &User'
+ Enabled = False
+ FocusControl = edSSHUser
+ Transparent = True
+ Layout = tlCenter
+ end
+ object laSSHPassword: TLabel
+ Left = 231
+ Top = 98
+ Width = 114
+ Height = 13
+ AutoSize = False
+ Caption = 'SSH Pass&word'
+ Enabled = False
+ FocusControl = edSSHPassword
+ Transparent = True
+ Layout = tlCenter
+ end
+ object laSSHPort: TLabel
+ Left = 231
+ Top = 44
+ Width = 74
+ Height = 13
+ AutoSize = False
+ Caption = 'SSH &Port'
+ Enabled = False
+ FocusControl = edSSHPort
+ Transparent = True
+ Layout = tlCenter
+ end
+ object laSSHTimeout: TLabel
+ Left = 15
+ Top = 225
+ Width = 89
+ Height = 13
+ Caption = 'SSH &Timeout (sec)'
+ Enabled = False
+ FocusControl = edSSHTimeout
+ Transparent = True
+ end
+ object laSSHCompression: TLabel
+ Left = 24
+ Top = 194
+ Width = 94
+ Height = 21
+ AutoSize = False
+ Caption = 'Compresssion Level'
+ Enabled = False
+ Transparent = True
+ Layout = tlCenter
+ end
+ object edSSHUser: TEdit
+ Left = 12
+ Top = 119
+ Width = 209
+ Height = 21
+ Enabled = False
+ TabOrder = 2
+ end
+ object edSSHPassword: TEdit
+ Left = 231
+ Top = 119
+ Width = 129
+ Height = 21
+ Enabled = False
+ PasswordChar = '*'
+ TabOrder = 3
+ end
+ object edSSHPort: TSpinEdit
+ Left = 231
+ Top = 65
+ Width = 129
+ Height = 22
+ Enabled = False
+ MaxValue = 1000
+ MinValue = 0
+ TabOrder = 1
+ Value = 22
+ end
+ object edShowSSHPassword: TCheckBox
+ Left = 229
+ Top = 144
+ Width = 129
+ Height = 21
+ Caption = '&Show password chars'
+ Enabled = False
+ TabOrder = 4
+ OnClick = edShowSSHPasswordClick
+ end
+ object edSSHTimeout: TSpinEdit
+ Left = 136
+ Top = 221
+ Width = 85
+ Height = 22
+ Enabled = False
+ MaxValue = 512
+ MinValue = 1
+ TabOrder = 7
+ Value = 120
+ end
+ object chEnableSSH: TCheckBox
+ Left = 12
+ Top = 12
+ Width = 233
+ Height = 21
+ Caption = '&Enable SSH Tunneling'
+ TabOrder = 0
+ OnClick = chEnableSSHClick
+ end
+ object chSSHCompression: TCheckBox
+ Left = 12
+ Top = 173
+ Width = 205
+ Height = 21
+ Caption = 'Use Compression'
+ Enabled = False
+ TabOrder = 5
+ OnClick = chSSHCompressionClick
+ end
+ object edSSHCompression: TComboBox
+ Left = 136
+ Top = 194
+ Width = 85
+ Height = 21
+ Enabled = False
+ ItemHeight = 13
+ TabOrder = 6
+ Text = '6'
+ Items.Strings = (
+ '1'
+ '2'
+ '3'
+ '4'
+ '5'
+ '6'
+ '7'
+ '8'
+ '9')
+ end
+ object edSSHHost: TEdit
+ Left = 12
+ Top = 65
+ Width = 209
+ Height = 21
+ Enabled = False
+ TabOrder = 8
+ Text = 'localhost'
+ end
+ end
+ end
+ object buCancel: TButton
+ Left = 304
+ Top = 319
+ Width = 75
+ Height = 25
+ HelpContext = 1001
+ Anchors = [akRight, akBottom]
+ Cancel = True
+ Caption = '&Cancel'
+ ModalResult = 2
+ TabOrder = 1
+ end
+ object buOk: TButton
+ Left = 224
+ Top = 319
+ Width = 75
+ Height = 25
+ Action = aReady
+ Anchors = [akRight, akBottom]
+ Default = True
+ TabOrder = 2
+ end
+ object alProfileProps: TActionList
+ Left = 8
+ Top = 320
+ object aReady: TAction
+ Caption = '&OK'
+ OnExecute = aReadyExecute
+ OnUpdate = aReadyUpdate
+ end
+ end
+end
diff --git a/TPSQLSSHDatabase/DEMO/fuLogin.pas b/Source/TPSQLSSHDatabase/DEMO/fuLogin.pas
similarity index 96%
rename from TPSQLSSHDatabase/DEMO/fuLogin.pas
rename to Source/TPSQLSSHDatabase/DEMO/fuLogin.pas
index f5575b5..8330202 100644
--- a/TPSQLSSHDatabase/DEMO/fuLogin.pas
+++ b/Source/TPSQLSSHDatabase/DEMO/fuLogin.pas
@@ -1,203 +1,203 @@
-unit fuLogin;
-
-interface
-
-uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, ActnList, ExtCtrls, ComCtrls, Spin, PgSSHDatabase, StdCtrls;
-
-type
- TfmLogin = class(TForm)
- pcProperties: TPageControl;
- tsConnection: TTabSheet;
- laHost: TLabel;
- laUser: TLabel;
- laPassword: TLabel;
- laPort: TLabel;
- laTimeOut: TLabel;
- laDBName: TLabel;
- bvOptions: TBevel;
- edHost: TEdit;
- edUser: TEdit;
- edShowPassword: TCheckBox;
- edPassword: TEdit;
- edPort: TSpinEdit;
- edTimeOut: TSpinEdit;
- tsSSH: TTabSheet;
- laSSHHost: TLabel;
- laSSHUser: TLabel;
- laSSHPassword: TLabel;
- laSSHPort: TLabel;
- laSSHTimeout: TLabel;
- laSSHCompression: TLabel;
- edSSHUser: TEdit;
- edSSHPassword: TEdit;
- edSSHPort: TSpinEdit;
- edShowSSHPassword: TCheckBox;
- edSSHTimeout: TSpinEdit;
- chEnableSSH: TCheckBox;
- chSSHCompression: TCheckBox;
- edSSHCompression: TComboBox;
- edSSHHost: TEdit;
- buCancel: TButton;
- buOk: TButton;
- Bevel1: TBevel;
- alProfileProps: TActionList;
- aReady: TAction;
- edDBName: TEdit;
- procedure aReadyUpdate(Sender: TObject);
- procedure aReadyExecute(Sender: TObject);
- procedure edShowPasswordClick(Sender: TObject);
- procedure edShowSSHPasswordClick(Sender: TObject);
- procedure chEnableSSHClick(Sender: TObject);
- procedure chSSHCompressionClick(Sender: TObject);
- private
- { Private declarations }
- Database: TPgSSHDatabase;
- function Edit: Boolean;
- public
- { Public declarations }
- procedure GetDatabaseProperty(Db: TPgSSHDatabase);
- procedure SetDatabaseProperty(Db: TPgSSHDatabase);
- end;
-
-function ShowConnectDlg(ADatabase: TPgSSHDatabase): Boolean;
-procedure SetControlGroupEnabled(ParentControl: TWinControl; const Value: boolean;
- ForbiddenCtrls: TStrings = nil);
-
-
-var
- fmLogin: TfmLogin;
-
-implementation
-
-{$R *.dfm}
-
-function ShowConnectDlg(ADatabase: TPgSSHDatabase): Boolean;
-begin
- with TfmLogin.Create(Application) do
- try
- Database := ADatabase;
- Result := Edit;
- finally
- Free;
- end;
-end;
-
-function TfmLogin.Edit: Boolean;
-begin
- GetDatabaseProperty(Database);
- Result := False;
- if ShowModal = mrOk then
- begin
- SetDatabaseProperty(Database);
- Result := True;
- end;
-end;
-
-procedure TfmLogin.GetDatabaseProperty(Db: TPgSSHDatabase);
-begin
- //Standard
- edDBName.Text := DB.DatabaseName;
- edUser.Text := db.UserName;
- edPassword.Text:= db.UserPassword;
- edHost.Text := Db.Host;
- edPort.Value := Db.Port;
- edTimeOut.Value:= DB.ConnectionTimeout;
- //SSH
- chEnableSSH.Checked := DB.SSHEnabled;
- edSSHHost.Text := DB.SSHHost;
- edSSHPort.Value := DB.SSHPort;
- edSSHUser.Text := DB.SSHLogin;
- edSSHPassword.Text := DB.SSHPassword;
- chSSHCompression.Checked := DB.SSHUseCompression;
- edSSHCompression.Text := IntToStr(DB.SSHCompressionLevel);
- edSSHTimeout.Value := DB.SSHTimeout;
-end;
-
-procedure TfmLogin.SetDatabaseProperty(Db: TPgSSHDatabase);
-begin
- //Standard
- DB.DatabaseName := edDBName.Text;
- db.UserName := edUser.Text;
- db.UserPassword := edPassword.Text;
- Db.Host := edHost.Text;
- Db.Port := edPort.Value;
- DB.ConnectionTimeout := edTimeOut.Value;
- //SSH
- DB.SSHEnabled := chEnableSSH.Checked;
- DB.SSHHost := edSSHHost.Text;
- DB.SSHPort := edSSHPort.Value;
- DB.SSHLogin := edSSHUser.Text;
- DB.SSHPassword:= edSSHPassword.Text;
- DB.SSHUseCompression := chSSHCompression.Checked;
- DB.SSHCompressionLevel := StrtoInt(edSSHCompression.Text);
- DB.SSHTimeout := edSSHTimeout.Value;
-end;
-
-procedure TfmLogin.aReadyUpdate(Sender: TObject);
-begin
- (Sender as TAction).Enabled := (Trim(edHost.Text) <> EmptyStr) and (Trim(edUser.Text) <> EmptyStr) and (Trim(edDBName.Text) <> EmptyStr);
-end;
-
-procedure TfmLogin.aReadyExecute(Sender: TObject);
-begin
- ModalResult := mrOk;
-end;
-
-procedure TfmLogin.edShowPasswordClick(Sender: TObject);
-begin
- if edShowPassword.Checked then
- edPassword.PasswordChar := #0 else
- edPassword.PasswordChar := '*';
-end;
-
-procedure TfmLogin.edShowSSHPasswordClick(Sender: TObject);
-begin
- if edShowSSHPassword.Checked then
- edSSHPassword.PasswordChar := #0 else
- edSShPassword.PasswordChar := '*';
-end;
-
-procedure SetControlGroupEnabled(ParentControl: TWinControl; const Value: boolean;
- ForbiddenCtrls: TStrings);
-var
- i: integer;
-begin
- if not Assigned(ParentControl) then Exit;
- for i := 0 to ParentControl.ControlCount - 1 do begin
- if Assigned(ForbiddenCtrls) and
- (ForbiddenCtrls.IndexOf(ParentControl.Controls[i].Name) > -1) then Continue;
- if ParentControl.Controls[i] is TWinControl then
- SetControlGroupEnabled(TWinControl(ParentControl.Controls[i]), Value)
- else ParentControl.Controls[i].Enabled := Value;
- end;
- ParentControl.Enabled := Value;
-end;
-
-procedure TfmLogin.chEnableSSHClick(Sender: TObject);
-var
- AStrings: TStrings;
-begin
- AStrings := TStringList.Create();
- try
- AStrings.Add(tsSSH.Name);
- AStrings.Add(chEnableSSH.Name);
- if chEnableSSH.Checked and (not chSSHCompression.Checked) then
- begin
- AStrings.Add(laSSHCompression.Name);
- AStrings.Add(edSSHCompression.Name);
- end;
- SetControlGroupEnabled(tsSSH, chEnableSSH.Checked, AStrings);
- finally
- AStrings.Free();
- end;
-end;
-
-procedure TfmLogin.chSSHCompressionClick(Sender: TObject);
-begin
- laSSHCompression.Enabled := chEnableSSH.Checked and chSSHCompression.Checked;
- edSSHCompression.Enabled := chEnableSSH.Checked and chSSHCompression.Checked;
-end;
-
-end.
+unit fuLogin;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, ActnList, ExtCtrls, ComCtrls, Spin, PgSSHDatabase, StdCtrls;
+
+type
+ TfmLogin = class(TForm)
+ pcProperties: TPageControl;
+ tsConnection: TTabSheet;
+ laHost: TLabel;
+ laUser: TLabel;
+ laPassword: TLabel;
+ laPort: TLabel;
+ laTimeOut: TLabel;
+ laDBName: TLabel;
+ bvOptions: TBevel;
+ edHost: TEdit;
+ edUser: TEdit;
+ edShowPassword: TCheckBox;
+ edPassword: TEdit;
+ edPort: TSpinEdit;
+ edTimeOut: TSpinEdit;
+ tsSSH: TTabSheet;
+ laSSHHost: TLabel;
+ laSSHUser: TLabel;
+ laSSHPassword: TLabel;
+ laSSHPort: TLabel;
+ laSSHTimeout: TLabel;
+ laSSHCompression: TLabel;
+ edSSHUser: TEdit;
+ edSSHPassword: TEdit;
+ edSSHPort: TSpinEdit;
+ edShowSSHPassword: TCheckBox;
+ edSSHTimeout: TSpinEdit;
+ chEnableSSH: TCheckBox;
+ chSSHCompression: TCheckBox;
+ edSSHCompression: TComboBox;
+ edSSHHost: TEdit;
+ buCancel: TButton;
+ buOk: TButton;
+ Bevel1: TBevel;
+ alProfileProps: TActionList;
+ aReady: TAction;
+ edDBName: TEdit;
+ procedure aReadyUpdate(Sender: TObject);
+ procedure aReadyExecute(Sender: TObject);
+ procedure edShowPasswordClick(Sender: TObject);
+ procedure edShowSSHPasswordClick(Sender: TObject);
+ procedure chEnableSSHClick(Sender: TObject);
+ procedure chSSHCompressionClick(Sender: TObject);
+ private
+ { Private declarations }
+ Database: TPgSSHDatabase;
+ function Edit: Boolean;
+ public
+ { Public declarations }
+ procedure GetDatabaseProperty(Db: TPgSSHDatabase);
+ procedure SetDatabaseProperty(Db: TPgSSHDatabase);
+ end;
+
+function ShowConnectDlg(ADatabase: TPgSSHDatabase): Boolean;
+procedure SetControlGroupEnabled(ParentControl: TWinControl; const Value: boolean;
+ ForbiddenCtrls: TStrings = nil);
+
+
+var
+ fmLogin: TfmLogin;
+
+implementation
+
+{$R *.dfm}
+
+function ShowConnectDlg(ADatabase: TPgSSHDatabase): Boolean;
+begin
+ with TfmLogin.Create(Application) do
+ try
+ Database := ADatabase;
+ Result := Edit;
+ finally
+ Free;
+ end;
+end;
+
+function TfmLogin.Edit: Boolean;
+begin
+ GetDatabaseProperty(Database);
+ Result := False;
+ if ShowModal = mrOk then
+ begin
+ SetDatabaseProperty(Database);
+ Result := True;
+ end;
+end;
+
+procedure TfmLogin.GetDatabaseProperty(Db: TPgSSHDatabase);
+begin
+ //Standard
+ edDBName.Text := DB.DatabaseName;
+ edUser.Text := db.UserName;
+ edPassword.Text:= db.UserPassword;
+ edHost.Text := Db.Host;
+ edPort.Value := Db.Port;
+ edTimeOut.Value:= DB.ConnectionTimeout;
+ //SSH
+ chEnableSSH.Checked := DB.SSHEnabled;
+ edSSHHost.Text := DB.SSHHost;
+ edSSHPort.Value := DB.SSHPort;
+ edSSHUser.Text := DB.SSHLogin;
+ edSSHPassword.Text := DB.SSHPassword;
+ chSSHCompression.Checked := DB.SSHUseCompression;
+ edSSHCompression.Text := IntToStr(DB.SSHCompressionLevel);
+ edSSHTimeout.Value := DB.SSHTimeout;
+end;
+
+procedure TfmLogin.SetDatabaseProperty(Db: TPgSSHDatabase);
+begin
+ //Standard
+ DB.DatabaseName := edDBName.Text;
+ db.UserName := edUser.Text;
+ db.UserPassword := edPassword.Text;
+ Db.Host := edHost.Text;
+ Db.Port := edPort.Value;
+ DB.ConnectionTimeout := edTimeOut.Value;
+ //SSH
+ DB.SSHEnabled := chEnableSSH.Checked;
+ DB.SSHHost := edSSHHost.Text;
+ DB.SSHPort := edSSHPort.Value;
+ DB.SSHLogin := edSSHUser.Text;
+ DB.SSHPassword:= edSSHPassword.Text;
+ DB.SSHUseCompression := chSSHCompression.Checked;
+ DB.SSHCompressionLevel := StrtoInt(edSSHCompression.Text);
+ DB.SSHTimeout := edSSHTimeout.Value;
+end;
+
+procedure TfmLogin.aReadyUpdate(Sender: TObject);
+begin
+ (Sender as TAction).Enabled := (Trim(edHost.Text) <> EmptyStr) and (Trim(edUser.Text) <> EmptyStr) and (Trim(edDBName.Text) <> EmptyStr);
+end;
+
+procedure TfmLogin.aReadyExecute(Sender: TObject);
+begin
+ ModalResult := mrOk;
+end;
+
+procedure TfmLogin.edShowPasswordClick(Sender: TObject);
+begin
+ if edShowPassword.Checked then
+ edPassword.PasswordChar := #0 else
+ edPassword.PasswordChar := '*';
+end;
+
+procedure TfmLogin.edShowSSHPasswordClick(Sender: TObject);
+begin
+ if edShowSSHPassword.Checked then
+ edSSHPassword.PasswordChar := #0 else
+ edSShPassword.PasswordChar := '*';
+end;
+
+procedure SetControlGroupEnabled(ParentControl: TWinControl; const Value: boolean;
+ ForbiddenCtrls: TStrings);
+var
+ i: integer;
+begin
+ if not Assigned(ParentControl) then Exit;
+ for i := 0 to ParentControl.ControlCount - 1 do begin
+ if Assigned(ForbiddenCtrls) and
+ (ForbiddenCtrls.IndexOf(ParentControl.Controls[i].Name) > -1) then Continue;
+ if ParentControl.Controls[i] is TWinControl then
+ SetControlGroupEnabled(TWinControl(ParentControl.Controls[i]), Value)
+ else ParentControl.Controls[i].Enabled := Value;
+ end;
+ ParentControl.Enabled := Value;
+end;
+
+procedure TfmLogin.chEnableSSHClick(Sender: TObject);
+var
+ AStrings: TStrings;
+begin
+ AStrings := TStringList.Create();
+ try
+ AStrings.Add(tsSSH.Name);
+ AStrings.Add(chEnableSSH.Name);
+ if chEnableSSH.Checked and (not chSSHCompression.Checked) then
+ begin
+ AStrings.Add(laSSHCompression.Name);
+ AStrings.Add(edSSHCompression.Name);
+ end;
+ SetControlGroupEnabled(tsSSH, chEnableSSH.Checked, AStrings);
+ finally
+ AStrings.Free();
+ end;
+end;
+
+procedure TfmLogin.chSSHCompressionClick(Sender: TObject);
+begin
+ laSSHCompression.Enabled := chEnableSSH.Checked and chSSHCompression.Checked;
+ edSSHCompression.Enabled := chEnableSSH.Checked and chSSHCompression.Checked;
+end;
+
+end.
diff --git a/TPSQLSSHDatabase/DEMO/fuMain.dfm b/Source/TPSQLSSHDatabase/DEMO/fuMain.dfm
similarity index 95%
rename from TPSQLSSHDatabase/DEMO/fuMain.dfm
rename to Source/TPSQLSSHDatabase/DEMO/fuMain.dfm
index b76235d..4a02d56 100644
--- a/TPSQLSSHDatabase/DEMO/fuMain.dfm
+++ b/Source/TPSQLSSHDatabase/DEMO/fuMain.dfm
@@ -1,125 +1,125 @@
-object fmMain: TfmMain
- Left = 484
- Top = 299
- Width = 633
- Height = 434
- Caption = 'Main form'
- Color = clBtnFace
- Constraints.MinHeight = 434
- Constraints.MinWidth = 633
- Font.Charset = DEFAULT_CHARSET
- Font.Color = clWindowText
- Font.Height = -11
- Font.Name = 'MS Sans Serif'
- Font.Style = []
- OldCreateOrder = False
- Position = poScreenCenter
- DesignSize = (
- 625
- 400)
- PixelsPerInch = 96
- TextHeight = 13
- object Label1: TLabel
- Left = 8
- Top = 8
- Width = 80
- Height = 13
- Caption = 'Database tables:'
- end
- object Label2: TLabel
- Left = 192
- Top = 8
- Width = 51
- Height = 13
- Caption = 'Table data'
- end
- object lbTables: TListBox
- Left = 8
- Top = 24
- Width = 177
- Height = 337
- Anchors = [akLeft, akTop, akBottom]
- ItemHeight = 13
- TabOrder = 0
- OnClick = lbTablesClick
- end
- object dbgData: TDBGrid
- Left = 192
- Top = 24
- Width = 425
- Height = 305
- Anchors = [akLeft, akTop, akRight, akBottom]
- DataSource = DataSource1
- TabOrder = 1
- TitleFont.Charset = DEFAULT_CHARSET
- TitleFont.Color = clWindowText
- TitleFont.Height = -11
- TitleFont.Name = 'MS Sans Serif'
- TitleFont.Style = []
- end
- object dbnData: TDBNavigator
- Left = 192
- Top = 336
- Width = 430
- Height = 25
- DataSource = DataSource1
- Anchors = [akLeft, akRight, akBottom]
- Flat = True
- TabOrder = 2
- end
- object buConnect: TButton
- Left = 8
- Top = 368
- Width = 75
- Height = 25
- Anchors = [akLeft, akBottom]
- Caption = 'Connect'
- TabOrder = 3
- OnClick = buConnectClick
- end
- object buDisconnect: TButton
- Left = 88
- Top = 368
- Width = 75
- Height = 25
- Anchors = [akLeft, akBottom]
- Caption = 'Disconnect'
- Enabled = False
- TabOrder = 4
- OnClick = buDisconnectClick
- end
- object buClose: TButton
- Left = 544
- Top = 368
- Width = 75
- Height = 25
- Anchors = [akRight, akBottom]
- Caption = 'Close'
- TabOrder = 5
- OnClick = buCloseClick
- end
- object DataSource1: TDataSource
- DataSet = PSQLT
- Left = 256
- Top = 368
- end
- object PgSSHDB: TPgSSHDatabase
- Params.Strings = (
- 'Port=5432')
- SSLMode = sslDisable
- UseSSL = False
- SSHPort = 0
- SSHTimeout = 120
- SSHUseCompression = False
- SSHCompressionLevel = 6
- Left = 176
- Top = 368
- end
- object PSQLT: TPSQLTable
- Database = PgSSHDB
- OIDAsInt = False
- ByteaAsEscString = False
- Left = 208
- Top = 368
- end
-end
+object fmMain: TfmMain
+ Left = 484
+ Top = 299
+ Width = 633
+ Height = 434
+ Caption = 'Main form'
+ Color = clBtnFace
+ Constraints.MinHeight = 434
+ Constraints.MinWidth = 633
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ Position = poScreenCenter
+ DesignSize = (
+ 625
+ 400)
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Label1: TLabel
+ Left = 8
+ Top = 8
+ Width = 80
+ Height = 13
+ Caption = 'Database tables:'
+ end
+ object Label2: TLabel
+ Left = 192
+ Top = 8
+ Width = 51
+ Height = 13
+ Caption = 'Table data'
+ end
+ object lbTables: TListBox
+ Left = 8
+ Top = 24
+ Width = 177
+ Height = 337
+ Anchors = [akLeft, akTop, akBottom]
+ ItemHeight = 13
+ TabOrder = 0
+ OnClick = lbTablesClick
+ end
+ object dbgData: TDBGrid
+ Left = 192
+ Top = 24
+ Width = 425
+ Height = 305
+ Anchors = [akLeft, akTop, akRight, akBottom]
+ DataSource = DataSource1
+ TabOrder = 1
+ TitleFont.Charset = DEFAULT_CHARSET
+ TitleFont.Color = clWindowText
+ TitleFont.Height = -11
+ TitleFont.Name = 'MS Sans Serif'
+ TitleFont.Style = []
+ end
+ object dbnData: TDBNavigator
+ Left = 192
+ Top = 336
+ Width = 430
+ Height = 25
+ DataSource = DataSource1
+ Anchors = [akLeft, akRight, akBottom]
+ Flat = True
+ TabOrder = 2
+ end
+ object buConnect: TButton
+ Left = 8
+ Top = 368
+ Width = 75
+ Height = 25
+ Anchors = [akLeft, akBottom]
+ Caption = 'Connect'
+ TabOrder = 3
+ OnClick = buConnectClick
+ end
+ object buDisconnect: TButton
+ Left = 88
+ Top = 368
+ Width = 75
+ Height = 25
+ Anchors = [akLeft, akBottom]
+ Caption = 'Disconnect'
+ Enabled = False
+ TabOrder = 4
+ OnClick = buDisconnectClick
+ end
+ object buClose: TButton
+ Left = 544
+ Top = 368
+ Width = 75
+ Height = 25
+ Anchors = [akRight, akBottom]
+ Caption = 'Close'
+ TabOrder = 5
+ OnClick = buCloseClick
+ end
+ object DataSource1: TDataSource
+ DataSet = PSQLT
+ Left = 256
+ Top = 368
+ end
+ object PgSSHDB: TPgSSHDatabase
+ Params.Strings = (
+ 'Port=5432')
+ SSLMode = sslDisable
+ UseSSL = False
+ SSHPort = 0
+ SSHTimeout = 120
+ SSHUseCompression = False
+ SSHCompressionLevel = 6
+ Left = 176
+ Top = 368
+ end
+ object PSQLT: TPSQLTable
+ Database = PgSSHDB
+ OIDAsInt = False
+ ByteaAsEscString = False
+ Left = 208
+ Top = 368
+ end
+end
diff --git a/TPSQLSSHDatabase/DEMO/fuMain.pas b/Source/TPSQLSSHDatabase/DEMO/fuMain.pas
similarity index 95%
rename from TPSQLSSHDatabase/DEMO/fuMain.pas
rename to Source/TPSQLSSHDatabase/DEMO/fuMain.pas
index ccbfe37..f75bb96 100644
--- a/TPSQLSSHDatabase/DEMO/fuMain.pas
+++ b/Source/TPSQLSSHDatabase/DEMO/fuMain.pas
@@ -1,84 +1,84 @@
-unit fuMain;
-
-interface
-
-uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls, ExtCtrls, DBCtrls, Grids, DBGrids, DB, PSQLDbTables,
- PgSSHDatabase;
-
-type
- TfmMain = class(TForm)
- lbTables: TListBox;
- Label1: TLabel;
- dbgData: TDBGrid;
- dbnData: TDBNavigator;
- Label2: TLabel;
- buConnect: TButton;
- buDisconnect: TButton;
- buClose: TButton;
- DataSource1: TDataSource;
- PgSSHDB: TPgSSHDatabase;
- PSQLT: TPSQLTable;
- procedure buCloseClick(Sender: TObject);
- procedure buConnectClick(Sender: TObject);
- procedure buDisconnectClick(Sender: TObject);
- procedure lbTablesClick(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
-
-var
- fmMain: TfmMain;
-
-implementation
-uses fuLogin;
-
-{$R *.dfm}
-
-procedure TfmMain.buCloseClick(Sender: TObject);
-begin
- Close;
-end;
-
-
-procedure TfmMain.buConnectClick(Sender: TObject);
-begin
- if ShowConnectDlg(PgSSHDB) then
- begin
- try
- PgSSHDB.Connected := true;
- Screen.Cursor := crSQLWait;
- PgSSHDB.GetTableNames('',False,lbTables.Items);
- Screen.Cursor := crDefault;
- buConnect.Enabled := False;
- buDisconnect.Enabled := True;
- except
- on E:Exception do
- begin
- Application.MessageBox(PChar(E.Message), 'Connection fault',
- MB_OK or MB_ICONINFORMATION);
- end;
- end;
- end;
-end;
-
-procedure TfmMain.buDisconnectClick(Sender: TObject);
-begin
- PgSSHDB.Close;
- buConnect.Enabled := True;
- buDisConnect.Enabled := False;
- lbTables.Clear;
-end;
-
-procedure TfmMain.lbTablesClick(Sender: TObject);
-begin
- if lbTables.ItemIndex = -1 then Exit;
- PSQLT.Close;
- PSQLT.TableName := lbTables.Items[lbTables.ItemIndex];
- PSQLT.Open;
-end;
-
-end.
+unit fuMain;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, StdCtrls, ExtCtrls, DBCtrls, Grids, DBGrids, DB, PSQLDbTables,
+ PgSSHDatabase;
+
+type
+ TfmMain = class(TForm)
+ lbTables: TListBox;
+ Label1: TLabel;
+ dbgData: TDBGrid;
+ dbnData: TDBNavigator;
+ Label2: TLabel;
+ buConnect: TButton;
+ buDisconnect: TButton;
+ buClose: TButton;
+ DataSource1: TDataSource;
+ PgSSHDB: TPgSSHDatabase;
+ PSQLT: TPSQLTable;
+ procedure buCloseClick(Sender: TObject);
+ procedure buConnectClick(Sender: TObject);
+ procedure buDisconnectClick(Sender: TObject);
+ procedure lbTablesClick(Sender: TObject);
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+var
+ fmMain: TfmMain;
+
+implementation
+uses fuLogin;
+
+{$R *.dfm}
+
+procedure TfmMain.buCloseClick(Sender: TObject);
+begin
+ Close;
+end;
+
+
+procedure TfmMain.buConnectClick(Sender: TObject);
+begin
+ if ShowConnectDlg(PgSSHDB) then
+ begin
+ try
+ PgSSHDB.Connected := true;
+ Screen.Cursor := crSQLWait;
+ PgSSHDB.GetTableNames('',False,lbTables.Items);
+ Screen.Cursor := crDefault;
+ buConnect.Enabled := False;
+ buDisconnect.Enabled := True;
+ except
+ on E:Exception do
+ begin
+ Application.MessageBox(PChar(E.Message), 'Connection fault',
+ MB_OK or MB_ICONINFORMATION);
+ end;
+ end;
+ end;
+end;
+
+procedure TfmMain.buDisconnectClick(Sender: TObject);
+begin
+ PgSSHDB.Close;
+ buConnect.Enabled := True;
+ buDisConnect.Enabled := False;
+ lbTables.Clear;
+end;
+
+procedure TfmMain.lbTablesClick(Sender: TObject);
+begin
+ if lbTables.ItemIndex = -1 then Exit;
+ PSQLT.Close;
+ PSQLT.TableName := lbTables.Items[lbTables.ItemIndex];
+ PSQLT.Open;
+end;
+
+end.
diff --git a/TPSQLSSHDatabase/SRC/BDS2006/PgSSHDatabaseBDS2006.bdsproj b/Source/TPSQLSSHDatabase/SRC/BDS2006/PgSSHDatabaseBDS2006.bdsproj
similarity index 97%
rename from TPSQLSSHDatabase/SRC/BDS2006/PgSSHDatabaseBDS2006.bdsproj
rename to Source/TPSQLSSHDatabase/SRC/BDS2006/PgSSHDatabaseBDS2006.bdsproj
index d6d421c..e126b09 100644
--- a/TPSQLSSHDatabase/SRC/BDS2006/PgSSHDatabaseBDS2006.bdsproj
+++ b/Source/TPSQLSSHDatabase/SRC/BDS2006/PgSSHDatabaseBDS2006.bdsproj
@@ -1,175 +1,175 @@
-
-
-
-
-
-
-
-
-
-
-
- mySSHDatabaseBDS2006.dpk
-
-
- 7.0
-
-
- 8
- 0
- 1
- 1
- 0
- 0
- 1
- 1
- 1
- 0
- 0
- 1
- 0
- 1
- 1
- 1
- 0
- 0
- 0
- 0
- 0
- 1
- 0
- 1
- 1
- 1
- True
- True
- WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-
- False
-
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- False
- False
- False
- True
- True
- True
- True
- True
- True
-
-
-
- 0
- 0
- False
- 1
- False
- False
- False
- 16384
- 1048576
- 4194304
-
-
-
-
-
-
-
-
-
-
-
- False
-
-
-
-
-
- False
-
-
- True
- False
-
-
-
- $00000000
-
-
-
- True
- False
- 1
- 0
- 0
- 0
- False
- False
- False
- False
- False
- 1049
- 1251
-
-
-
-
- 1.0.0.0
-
-
-
-
-
- 1.0.0.0
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+ mySSHDatabaseBDS2006.dpk
+
+
+ 7.0
+
+
+ 8
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ True
+ True
+ WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+
+ False
+
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+ True
+
+
+
+ 0
+ 0
+ False
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+
+
+
+
+
+
+
+
+
+
+
+ False
+
+
+
+
+
+ False
+
+
+ True
+ False
+
+
+
+ $00000000
+
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 1049
+ 1251
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
+ 1.0.0.0
+
+
+
+
diff --git a/TPSQLSSHDatabase/SRC/BDS2006/PgSSHDatabaseBDS2006.dpk b/Source/TPSQLSSHDatabase/SRC/BDS2006/PgSSHDatabaseBDS2006.dpk
similarity index 93%
rename from TPSQLSSHDatabase/SRC/BDS2006/PgSSHDatabaseBDS2006.dpk
rename to Source/TPSQLSSHDatabase/SRC/BDS2006/PgSSHDatabaseBDS2006.dpk
index f40ebfd..95adddd 100644
--- a/TPSQLSSHDatabase/SRC/BDS2006/PgSSHDatabaseBDS2006.dpk
+++ b/Source/TPSQLSSHDatabase/SRC/BDS2006/PgSSHDatabaseBDS2006.dpk
@@ -1,39 +1,39 @@
-package PgSSHDatabaseBDS2006;
-
-{$R *.res}
-{$ALIGN 8}
-{$ASSERTIONS ON}
-{$BOOLEVAL OFF}
-{$DEBUGINFO ON}
-{$EXTENDEDSYNTAX ON}
-{$IMPORTEDDATA ON}
-{$IOCHECKS ON}
-{$LOCALSYMBOLS ON}
-{$LONGSTRINGS ON}
-{$OPENSTRINGS ON}
-{$OPTIMIZATION ON}
-{$OVERFLOWCHECKS OFF}
-{$RANGECHECKS OFF}
-{$REFERENCEINFO ON}
-{$SAFEDIVIDE OFF}
-{$STACKFRAMES OFF}
-{$TYPEDADDRESS OFF}
-{$VARSTRINGCHECKS ON}
-{$WRITEABLECONST OFF}
-{$MINENUMSIZE 1}
-{$IMAGEBASE $400000}
-{$IMPLICITBUILD OFF}
-
-requires
- vcl,
- rtl,
- dbrtl,
- bdertl,
- vcldb,
- PostgresDAC10,
- wodSSHTunnel;
-
-contains
- PgSSHDatabase in '..\PgSSHDatabase.pas';
-
-end.
+package PgSSHDatabaseBDS2006;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$IMPLICITBUILD OFF}
+
+requires
+ vcl,
+ rtl,
+ dbrtl,
+ bdertl,
+ vcldb,
+ PostgresDAC10,
+ wodSSHTunnel;
+
+contains
+ PgSSHDatabase in '..\PgSSHDatabase.pas';
+
+end.
diff --git a/TPSQLSSHDatabase/SRC/BDS2006/PgSSHDatabaseBDS2006.res b/Source/TPSQLSSHDatabase/SRC/BDS2006/PgSSHDatabaseBDS2006.res
similarity index 100%
rename from TPSQLSSHDatabase/SRC/BDS2006/PgSSHDatabaseBDS2006.res
rename to Source/TPSQLSSHDatabase/SRC/BDS2006/PgSSHDatabaseBDS2006.res
diff --git a/TPSQLSSHDatabase/SRC/Delphi5/PgSSHDatabaseD5.dpk b/Source/TPSQLSSHDatabase/SRC/Delphi5/PgSSHDatabaseD5.dpk
similarity index 94%
rename from TPSQLSSHDatabase/SRC/Delphi5/PgSSHDatabaseD5.dpk
rename to Source/TPSQLSSHDatabase/SRC/Delphi5/PgSSHDatabaseD5.dpk
index 00a4182..eb576f6 100644
--- a/TPSQLSSHDatabase/SRC/Delphi5/PgSSHDatabaseD5.dpk
+++ b/Source/TPSQLSSHDatabase/SRC/Delphi5/PgSSHDatabaseD5.dpk
@@ -1,37 +1,37 @@
-package PgSSHDatabaseD5;
-
-{$R *.RES}
-{$ALIGN ON}
-{$ASSERTIONS ON}
-{$BOOLEVAL OFF}
-{$DEBUGINFO ON}
-{$EXTENDEDSYNTAX ON}
-{$IMPORTEDDATA ON}
-{$IOCHECKS ON}
-{$LOCALSYMBOLS ON}
-{$LONGSTRINGS ON}
-{$OPENSTRINGS ON}
-{$OPTIMIZATION ON}
-{$OVERFLOWCHECKS OFF}
-{$RANGECHECKS OFF}
-{$REFERENCEINFO ON}
-{$SAFEDIVIDE OFF}
-{$STACKFRAMES OFF}
-{$TYPEDADDRESS OFF}
-{$VARSTRINGCHECKS ON}
-{$WRITEABLECONST ON}
-{$MINENUMSIZE 1}
-{$IMAGEBASE $400000}
-{$IMPLICITBUILD OFF}
-
-requires
- vcl50,
- Vcldb50,
- Vclbde50,
- PostgresDAC5,
- wodSSHTunnel;
-
-contains
- PgSSHDatabase in '..\PgSSHDatabase.pas';
-
-end.
+package PgSSHDatabaseD5;
+
+{$R *.RES}
+{$ALIGN ON}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST ON}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$IMPLICITBUILD OFF}
+
+requires
+ vcl50,
+ Vcldb50,
+ Vclbde50,
+ PostgresDAC5,
+ wodSSHTunnel;
+
+contains
+ PgSSHDatabase in '..\PgSSHDatabase.pas';
+
+end.
diff --git a/TPSQLSSHDatabase/SRC/Delphi5/PgSSHDatabaseD5.res b/Source/TPSQLSSHDatabase/SRC/Delphi5/PgSSHDatabaseD5.res
similarity index 100%
rename from TPSQLSSHDatabase/SRC/Delphi5/PgSSHDatabaseD5.res
rename to Source/TPSQLSSHDatabase/SRC/Delphi5/PgSSHDatabaseD5.res
diff --git a/TPSQLSSHDatabase/SRC/Delphi6/PgSSHDatabaseD6.dpk b/Source/TPSQLSSHDatabase/SRC/Delphi6/PgSSHDatabaseD6.dpk
similarity index 93%
rename from TPSQLSSHDatabase/SRC/Delphi6/PgSSHDatabaseD6.dpk
rename to Source/TPSQLSSHDatabase/SRC/Delphi6/PgSSHDatabaseD6.dpk
index bc654a4..8e5653c 100644
--- a/TPSQLSSHDatabase/SRC/Delphi6/PgSSHDatabaseD6.dpk
+++ b/Source/TPSQLSSHDatabase/SRC/Delphi6/PgSSHDatabaseD6.dpk
@@ -1,39 +1,39 @@
-package PgSSHDatabaseD6;
-
-{$R *.res}
-{$ALIGN 8}
-{$ASSERTIONS ON}
-{$BOOLEVAL OFF}
-{$DEBUGINFO ON}
-{$EXTENDEDSYNTAX ON}
-{$IMPORTEDDATA ON}
-{$IOCHECKS ON}
-{$LOCALSYMBOLS ON}
-{$LONGSTRINGS ON}
-{$OPENSTRINGS ON}
-{$OPTIMIZATION ON}
-{$OVERFLOWCHECKS OFF}
-{$RANGECHECKS OFF}
-{$REFERENCEINFO ON}
-{$SAFEDIVIDE OFF}
-{$STACKFRAMES OFF}
-{$TYPEDADDRESS OFF}
-{$VARSTRINGCHECKS ON}
-{$WRITEABLECONST OFF}
-{$MINENUMSIZE 1}
-{$IMAGEBASE $400000}
-{$IMPLICITBUILD OFF}
-
-requires
- rtl,
- vcl,
- dbrtl,
- vcldb,
- bdertl,
- PostgresDAC6,
- wodSSHTunnel;
-
-contains
- PgSSHDatabase in '..\PgSSHDatabase.pas';
-
-end.
+package PgSSHDatabaseD6;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ vcldb,
+ bdertl,
+ PostgresDAC6,
+ wodSSHTunnel;
+
+contains
+ PgSSHDatabase in '..\PgSSHDatabase.pas';
+
+end.
diff --git a/TPSQLSSHDatabase/SRC/Delphi6/PgSSHDatabaseD6.res b/Source/TPSQLSSHDatabase/SRC/Delphi6/PgSSHDatabaseD6.res
similarity index 100%
rename from TPSQLSSHDatabase/SRC/Delphi6/PgSSHDatabaseD6.res
rename to Source/TPSQLSSHDatabase/SRC/Delphi6/PgSSHDatabaseD6.res
diff --git a/TPSQLSSHDatabase/SRC/Delphi7/PgSSHDatabaseD7.dpk b/Source/TPSQLSSHDatabase/SRC/Delphi7/PgSSHDatabaseD7.dpk
similarity index 93%
rename from TPSQLSSHDatabase/SRC/Delphi7/PgSSHDatabaseD7.dpk
rename to Source/TPSQLSSHDatabase/SRC/Delphi7/PgSSHDatabaseD7.dpk
index 12eb388..4cc3a28 100644
--- a/TPSQLSSHDatabase/SRC/Delphi7/PgSSHDatabaseD7.dpk
+++ b/Source/TPSQLSSHDatabase/SRC/Delphi7/PgSSHDatabaseD7.dpk
@@ -1,39 +1,39 @@
-package PgSSHDatabaseD7;
-
-{$R *.res}
-{$ALIGN 8}
-{$ASSERTIONS ON}
-{$BOOLEVAL OFF}
-{$DEBUGINFO ON}
-{$EXTENDEDSYNTAX ON}
-{$IMPORTEDDATA ON}
-{$IOCHECKS ON}
-{$LOCALSYMBOLS ON}
-{$LONGSTRINGS ON}
-{$OPENSTRINGS ON}
-{$OPTIMIZATION ON}
-{$OVERFLOWCHECKS OFF}
-{$RANGECHECKS OFF}
-{$REFERENCEINFO ON}
-{$SAFEDIVIDE OFF}
-{$STACKFRAMES OFF}
-{$TYPEDADDRESS OFF}
-{$VARSTRINGCHECKS ON}
-{$WRITEABLECONST OFF}
-{$MINENUMSIZE 1}
-{$IMAGEBASE $400000}
-{$IMPLICITBUILD OFF}
-
-requires
- vcl,
- rtl,
- dbrtl,
- bdertl,
- vcldb,
- PostgresDAC7,
- wodSSHTunnel;
-
-contains
- PgSSHDatabase in '..\PgSSHDatabase.pas';
-
-end.
+package PgSSHDatabaseD7;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$IMPLICITBUILD OFF}
+
+requires
+ vcl,
+ rtl,
+ dbrtl,
+ bdertl,
+ vcldb,
+ PostgresDAC7,
+ wodSSHTunnel;
+
+contains
+ PgSSHDatabase in '..\PgSSHDatabase.pas';
+
+end.
diff --git a/TPSQLSSHDatabase/SRC/Delphi7/PgSSHDatabaseD7.res b/Source/TPSQLSSHDatabase/SRC/Delphi7/PgSSHDatabaseD7.res
similarity index 100%
rename from TPSQLSSHDatabase/SRC/Delphi7/PgSSHDatabaseD7.res
rename to Source/TPSQLSSHDatabase/SRC/Delphi7/PgSSHDatabaseD7.res
diff --git a/TPSQLSSHDatabase/SRC/Delphi9/PgSSHDatabaseD9.dpk b/Source/TPSQLSSHDatabase/SRC/Delphi9/PgSSHDatabaseD9.dpk
similarity index 93%
rename from TPSQLSSHDatabase/SRC/Delphi9/PgSSHDatabaseD9.dpk
rename to Source/TPSQLSSHDatabase/SRC/Delphi9/PgSSHDatabaseD9.dpk
index 6f79dd0..9d7813d 100644
--- a/TPSQLSSHDatabase/SRC/Delphi9/PgSSHDatabaseD9.dpk
+++ b/Source/TPSQLSSHDatabase/SRC/Delphi9/PgSSHDatabaseD9.dpk
@@ -1,39 +1,39 @@
-package PgSSHDatabaseD9;
-
-{$R *.res}
-{$ALIGN 8}
-{$ASSERTIONS ON}
-{$BOOLEVAL OFF}
-{$DEBUGINFO ON}
-{$EXTENDEDSYNTAX ON}
-{$IMPORTEDDATA ON}
-{$IOCHECKS ON}
-{$LOCALSYMBOLS ON}
-{$LONGSTRINGS ON}
-{$OPENSTRINGS ON}
-{$OPTIMIZATION ON}
-{$OVERFLOWCHECKS OFF}
-{$RANGECHECKS OFF}
-{$REFERENCEINFO ON}
-{$SAFEDIVIDE OFF}
-{$STACKFRAMES OFF}
-{$TYPEDADDRESS OFF}
-{$VARSTRINGCHECKS ON}
-{$WRITEABLECONST OFF}
-{$MINENUMSIZE 1}
-{$IMAGEBASE $400000}
-{$IMPLICITBUILD OFF}
-
-requires
- rtl,
- vcl,
- dbrtl,
- vcldb,
- bdertl,
- PostgresDAC9,
- wodSSHTunnel;
-
-contains
- PgSSHDatabase in '..\PgSSHDatabase.pas';
-
-end.
+package PgSSHDatabaseD9;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ vcldb,
+ bdertl,
+ PostgresDAC9,
+ wodSSHTunnel;
+
+contains
+ PgSSHDatabase in '..\PgSSHDatabase.pas';
+
+end.
diff --git a/TPSQLSSHDatabase/SRC/Delphi9/PgSSHDatabaseD9.res b/Source/TPSQLSSHDatabase/SRC/Delphi9/PgSSHDatabaseD9.res
similarity index 100%
rename from TPSQLSSHDatabase/SRC/Delphi9/PgSSHDatabaseD9.res
rename to Source/TPSQLSSHDatabase/SRC/Delphi9/PgSSHDatabaseD9.res
diff --git a/TPSQLSSHDatabase/SRC/PgSSHDatabase.pas b/Source/TPSQLSSHDatabase/SRC/PgSSHDatabase.pas
similarity index 96%
rename from TPSQLSSHDatabase/SRC/PgSSHDatabase.pas
rename to Source/TPSQLSSHDatabase/SRC/PgSSHDatabase.pas
index fdac5f8..0d57e45 100644
--- a/TPSQLSSHDatabase/SRC/PgSSHDatabase.pas
+++ b/Source/TPSQLSSHDatabase/SRC/PgSSHDatabase.pas
@@ -1,435 +1,435 @@
-{$I PSQLDAC.inc}
-unit PgSSHDatabase;
-
-// One should uncomment only one directive
-{$DEFINE USE_SSH_PLINK} // this allows to connect via plink.exe
-{ .$DEFINE USE_SSH_WEONLYDO } // this allows to connect via WeOnlyDo
-
-interface
-
-uses
- Classes, Windows, SysUtils,
- {$IFDEF USE_SSH_WEONLYDO}wodSSHTunnelLib_TLB, {$ENDIF}
- PSQLDbTables, PSQLTypes;
-
-type
- ESSHConnectError = class(Exception);
-
- TPgSSHDatabase = class(TPSQLDatabase)
- private
- FSSHEnabled: boolean;
- FInitPort: Cardinal;
- FInitHost: string;
- FSSHPort: integer;
- FSSHHost: string;
- FSSHLogin: string;
- FSSHPassword: string;
- FOnTunnelConnected: TNotifyEvent;
-{$IFDEF USE_SSH_WEONLYDO}
- FTunnel: TwodTunnel;
- FIsSSHConnecting: boolean;
- FLastSSHError: string;
- FOnTunnelDisconnected: TwodTunnelDisconnected;
- FOnTunnelChannelStart: TwodTunnelChannelStart;
- FOnTunnelChannelStop: TwodTunnelChannelStop;
- FOnTunnelCryptoInformation: TwodTunnelCryptoInformation;
- FOnTunnelUserConnected: TwodTunnelUserConnected;
- FOnTunnelUserDisconnected: TwodTunnelUserDisconnected;
-{$ELSE} // USE_SSH_PLINK defined
- FPLinkPath: String;
- FPlinkProcInfo: TProcessInformation;
-{$ENDIF}
- FSSHUseCompression: boolean;
- FSSHCompressionLevel: integer;
- FSSHTimeout: integer;
- FInitialLocalPort: integer;
- FShowPLinkConsole: boolean;
- FAddSSHKeyToSystemCache: boolean;
-{$IFDEF USE_SSH_WEONLYDO}
- procedure DoOnTunnelUserConnecting(Sender: TObject; const Chan: IChannel; const Hostname: WideString; Port: integer;
- var Allow: WordBool);
- procedure DoOnTunnelDisconnected(Sender: TObject; ErrorCode: Smallint; const ErrorText: WideString);
- procedure DoOnTunnelConnected(Sender: TObject);
- procedure DoOnTunnelChannelStop(Sender: TObject; const Chan: IChannel; ErrorCode: Smallint;
- const ErrorText: WideString);
- procedure DoOnTunnelChannelStart(Sender: TObject; const Chan: IChannel);
- procedure DoOnTunnelUserDisconnected(ASender: TObject; const Chan: IChannel; const User: IUser; ErrorCode: Smallint;
- const ErrorText: WideString);
- function CreateSSHTunnel: TwodTunnel;
-{$ELSE} // USE_SSH_PLINK defined
- procedure ShutdownPlink;
-{$IFEND}
- procedure RemoveSSHConnection;
- procedure SetInitialLocalPort(const Value: integer);
- protected
- procedure DoConnect; override;
- procedure SetConnected(Value: boolean); override;
- public
- constructor Create(AOwner: TComponent); override;
- destructor Destroy; override;
-
- published
-{$IFDEF USE_SSH_PLINK}
- property AddSSHKeyToSystemCache: boolean read FAddSSHKeyToSystemCache write FAddSSHKeyToSystemCache;
- property PathPLinkExe: String read FPLinkPath write FPLinkPath;
- property ShowPLinkConsole: boolean read FShowPLinkConsole write FShowPLinkConsole default False;
-{$ENDIF}
- property SSHEnabled: boolean read FSSHEnabled write FSSHEnabled default False;
- property SSHHost: string read FSSHHost write FSSHHost;
- property SSHLogin: string read FSSHLogin write FSSHLogin;
- property SSHPassword: string read FSSHPassword write FSSHPassword;
- property SSHPort: integer read FSSHPort write FSSHPort default 22;
- property SSHTimeout: integer read FSSHTimeout write FSSHTimeout;
- property SSHUseCompression: boolean read FSSHUseCompression write FSSHUseCompression;
- property SSHCompressionLevel: integer read FSSHCompressionLevel write FSSHCompressionLevel;
- property InitialLocalPort: integer read FInitialLocalPort write SetInitialLocalPort default 3380;
- property OnTunnelConnected: TNotifyEvent read FOnTunnelConnected write FOnTunnelConnected;
-{$IFDEF USE_SSH_WEONLYDO}
- property OnTunnelDisconnected: TwodTunnelDisconnected read FOnTunnelDisconnected write FOnTunnelDisconnected;
- property OnTunnelChannelStart: TwodTunnelChannelStart read FOnTunnelChannelStart write FOnTunnelChannelStart;
- property OnTunnelChannelStop: TwodTunnelChannelStop read FOnTunnelChannelStop write FOnTunnelChannelStop;
- property OnTunnelUserConnected: TwodTunnelUserConnected read FOnTunnelUserConnected write FOnTunnelUserConnected;
- property OnTunnelUserDisconnected: TwodTunnelUserDisconnected read FOnTunnelUserDisconnected
- write FOnTunnelUserDisconnected;
- property OnTunnelCryptoInformation: TwodTunnelCryptoInformation read FOnTunnelCryptoInformation
- write FOnTunnelCryptoInformation;
-{$ENDIF}
- end;
-
- procedure Register;
-
-implementation
-
-uses ShellAPI;
-
-{$R SSHDB.DCR}
-
-{$IFDEF USE_SSH_WEONLYDO}
-var
- TunnelList: TList;
- InitLocalPort: integer;
-{$ENDIF}
-
-procedure Register;
-begin
- RegisterComponents('PostgresDAC',[TPgSSHDatabase] );
-end;
-
-{ TPgSSHDatabase }
-
-constructor TPgSSHDatabase.Create(AOwner: TComponent);
-begin
- inherited;
-{$IFDEF USE_SSH_WEONLYDO}
- FTunnel := nil;
-{$ENDIF}
- FSSHEnabled := False;
- FSSHTimeout := 120;
- FSSHUseCompression := False;
- FSSHCompressionLevel := 6;
- FSSHPort := 22;
- FInitialLocalPort := 3380;
- CheckIfActiveOnParamChange := False;
- PathPLinkExe := 'plink' {$IFDEF MSWINDOWS} + '.exe' {$ENDIF};
-end;
-
-destructor TPgSSHDatabase.Destroy;
-begin
- RemoveSSHConnection();
- inherited;
-end;
-
-{$IFDEF USE_SSH_WEONLYDO}
-procedure TPgSSHDatabase.RemoveSSHConnection;
-begin
- if Assigned(FTunnel) then
- begin
- FTunnel.Tag := FTunnel.Tag - 1;
- if FTunnel.Tag = 0 then
- begin
- TunnelList.Remove(FTunnel);
- FTunnel.Channels.StopAll();
- FTunnel.Channels.RemoveAll();
- Dec(InitLocalPort);
- FTunnel.Disconnect();
- FTunnel.Free();
- FTunnel := nil;
- end;
- end;
-end;
-{$ELSE}
-procedure TPgSSHDatabase.RemoveSSHConnection;
-begin
- ShutdownPlink;
-end;
-{$ENDIF}
-
-{$IFDEF USE_SSH_WEONLYDO}
-function TPgSSHDatabase.CreateSSHTunnel: TwodTunnel;
-var
- AErrorMsg: string;
-begin
- Result := TwodTunnel.Create(nil);
- Result.Encryption := encAny;
- Result.Authentication := authPassword;
- Result.Protocol := SSHAuto;
- Result.OnConnected := DoOnTunnelConnected;
- Result.OnDisconnected := DoOnTunnelDisconnected;
- Result.OnUserConnecting := DoOnTunnelUserConnecting;
- Result.OnChannelStop := DoOnTunnelChannelStop;
- Result.OnChannelStart := DoOnTunnelChannelStart;
- Result.OnCryptoInformation := FOnTunnelCryptoInformation;
- Result.OnUserConnected := FOnTunnelUserConnected;
- Result.OnUserDisconnected := DoOnTunnelUserDisconnected;
- Result.Hostname := FSSHHost;
- Result.Port := FSSHPort;
- Result.Login := FSSHLogin;
- Result.Password := FSSHPassword;
- Result.Timeout := FSSHTimeout;
- if FSSHUseCompression then
- Result.Compression := FSSHCompressionLevel
- else
- Result.Compression := 0;
- Result.Threads := True;
- Inc(InitLocalPort);
- Result.Channels.Add(LocalListen, '0.0.0.0', InitLocalPort, Host, FInitPort);
- FLastSSHError := EmptyStr;
- FIsSSHConnecting := True;
- Result.Connect();
- while FIsSSHConnecting do
- Application.ProcessMessages();
- if not((Result.State = wodSSHTunnelLib_TLB.Connected) and (Result.Channels.Count > 0) and Result.Channels[0].Activated)
- then
- begin
- TunnelList.Remove(Result);
- Result.Free();
- AErrorMsg := 'SSH Connection Failed';
- if FLastSSHError <> EmptyStr then
- AErrorMsg := Format('%s with Error: %s', [AErrorMsg, FLastSSHError]);
- raise ESSHConnectError.Create(AErrorMsg);
- end;
-end;
-
-procedure TPgSSHDatabase.DoConnect;
-var
- i: integer;
- ATunnel: TwodTunnel;
-begin
- FInitPort := Port;
- FInitHost := Host;
- try
- if FSSHEnabled then
- begin
- ATunnel := nil;
- for i := 0 to TunnelList.Count - 1 do
- begin
- ATunnel := TwodTunnel(TunnelList[i]);
- if (ATunnel.Hostname = FSSHHost) and (ATunnel.Port = SSHPort) and (ATunnel.Password = SSHPassword) and
- (ATunnel.Login = SSHLogin) and (ATunnel.Channels.Count > 0) and
- (ATunnel.Channels[0].RemotePort = integer(Port)) then
- Break
- else
- ATunnel := nil;
- end;
- if ATunnel = nil then
- ATunnel := CreateSSHTunnel();
- if ATunnel = nil then
- raise ESSHConnectError.Create('SSH Connection Failed');
- ATunnel.Tag := ATunnel.Tag + 1;
- FTunnel := ATunnel;
- Host := 'localhost';
- Port := ATunnel.Channels[0].LocalPort;
- end;
- inherited DoConnect();
- finally
- Port := FInitPort;
- Host := FInitHost;
- end;
-end;
-{$ELSE}
-procedure TPgSSHDatabase.DoConnect;
-var
- ConnectStr: String;
- StartupInfo: TStartupInfo;
- ExCode: LongWord;
- StartFlags: cardinal;
-
- procedure StartTunnelAndAcceptKey;
- var ShExecInfo: TShellExecuteInfo;
- begin
- FillChar(ShExecInfo, SizeOf(ShExecInfo), 0);
- ShExecInfo.cbSize := SizeOf(TShellExecuteInfo);
- ShExecInfo.fMask := SEE_MASK_NOCLOSEPROCESS;
- ShExecInfo.Wnd := 0;
- ShExecInfo.lpVerb := nil;
- ShExecInfo.lpFile := 'cmd.exe';
- ShExecInfo.lpParameters := PChar(Format('/c echo y | %s -t exit', [ConnectStr]));
- ShExecInfo.lpDirectory := nil;
- ShExecInfo.nShow := SW_HIDE;
- ShExecInfo.hInstApp := 0;
- ShellExecuteEx(@ShExecInfo);
- WaitForSingleObject(ShExecInfo.hProcess, INFINITE);
- end;
-
-begin
- FInitPort := Port;
- FInitHost := Host;
- StartFlags := CREATE_DEFAULT_ERROR_MODE + NORMAL_PRIORITY_CLASS;
- if not FShowPLinkConsole then
- StartFlags := StartFlags + CREATE_NO_WINDOW;
- try
- if FSSHEnabled then
- begin
- if not FileExists(FPLinkPath) then
- raise ESSHConnectError.Create('Please specify path to PLink.exe!');
- ConnectStr := AnsiQuotedStr(FPLinkPath, '"') + ' -ssh -batch ';
- if SSHLogin <> '' then
- ConnectStr := ConnectStr + SSHLogin + '@';
- if SSHHost <> '' then
- ConnectStr := ConnectStr + SSHHost
- else
- ConnectStr := ConnectStr + Host;
- if SSHPassword <> '' then
- ConnectStr := ConnectStr + ' -pw ' + AnsiQuotedStr(SSHPassword, '"');
- if SSHPort > 0 then
- ConnectStr := ConnectStr + Format(' -P %u', [SSHPort]);
- if FAddSSHKeyToSystemCache then
- StartTunnelAndAcceptKey();
- ConnectStr := ConnectStr + Format(' -v -T -N -L %u:%s:%u', [InitialLocalPort, Host, Port]);
- FillChar(FPlinkProcInfo, SizeOf(TProcessInformation), 0);
- FillChar(StartupInfo, SizeOf(TStartupInfo), 0);
- StartupInfo.cb := SizeOf(TStartupInfo);
- if CreateProcess(nil, PChar(ConnectStr), nil, nil, False, StartFlags, nil, nil, StartupInfo, FPlinkProcInfo) then
- begin
- WaitForSingleObject(FPlinkProcInfo.hProcess, SSHTimeout);
- GetExitCodeProcess(FPlinkProcInfo.hProcess, ExCode);
- if ExCode <> STILL_ACTIVE then
- raise ESSHConnectError.CreateFmt('Failed to connect. Check the settings for PLink. Exit code: %d', [ExCode]);
- end
- else
- begin
- ShutdownPlink;
- RaiseLastOSError();
- end;
- if Assigned(FOnTunnelConnected) then
- FOnTunnelConnected(Self);
- Host := 'localhost';
- Port := InitialLocalPort;
- end;
- try
- inherited DoConnect();
- except
- ShutdownPlink;
- raise;
- end;
- finally
- Port := FInitPort;
- Host := FInitHost;
- end;
-end;
-{$ENDIF}
-
-procedure TPgSSHDatabase.SetConnected(Value: Boolean);
-begin
- inherited;
- if (not (csDestroying in ComponentState)) and (not Value) then
- RemoveSSHConnection();
-end;
-
-{$IFDEF USE_SSH_WEONLYDO}
-procedure TPgSSHDatabase.DoOnTunnelUserConnecting(Sender: TObject; const Chan: IChannel; const Hostname: WideString;
- Port: integer; var Allow: WordBool);
-begin
- Allow := True;
-end;
-
-procedure TPgSSHDatabase.DoOnTunnelConnected(Sender: TObject);
-begin
- try
- TwodTunnel(Sender).Channels.StartAll();
- except
- FIsSSHConnecting := False;
- Exit;
- end;
-
- if Assigned(FOnTunnelConnected) then
- FOnTunnelConnected(Sender);
-end;
-
-procedure TPgSSHDatabase.DoOnTunnelDisconnected(Sender: TObject; ErrorCode: Smallint; const ErrorText: WideString);
-begin
- FIsSSHConnecting := False;
-
- if ErrorText <> '' then
- FLastSSHError := ErrorText
- else
- FLastSSHError := 'Connection broke unexpectedly';
-
- if Assigned(FOnTunnelDisconnected) then
- FOnTunnelDisconnected(Sender, ErrorCode, ErrorText);
-end;
-
-procedure TPgSSHDatabase.DoOnTunnelChannelStart(Sender: TObject; const Chan: IChannel);
-begin
- FIsSSHConnecting := False;
-end;
-
-procedure TPgSSHDatabase.DoOnTunnelChannelStop(Sender: TObject; const Chan: IChannel; ErrorCode: Smallint;
- const ErrorText: WideString);
-begin
- FIsSSHConnecting := False;
-
- if ErrorText <> '' then
- FLastSSHError := ErrorText
- else
- FLastSSHError := 'Channel stopped unexpectedly';
-end;
-
-procedure TPgSSHDatabase.DoOnTunnelUserDisconnected(ASender: TObject; const Chan: IChannel; const User: IUser;
- ErrorCode: Smallint; const ErrorText: WideString);
-begin
- if ErrorText <> '' then
- FLastSSHError := ErrorText
- else
- FLastSSHError := 'User disconnected unexpectedly';
- if Assigned(FOnTunnelUserDisconnected) then
- FOnTunnelUserDisconnected(ASender, Chan, User, ErrorCode, ErrorText);
-end;
-
-{$ELSE}
-
-procedure TPgSSHDatabase.ShutdownPlink;
-begin
- if FPlinkProcInfo.hProcess > 0 then
- begin
- TerminateProcess(FPlinkProcInfo.hProcess, 0);
- CloseHandle(FPlinkProcInfo.hProcess);
- ZeroMemory(@FPlinkProcInfo, SizeOf(FPlinkProcInfo));
- end;
-end;
-
-{$ENDIF}
-
-procedure TPgSSHDatabase.SetInitialLocalPort(const Value: integer);
-begin
- FInitialLocalPort := Value;
-{$IFDEF USE_SSH_WEONLYDO}
- if InitLocalPort = 3380 then
- InitLocalPort := Value;
-{$ENDIF}
-end;
-
-{$IFDEF USE_SSH_WEONLYDO}
-
-initialization
-
- TunnelList := TList.Create();
- InitLocalPort := 3380;
-
-finalization
-
- TunnelList.Free();
-
-{$ENDIF}
-
-end.
+{$I PSQLDAC.inc}
+unit PgSSHDatabase;
+
+// One should uncomment only one directive
+{$DEFINE USE_SSH_PLINK} // this allows to connect via plink.exe
+{ .$DEFINE USE_SSH_WEONLYDO } // this allows to connect via WeOnlyDo
+
+interface
+
+uses
+ Classes, Windows, SysUtils,
+ {$IFDEF USE_SSH_WEONLYDO}wodSSHTunnelLib_TLB, {$ENDIF}
+ PSQLDbTables, PSQLTypes;
+
+type
+ ESSHConnectError = class(Exception);
+
+ TPgSSHDatabase = class(TPSQLDatabase)
+ private
+ FSSHEnabled: boolean;
+ FInitPort: Cardinal;
+ FInitHost: string;
+ FSSHPort: integer;
+ FSSHHost: string;
+ FSSHLogin: string;
+ FSSHPassword: string;
+ FOnTunnelConnected: TNotifyEvent;
+{$IFDEF USE_SSH_WEONLYDO}
+ FTunnel: TwodTunnel;
+ FIsSSHConnecting: boolean;
+ FLastSSHError: string;
+ FOnTunnelDisconnected: TwodTunnelDisconnected;
+ FOnTunnelChannelStart: TwodTunnelChannelStart;
+ FOnTunnelChannelStop: TwodTunnelChannelStop;
+ FOnTunnelCryptoInformation: TwodTunnelCryptoInformation;
+ FOnTunnelUserConnected: TwodTunnelUserConnected;
+ FOnTunnelUserDisconnected: TwodTunnelUserDisconnected;
+{$ELSE} // USE_SSH_PLINK defined
+ FPLinkPath: String;
+ FPlinkProcInfo: TProcessInformation;
+{$ENDIF}
+ FSSHUseCompression: boolean;
+ FSSHCompressionLevel: integer;
+ FSSHTimeout: integer;
+ FInitialLocalPort: integer;
+ FShowPLinkConsole: boolean;
+ FAddSSHKeyToSystemCache: boolean;
+{$IFDEF USE_SSH_WEONLYDO}
+ procedure DoOnTunnelUserConnecting(Sender: TObject; const Chan: IChannel; const Hostname: WideString; Port: integer;
+ var Allow: WordBool);
+ procedure DoOnTunnelDisconnected(Sender: TObject; ErrorCode: Smallint; const ErrorText: WideString);
+ procedure DoOnTunnelConnected(Sender: TObject);
+ procedure DoOnTunnelChannelStop(Sender: TObject; const Chan: IChannel; ErrorCode: Smallint;
+ const ErrorText: WideString);
+ procedure DoOnTunnelChannelStart(Sender: TObject; const Chan: IChannel);
+ procedure DoOnTunnelUserDisconnected(ASender: TObject; const Chan: IChannel; const User: IUser; ErrorCode: Smallint;
+ const ErrorText: WideString);
+ function CreateSSHTunnel: TwodTunnel;
+{$ELSE} // USE_SSH_PLINK defined
+ procedure ShutdownPlink;
+{$IFEND}
+ procedure RemoveSSHConnection;
+ procedure SetInitialLocalPort(const Value: integer);
+ protected
+ procedure DoConnect; override;
+ procedure SetConnected(Value: boolean); override;
+ public
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+
+ published
+{$IFDEF USE_SSH_PLINK}
+ property AddSSHKeyToSystemCache: boolean read FAddSSHKeyToSystemCache write FAddSSHKeyToSystemCache;
+ property PathPLinkExe: String read FPLinkPath write FPLinkPath;
+ property ShowPLinkConsole: boolean read FShowPLinkConsole write FShowPLinkConsole default False;
+{$ENDIF}
+ property SSHEnabled: boolean read FSSHEnabled write FSSHEnabled default False;
+ property SSHHost: string read FSSHHost write FSSHHost;
+ property SSHLogin: string read FSSHLogin write FSSHLogin;
+ property SSHPassword: string read FSSHPassword write FSSHPassword;
+ property SSHPort: integer read FSSHPort write FSSHPort default 22;
+ property SSHTimeout: integer read FSSHTimeout write FSSHTimeout;
+ property SSHUseCompression: boolean read FSSHUseCompression write FSSHUseCompression;
+ property SSHCompressionLevel: integer read FSSHCompressionLevel write FSSHCompressionLevel;
+ property InitialLocalPort: integer read FInitialLocalPort write SetInitialLocalPort default 3380;
+ property OnTunnelConnected: TNotifyEvent read FOnTunnelConnected write FOnTunnelConnected;
+{$IFDEF USE_SSH_WEONLYDO}
+ property OnTunnelDisconnected: TwodTunnelDisconnected read FOnTunnelDisconnected write FOnTunnelDisconnected;
+ property OnTunnelChannelStart: TwodTunnelChannelStart read FOnTunnelChannelStart write FOnTunnelChannelStart;
+ property OnTunnelChannelStop: TwodTunnelChannelStop read FOnTunnelChannelStop write FOnTunnelChannelStop;
+ property OnTunnelUserConnected: TwodTunnelUserConnected read FOnTunnelUserConnected write FOnTunnelUserConnected;
+ property OnTunnelUserDisconnected: TwodTunnelUserDisconnected read FOnTunnelUserDisconnected
+ write FOnTunnelUserDisconnected;
+ property OnTunnelCryptoInformation: TwodTunnelCryptoInformation read FOnTunnelCryptoInformation
+ write FOnTunnelCryptoInformation;
+{$ENDIF}
+ end;
+
+ procedure Register;
+
+implementation
+
+uses ShellAPI;
+
+{$R SSHDB.DCR}
+
+{$IFDEF USE_SSH_WEONLYDO}
+var
+ TunnelList: TList;
+ InitLocalPort: integer;
+{$ENDIF}
+
+procedure Register;
+begin
+ RegisterComponents('PostgresDAC',[TPgSSHDatabase] );
+end;
+
+{ TPgSSHDatabase }
+
+constructor TPgSSHDatabase.Create(AOwner: TComponent);
+begin
+ inherited;
+{$IFDEF USE_SSH_WEONLYDO}
+ FTunnel := nil;
+{$ENDIF}
+ FSSHEnabled := False;
+ FSSHTimeout := 120;
+ FSSHUseCompression := False;
+ FSSHCompressionLevel := 6;
+ FSSHPort := 22;
+ FInitialLocalPort := 3380;
+ CheckIfActiveOnParamChange := False;
+ PathPLinkExe := 'plink' {$IFDEF MSWINDOWS} + '.exe' {$ENDIF};
+end;
+
+destructor TPgSSHDatabase.Destroy;
+begin
+ RemoveSSHConnection();
+ inherited;
+end;
+
+{$IFDEF USE_SSH_WEONLYDO}
+procedure TPgSSHDatabase.RemoveSSHConnection;
+begin
+ if Assigned(FTunnel) then
+ begin
+ FTunnel.Tag := FTunnel.Tag - 1;
+ if FTunnel.Tag = 0 then
+ begin
+ TunnelList.Remove(FTunnel);
+ FTunnel.Channels.StopAll();
+ FTunnel.Channels.RemoveAll();
+ Dec(InitLocalPort);
+ FTunnel.Disconnect();
+ FTunnel.Free();
+ FTunnel := nil;
+ end;
+ end;
+end;
+{$ELSE}
+procedure TPgSSHDatabase.RemoveSSHConnection;
+begin
+ ShutdownPlink;
+end;
+{$ENDIF}
+
+{$IFDEF USE_SSH_WEONLYDO}
+function TPgSSHDatabase.CreateSSHTunnel: TwodTunnel;
+var
+ AErrorMsg: string;
+begin
+ Result := TwodTunnel.Create(nil);
+ Result.Encryption := encAny;
+ Result.Authentication := authPassword;
+ Result.Protocol := SSHAuto;
+ Result.OnConnected := DoOnTunnelConnected;
+ Result.OnDisconnected := DoOnTunnelDisconnected;
+ Result.OnUserConnecting := DoOnTunnelUserConnecting;
+ Result.OnChannelStop := DoOnTunnelChannelStop;
+ Result.OnChannelStart := DoOnTunnelChannelStart;
+ Result.OnCryptoInformation := FOnTunnelCryptoInformation;
+ Result.OnUserConnected := FOnTunnelUserConnected;
+ Result.OnUserDisconnected := DoOnTunnelUserDisconnected;
+ Result.Hostname := FSSHHost;
+ Result.Port := FSSHPort;
+ Result.Login := FSSHLogin;
+ Result.Password := FSSHPassword;
+ Result.Timeout := FSSHTimeout;
+ if FSSHUseCompression then
+ Result.Compression := FSSHCompressionLevel
+ else
+ Result.Compression := 0;
+ Result.Threads := True;
+ Inc(InitLocalPort);
+ Result.Channels.Add(LocalListen, '0.0.0.0', InitLocalPort, Host, FInitPort);
+ FLastSSHError := EmptyStr;
+ FIsSSHConnecting := True;
+ Result.Connect();
+ while FIsSSHConnecting do
+ Application.ProcessMessages();
+ if not((Result.State = wodSSHTunnelLib_TLB.Connected) and (Result.Channels.Count > 0) and Result.Channels[0].Activated)
+ then
+ begin
+ TunnelList.Remove(Result);
+ Result.Free();
+ AErrorMsg := 'SSH Connection Failed';
+ if FLastSSHError <> EmptyStr then
+ AErrorMsg := Format('%s with Error: %s', [AErrorMsg, FLastSSHError]);
+ raise ESSHConnectError.Create(AErrorMsg);
+ end;
+end;
+
+procedure TPgSSHDatabase.DoConnect;
+var
+ i: integer;
+ ATunnel: TwodTunnel;
+begin
+ FInitPort := Port;
+ FInitHost := Host;
+ try
+ if FSSHEnabled then
+ begin
+ ATunnel := nil;
+ for i := 0 to TunnelList.Count - 1 do
+ begin
+ ATunnel := TwodTunnel(TunnelList[i]);
+ if (ATunnel.Hostname = FSSHHost) and (ATunnel.Port = SSHPort) and (ATunnel.Password = SSHPassword) and
+ (ATunnel.Login = SSHLogin) and (ATunnel.Channels.Count > 0) and
+ (ATunnel.Channels[0].RemotePort = integer(Port)) then
+ Break
+ else
+ ATunnel := nil;
+ end;
+ if ATunnel = nil then
+ ATunnel := CreateSSHTunnel();
+ if ATunnel = nil then
+ raise ESSHConnectError.Create('SSH Connection Failed');
+ ATunnel.Tag := ATunnel.Tag + 1;
+ FTunnel := ATunnel;
+ Host := 'localhost';
+ Port := ATunnel.Channels[0].LocalPort;
+ end;
+ inherited DoConnect();
+ finally
+ Port := FInitPort;
+ Host := FInitHost;
+ end;
+end;
+{$ELSE}
+procedure TPgSSHDatabase.DoConnect;
+var
+ ConnectStr: String;
+ StartupInfo: TStartupInfo;
+ ExCode: LongWord;
+ StartFlags: cardinal;
+
+ procedure StartTunnelAndAcceptKey;
+ var ShExecInfo: TShellExecuteInfo;
+ begin
+ FillChar(ShExecInfo, SizeOf(ShExecInfo), 0);
+ ShExecInfo.cbSize := SizeOf(TShellExecuteInfo);
+ ShExecInfo.fMask := SEE_MASK_NOCLOSEPROCESS;
+ ShExecInfo.Wnd := 0;
+ ShExecInfo.lpVerb := nil;
+ ShExecInfo.lpFile := 'cmd.exe';
+ ShExecInfo.lpParameters := PChar(Format('/c echo y | %s -t exit', [ConnectStr]));
+ ShExecInfo.lpDirectory := nil;
+ ShExecInfo.nShow := SW_HIDE;
+ ShExecInfo.hInstApp := 0;
+ ShellExecuteEx(@ShExecInfo);
+ WaitForSingleObject(ShExecInfo.hProcess, INFINITE);
+ end;
+
+begin
+ FInitPort := Port;
+ FInitHost := Host;
+ StartFlags := CREATE_DEFAULT_ERROR_MODE + NORMAL_PRIORITY_CLASS;
+ if not FShowPLinkConsole then
+ StartFlags := StartFlags + CREATE_NO_WINDOW;
+ try
+ if FSSHEnabled then
+ begin
+ if not FileExists(FPLinkPath) then
+ raise ESSHConnectError.Create('Please specify path to PLink.exe!');
+ ConnectStr := AnsiQuotedStr(FPLinkPath, '"') + ' -ssh -batch ';
+ if SSHLogin <> '' then
+ ConnectStr := ConnectStr + SSHLogin + '@';
+ if SSHHost <> '' then
+ ConnectStr := ConnectStr + SSHHost
+ else
+ ConnectStr := ConnectStr + Host;
+ if SSHPassword <> '' then
+ ConnectStr := ConnectStr + ' -pw ' + AnsiQuotedStr(SSHPassword, '"');
+ if SSHPort > 0 then
+ ConnectStr := ConnectStr + Format(' -P %u', [SSHPort]);
+ if FAddSSHKeyToSystemCache then
+ StartTunnelAndAcceptKey();
+ ConnectStr := ConnectStr + Format(' -v -T -N -L %u:%s:%u', [InitialLocalPort, Host, Port]);
+ FillChar(FPlinkProcInfo, SizeOf(TProcessInformation), 0);
+ FillChar(StartupInfo, SizeOf(TStartupInfo), 0);
+ StartupInfo.cb := SizeOf(TStartupInfo);
+ if CreateProcess(nil, PChar(ConnectStr), nil, nil, False, StartFlags, nil, nil, StartupInfo, FPlinkProcInfo) then
+ begin
+ WaitForSingleObject(FPlinkProcInfo.hProcess, SSHTimeout);
+ GetExitCodeProcess(FPlinkProcInfo.hProcess, ExCode);
+ if ExCode <> STILL_ACTIVE then
+ raise ESSHConnectError.CreateFmt('Failed to connect. Check the settings for PLink. Exit code: %d', [ExCode]);
+ end
+ else
+ begin
+ ShutdownPlink;
+ RaiseLastOSError();
+ end;
+ if Assigned(FOnTunnelConnected) then
+ FOnTunnelConnected(Self);
+ Host := 'localhost';
+ Port := InitialLocalPort;
+ end;
+ try
+ inherited DoConnect();
+ except
+ ShutdownPlink;
+ raise;
+ end;
+ finally
+ Port := FInitPort;
+ Host := FInitHost;
+ end;
+end;
+{$ENDIF}
+
+procedure TPgSSHDatabase.SetConnected(Value: Boolean);
+begin
+ inherited;
+ if (not (csDestroying in ComponentState)) and (not Value) then
+ RemoveSSHConnection();
+end;
+
+{$IFDEF USE_SSH_WEONLYDO}
+procedure TPgSSHDatabase.DoOnTunnelUserConnecting(Sender: TObject; const Chan: IChannel; const Hostname: WideString;
+ Port: integer; var Allow: WordBool);
+begin
+ Allow := True;
+end;
+
+procedure TPgSSHDatabase.DoOnTunnelConnected(Sender: TObject);
+begin
+ try
+ TwodTunnel(Sender).Channels.StartAll();
+ except
+ FIsSSHConnecting := False;
+ Exit;
+ end;
+
+ if Assigned(FOnTunnelConnected) then
+ FOnTunnelConnected(Sender);
+end;
+
+procedure TPgSSHDatabase.DoOnTunnelDisconnected(Sender: TObject; ErrorCode: Smallint; const ErrorText: WideString);
+begin
+ FIsSSHConnecting := False;
+
+ if ErrorText <> '' then
+ FLastSSHError := ErrorText
+ else
+ FLastSSHError := 'Connection broke unexpectedly';
+
+ if Assigned(FOnTunnelDisconnected) then
+ FOnTunnelDisconnected(Sender, ErrorCode, ErrorText);
+end;
+
+procedure TPgSSHDatabase.DoOnTunnelChannelStart(Sender: TObject; const Chan: IChannel);
+begin
+ FIsSSHConnecting := False;
+end;
+
+procedure TPgSSHDatabase.DoOnTunnelChannelStop(Sender: TObject; const Chan: IChannel; ErrorCode: Smallint;
+ const ErrorText: WideString);
+begin
+ FIsSSHConnecting := False;
+
+ if ErrorText <> '' then
+ FLastSSHError := ErrorText
+ else
+ FLastSSHError := 'Channel stopped unexpectedly';
+end;
+
+procedure TPgSSHDatabase.DoOnTunnelUserDisconnected(ASender: TObject; const Chan: IChannel; const User: IUser;
+ ErrorCode: Smallint; const ErrorText: WideString);
+begin
+ if ErrorText <> '' then
+ FLastSSHError := ErrorText
+ else
+ FLastSSHError := 'User disconnected unexpectedly';
+ if Assigned(FOnTunnelUserDisconnected) then
+ FOnTunnelUserDisconnected(ASender, Chan, User, ErrorCode, ErrorText);
+end;
+
+{$ELSE}
+
+procedure TPgSSHDatabase.ShutdownPlink;
+begin
+ if FPlinkProcInfo.hProcess > 0 then
+ begin
+ TerminateProcess(FPlinkProcInfo.hProcess, 0);
+ CloseHandle(FPlinkProcInfo.hProcess);
+ ZeroMemory(@FPlinkProcInfo, SizeOf(FPlinkProcInfo));
+ end;
+end;
+
+{$ENDIF}
+
+procedure TPgSSHDatabase.SetInitialLocalPort(const Value: integer);
+begin
+ FInitialLocalPort := Value;
+{$IFDEF USE_SSH_WEONLYDO}
+ if InitLocalPort = 3380 then
+ InitLocalPort := Value;
+{$ENDIF}
+end;
+
+{$IFDEF USE_SSH_WEONLYDO}
+
+initialization
+
+ TunnelList := TList.Create();
+ InitLocalPort := 3380;
+
+finalization
+
+ TunnelList.Free();
+
+{$ENDIF}
+
+end.
diff --git a/TPSQLSSHDatabase/SRC/PgSSHDatabase26.dpk b/Source/TPSQLSSHDatabase/SRC/PgSSHDatabase26.dpk
similarity index 94%
rename from TPSQLSSHDatabase/SRC/PgSSHDatabase26.dpk
rename to Source/TPSQLSSHDatabase/SRC/PgSSHDatabase26.dpk
index 7f98a74..6be954f 100644
--- a/TPSQLSSHDatabase/SRC/PgSSHDatabase26.dpk
+++ b/Source/TPSQLSSHDatabase/SRC/PgSSHDatabase26.dpk
@@ -1,40 +1,40 @@
-package PgSSHDatabase26;
-
-{$R *.res}
-{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users}
-{$ALIGN 8}
-{$ASSERTIONS ON}
-{$BOOLEVAL OFF}
-{$DEBUGINFO OFF}
-{$EXTENDEDSYNTAX ON}
-{$IMPORTEDDATA ON}
-{$IOCHECKS ON}
-{$LOCALSYMBOLS OFF}
-{$LONGSTRINGS ON}
-{$OPENSTRINGS ON}
-{$OPTIMIZATION ON}
-{$OVERFLOWCHECKS OFF}
-{$RANGECHECKS OFF}
-{$REFERENCEINFO OFF}
-{$SAFEDIVIDE OFF}
-{$STACKFRAMES OFF}
-{$TYPEDADDRESS OFF}
-{$VARSTRINGCHECKS ON}
-{$WRITEABLECONST OFF}
-{$MINENUMSIZE 1}
-{$IMAGEBASE $400000}
-{$DEFINE RELEASE}
-{$ENDIF IMPLICITBUILDING}
-{$IMPLICITBUILD ON}
-
-requires
- vcl,
- rtl,
- dbrtl,
- vcldb,
- PostgresDAC26;
-
-contains
- PgSSHDatabase in 'PgSSHDatabase.pas';
-
-end.
+package PgSSHDatabase26;
+
+{$R *.res}
+{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO OFF}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS OFF}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO OFF}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DEFINE RELEASE}
+{$ENDIF IMPLICITBUILDING}
+{$IMPLICITBUILD ON}
+
+requires
+ vcl,
+ rtl,
+ dbrtl,
+ vcldb,
+ PostgresDAC26;
+
+contains
+ PgSSHDatabase in 'PgSSHDatabase.pas';
+
+end.
diff --git a/TPSQLSSHDatabase/SRC/PgSSHDatabase26.dproj b/Source/TPSQLSSHDatabase/SRC/PgSSHDatabase26.dproj
similarity index 98%
rename from TPSQLSSHDatabase/SRC/PgSSHDatabase26.dproj
rename to Source/TPSQLSSHDatabase/SRC/PgSSHDatabase26.dproj
index 0dcdf10..19ca571 100644
--- a/TPSQLSSHDatabase/SRC/PgSSHDatabase26.dproj
+++ b/Source/TPSQLSSHDatabase/SRC/PgSSHDatabase26.dproj
@@ -1,107 +1,107 @@
-
-
- {735A1B86-3F1D-44E8-BB73-750D2985A506}
- PgSSHDatabase26.dpk
- True
- Debug
- 129
- Package
- VCL
- 18.7
- Win32
-
-
- true
-
-
- true
- Base
- true
-
-
- true
- Base
- true
-
-
- true
- Base
- true
-
-
- false
- false
- false
- false
- false
- 00400000
- true
- true
- PgSSHDatabase26
- Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;DUnitX.Loggers.GUI;Winapi;$(DCC_Namespace)
- 1033
- CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=
-
-
- Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)
- Debug
- true
- CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)
- 1033
-
-
- RELEASE;$(DCC_Define)
- 0
- false
- 0
-
-
- DEBUG;$(DCC_Define)
- false
- true
-
-
-
- MainSource
-
-
-
-
-
-
-
-
- Cfg_2
- Base
-
-
- Base
-
-
- Cfg_1
- Base
-
-
-
- Delphi.Personality.12
- Package
-
-
-
- PgSSHDatabase26.dpk
-
-
-
- False
- False
- False
- True
- True
- False
-
-
- 12
-
-
-
-
+
+
+ {735A1B86-3F1D-44E8-BB73-750D2985A506}
+ PgSSHDatabase26.dpk
+ True
+ Debug
+ 129
+ Package
+ VCL
+ 18.7
+ Win32
+
+
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Base
+ true
+
+
+ false
+ false
+ false
+ false
+ false
+ 00400000
+ true
+ true
+ PgSSHDatabase26
+ Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;DUnitX.Loggers.GUI;Winapi;$(DCC_Namespace)
+ 1033
+ CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=
+
+
+ Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)
+ Debug
+ true
+ CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)
+ 1033
+
+
+ RELEASE;$(DCC_Define)
+ 0
+ false
+ 0
+
+
+ DEBUG;$(DCC_Define)
+ false
+ true
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+ Cfg_2
+ Base
+
+
+ Base
+
+
+ Cfg_1
+ Base
+
+
+
+ Delphi.Personality.12
+ Package
+
+
+
+ PgSSHDatabase26.dpk
+
+
+
+ False
+ False
+ False
+ True
+ True
+ False
+
+
+ 12
+
+
+
+
diff --git a/TPSQLSSHDatabase/SRC/RADStudio2007/PgSSHDatabaseRADStudio2007.dpk b/Source/TPSQLSSHDatabase/SRC/RADStudio2007/PgSSHDatabaseRADStudio2007.dpk
similarity index 93%
rename from TPSQLSSHDatabase/SRC/RADStudio2007/PgSSHDatabaseRADStudio2007.dpk
rename to Source/TPSQLSSHDatabase/SRC/RADStudio2007/PgSSHDatabaseRADStudio2007.dpk
index 176360b..d81fc31 100644
--- a/TPSQLSSHDatabase/SRC/RADStudio2007/PgSSHDatabaseRADStudio2007.dpk
+++ b/Source/TPSQLSSHDatabase/SRC/RADStudio2007/PgSSHDatabaseRADStudio2007.dpk
@@ -1,39 +1,39 @@
-package PgSSHDatabaseRADStudio2007;
-
-{$R *.res}
-{$ALIGN 8}
-{$ASSERTIONS ON}
-{$BOOLEVAL OFF}
-{$DEBUGINFO ON}
-{$EXTENDEDSYNTAX ON}
-{$IMPORTEDDATA ON}
-{$IOCHECKS ON}
-{$LOCALSYMBOLS ON}
-{$LONGSTRINGS ON}
-{$OPENSTRINGS ON}
-{$OPTIMIZATION ON}
-{$OVERFLOWCHECKS OFF}
-{$RANGECHECKS OFF}
-{$REFERENCEINFO ON}
-{$SAFEDIVIDE OFF}
-{$STACKFRAMES OFF}
-{$TYPEDADDRESS OFF}
-{$VARSTRINGCHECKS ON}
-{$WRITEABLECONST OFF}
-{$MINENUMSIZE 1}
-{$IMAGEBASE $400000}
-{$IMPLICITBUILD OFF}
-
-requires
- vcl,
- rtl,
- dbrtl,
- bdertl,
- vcldb,
- PostgresDAC11,
- wodSSHTunnel;
-
-contains
- PgSSHDatabase in '..\PgSSHDatabase.pas';
-
-end.
+package PgSSHDatabaseRADStudio2007;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$IMPLICITBUILD OFF}
+
+requires
+ vcl,
+ rtl,
+ dbrtl,
+ bdertl,
+ vcldb,
+ PostgresDAC11,
+ wodSSHTunnel;
+
+contains
+ PgSSHDatabase in '..\PgSSHDatabase.pas';
+
+end.
diff --git a/TPSQLSSHDatabase/SRC/RADStudio2007/PgSSHDatabaseRADStudio2007.dproj b/Source/TPSQLSSHDatabase/SRC/RADStudio2007/PgSSHDatabaseRADStudio2007.dproj
similarity index 99%
rename from TPSQLSSHDatabase/SRC/RADStudio2007/PgSSHDatabaseRADStudio2007.dproj
rename to Source/TPSQLSSHDatabase/SRC/RADStudio2007/PgSSHDatabaseRADStudio2007.dproj
index 3d5f2ed..ead84a5 100644
--- a/TPSQLSSHDatabase/SRC/RADStudio2007/PgSSHDatabaseRADStudio2007.dproj
+++ b/Source/TPSQLSSHDatabase/SRC/RADStudio2007/PgSSHDatabaseRADStudio2007.dproj
@@ -1,32 +1,32 @@
-
-
- {ec92c14c-1ad9-42d0-aac4-a6a40844f9e7}
- mySSHDatabaseRADStudio2007.dpk
- Debug
- AnyCPU
- DCC32
-
-
- 7.0
- False
- False
- 0
- RELEASE
-
-
- 7.0
-
-
- Delphi.Personality
- Package
-
-FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse104912511.0.0.01.0.0.0mySSHDatabaseRADStudio2007.dpk
-
-
-
-
- MainSource
-
-
-
+
+
+ {ec92c14c-1ad9-42d0-aac4-a6a40844f9e7}
+ mySSHDatabaseRADStudio2007.dpk
+ Debug
+ AnyCPU
+ DCC32
+
+
+ 7.0
+ False
+ False
+ 0
+ RELEASE
+
+
+ 7.0
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse104912511.0.0.01.0.0.0mySSHDatabaseRADStudio2007.dpk
+
+
+
+
+ MainSource
+
+
+
\ No newline at end of file
diff --git a/TPSQLSSHDatabase/SRC/RADStudio2007/PgSSHDatabaseRADStudio2007.res b/Source/TPSQLSSHDatabase/SRC/RADStudio2007/PgSSHDatabaseRADStudio2007.res
similarity index 100%
rename from TPSQLSSHDatabase/SRC/RADStudio2007/PgSSHDatabaseRADStudio2007.res
rename to Source/TPSQLSSHDatabase/SRC/RADStudio2007/PgSSHDatabaseRADStudio2007.res
diff --git a/TPSQLSSHDatabase/SRC/RADStudio2009/PgSSHDatabaseRADStudio2009.dpk b/Source/TPSQLSSHDatabase/SRC/RADStudio2009/PgSSHDatabaseRADStudio2009.dpk
similarity index 93%
rename from TPSQLSSHDatabase/SRC/RADStudio2009/PgSSHDatabaseRADStudio2009.dpk
rename to Source/TPSQLSSHDatabase/SRC/RADStudio2009/PgSSHDatabaseRADStudio2009.dpk
index 6085ac3..45597ba 100644
--- a/TPSQLSSHDatabase/SRC/RADStudio2009/PgSSHDatabaseRADStudio2009.dpk
+++ b/Source/TPSQLSSHDatabase/SRC/RADStudio2009/PgSSHDatabaseRADStudio2009.dpk
@@ -1,39 +1,39 @@
-package PgSSHDatabaseRADStudio2009;
-
-{$R *.res}
-{$ALIGN 8}
-{$ASSERTIONS ON}
-{$BOOLEVAL OFF}
-{$DEBUGINFO ON}
-{$EXTENDEDSYNTAX ON}
-{$IMPORTEDDATA ON}
-{$IOCHECKS ON}
-{$LOCALSYMBOLS ON}
-{$LONGSTRINGS ON}
-{$OPENSTRINGS ON}
-{$OPTIMIZATION ON}
-{$OVERFLOWCHECKS OFF}
-{$RANGECHECKS OFF}
-{$REFERENCEINFO ON}
-{$SAFEDIVIDE OFF}
-{$STACKFRAMES OFF}
-{$TYPEDADDRESS OFF}
-{$VARSTRINGCHECKS ON}
-{$WRITEABLECONST OFF}
-{$MINENUMSIZE 1}
-{$IMAGEBASE $400000}
-{$IMPLICITBUILD OFF}
-
-requires
- vcl,
- rtl,
- dbrtl,
- bdertl,
- vcldb,
- wodSSHTunnel,
- PostgresDAC12;
-
-contains
- PgSSHDatabase in '..\PgSSHDatabase.pas';
-
-end.
+package PgSSHDatabaseRADStudio2009;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$IMPLICITBUILD OFF}
+
+requires
+ vcl,
+ rtl,
+ dbrtl,
+ bdertl,
+ vcldb,
+ wodSSHTunnel,
+ PostgresDAC12;
+
+contains
+ PgSSHDatabase in '..\PgSSHDatabase.pas';
+
+end.
diff --git a/TPSQLSSHDatabase/SRC/RADStudio2009/PgSSHDatabaseRADStudio2009.dproj b/Source/TPSQLSSHDatabase/SRC/RADStudio2009/PgSSHDatabaseRADStudio2009.dproj
similarity index 96%
rename from TPSQLSSHDatabase/SRC/RADStudio2009/PgSSHDatabaseRADStudio2009.dproj
rename to Source/TPSQLSSHDatabase/SRC/RADStudio2009/PgSSHDatabaseRADStudio2009.dproj
index cf153a0..66464a8 100644
--- a/TPSQLSSHDatabase/SRC/RADStudio2009/PgSSHDatabaseRADStudio2009.dproj
+++ b/Source/TPSQLSSHDatabase/SRC/RADStudio2009/PgSSHDatabaseRADStudio2009.dproj
@@ -1,595 +1,595 @@
-
-
- {D72E1F59-49AE-4B61-B65B-C798392E7878}
- PgSSHDatabaseRADStudio2009.dpk
- Debug
- DCC32
- 12.0
-
-
- true
-
-
- true
- Base
- true
-
-
- true
- Base
- true
-
-
- 1
- C:\Users\Public\Documents\RAD Studio\6.0\Bpl\PgSSHDatabaseRADStudio2009.bpl
- true
- true
- true
- 00400000
- x86
-
-
- false
- RELEASE;$(DCC_Define)
- 0
- false
-
-
- DEBUG;$(DCC_Define)
-
-
-
- MainSource
-
-
-
-
-
-
-
-
-
- Base
-
-
- Cfg_2
- Base
-
-
- Cfg_1
- Base
-
-
-
-
- Delphi.Personality.12
- Package
-
-
-
- PgSSHDatabaseRADStudio2009.dpk
-
-
- False
- True
- False
-
-
- True
- False
- 1
- 0
- 0
- 0
- False
- False
- False
- False
- False
- 1049
- 1251
-
-
-
-
- 1.0.0.0
-
-
-
-
-
- 1.0.0.0
-
-
-
- CodeGear Delphi image support library
-
-
-
- 12
-
-
-
-
+
+
+ {D72E1F59-49AE-4B61-B65B-C798392E7878}
+ PgSSHDatabaseRADStudio2009.dpk
+ Debug
+ DCC32
+ 12.0
+
+
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Base
+ true
+
+
+ 1
+ C:\Users\Public\Documents\RAD Studio\6.0\Bpl\PgSSHDatabaseRADStudio2009.bpl
+ true
+ true
+ true
+ 00400000
+ x86
+
+
+ false
+ RELEASE;$(DCC_Define)
+ 0
+ false
+
+
+ DEBUG;$(DCC_Define)
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+ Base
+
+
+ Cfg_2
+ Base
+
+
+ Cfg_1
+ Base
+
+
+
+
+ Delphi.Personality.12
+ Package
+
+
+
+ PgSSHDatabaseRADStudio2009.dpk
+
+
+ False
+ True
+ False
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 1049
+ 1251
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
+ 1.0.0.0
+
+
+
+ CodeGear Delphi image support library
+
+
+
+ 12
+
+
+
+
diff --git a/TPSQLSSHDatabase/SRC/RADStudio2009/PgSSHDatabaseRADStudio2009.res b/Source/TPSQLSSHDatabase/SRC/RADStudio2009/PgSSHDatabaseRADStudio2009.res
similarity index 100%
rename from TPSQLSSHDatabase/SRC/RADStudio2009/PgSSHDatabaseRADStudio2009.res
rename to Source/TPSQLSSHDatabase/SRC/RADStudio2009/PgSSHDatabaseRADStudio2009.res
diff --git a/TPSQLSSHDatabase/SRC/RADStudio2010/PgSSHDatabaseRADStudio2010.dpk b/Source/TPSQLSSHDatabase/SRC/RADStudio2010/PgSSHDatabaseRADStudio2010.dpk
similarity index 93%
rename from TPSQLSSHDatabase/SRC/RADStudio2010/PgSSHDatabaseRADStudio2010.dpk
rename to Source/TPSQLSSHDatabase/SRC/RADStudio2010/PgSSHDatabaseRADStudio2010.dpk
index 8ca500c..2fb5b3a 100644
--- a/TPSQLSSHDatabase/SRC/RADStudio2010/PgSSHDatabaseRADStudio2010.dpk
+++ b/Source/TPSQLSSHDatabase/SRC/RADStudio2010/PgSSHDatabaseRADStudio2010.dpk
@@ -1,39 +1,39 @@
-package PgSSHDatabaseRADStudio2010;
-
-{$R *.res}
-{$ALIGN 8}
-{$ASSERTIONS ON}
-{$BOOLEVAL OFF}
-{$DEBUGINFO ON}
-{$EXTENDEDSYNTAX ON}
-{$IMPORTEDDATA ON}
-{$IOCHECKS ON}
-{$LOCALSYMBOLS ON}
-{$LONGSTRINGS ON}
-{$OPENSTRINGS ON}
-{$OPTIMIZATION ON}
-{$OVERFLOWCHECKS OFF}
-{$RANGECHECKS OFF}
-{$REFERENCEINFO ON}
-{$SAFEDIVIDE OFF}
-{$STACKFRAMES OFF}
-{$TYPEDADDRESS OFF}
-{$VARSTRINGCHECKS ON}
-{$WRITEABLECONST OFF}
-{$MINENUMSIZE 1}
-{$IMAGEBASE $400000}
-{$IMPLICITBUILD OFF}
-
-requires
- vcl,
- rtl,
- dbrtl,
- bdertl,
- vcldb,
- wodSSHTunnel,
- PostgresDAC14;
-
-contains
- PgSSHDatabase in '..\PgSSHDatabase.pas';
-
-end.
+package PgSSHDatabaseRADStudio2010;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$IMPLICITBUILD OFF}
+
+requires
+ vcl,
+ rtl,
+ dbrtl,
+ bdertl,
+ vcldb,
+ wodSSHTunnel,
+ PostgresDAC14;
+
+contains
+ PgSSHDatabase in '..\PgSSHDatabase.pas';
+
+end.
diff --git a/TPSQLSSHDatabase/SRC/RADStudio2010/PgSSHDatabaseRADStudio2010.dproj b/Source/TPSQLSSHDatabase/SRC/RADStudio2010/PgSSHDatabaseRADStudio2010.dproj
similarity index 96%
rename from TPSQLSSHDatabase/SRC/RADStudio2010/PgSSHDatabaseRADStudio2010.dproj
rename to Source/TPSQLSSHDatabase/SRC/RADStudio2010/PgSSHDatabaseRADStudio2010.dproj
index 27d8e42..b9e02ef 100644
--- a/TPSQLSSHDatabase/SRC/RADStudio2010/PgSSHDatabaseRADStudio2010.dproj
+++ b/Source/TPSQLSSHDatabase/SRC/RADStudio2010/PgSSHDatabaseRADStudio2010.dproj
@@ -1,595 +1,595 @@
-
-
- {D72E1F59-49AE-4B61-B65B-C798392E7878}
- PgSSHDatabaseRADStudio2010.dpk
- Debug
- DCC32
- 12.0
-
-
- true
-
-
- true
- Base
- true
-
-
- true
- Base
- true
-
-
- C:\Users\Public\Documents\RAD Studio\7.0\Bpl\PgSSHDatabaseRADStudio2010.bpl
- true
- true
- true
- 00400000
- x86
-
-
- false
- RELEASE;$(DCC_Define)
- 0
- false
-
-
- DEBUG;$(DCC_Define)
-
-
-
- MainSource
-
-
-
-
-
-
-
-
-
-
- Base
-
-
- Cfg_2
- Base
-
-
- Cfg_1
- Base
-
-
-
-
- Delphi.Personality.12
- Package
-
-
-
- PgSSHDatabaseRADStudio2010.dpk
-
-
- False
- True
- False
-
-
- True
- False
- 1
- 0
- 0
- 0
- False
- False
- False
- False
- False
- 1049
- 1251
-
-
-
-
- 1.0.0.0
-
-
-
-
-
- 1.0.0.0
-
-
-
- CodeGear Delphi image support library
-
-
-
- 12
-
-
-
-
+
+
+ {D72E1F59-49AE-4B61-B65B-C798392E7878}
+ PgSSHDatabaseRADStudio2010.dpk
+ Debug
+ DCC32
+ 12.0
+
+
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Base
+ true
+
+
+ C:\Users\Public\Documents\RAD Studio\7.0\Bpl\PgSSHDatabaseRADStudio2010.bpl
+ true
+ true
+ true
+ 00400000
+ x86
+
+
+ false
+ RELEASE;$(DCC_Define)
+ 0
+ false
+
+
+ DEBUG;$(DCC_Define)
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+ Base
+
+
+ Cfg_2
+ Base
+
+
+ Cfg_1
+ Base
+
+
+
+
+ Delphi.Personality.12
+ Package
+
+
+
+ PgSSHDatabaseRADStudio2010.dpk
+
+
+ False
+ True
+ False
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 1049
+ 1251
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
+ 1.0.0.0
+
+
+
+ CodeGear Delphi image support library
+
+
+
+ 12
+
+
+
+
diff --git a/TPSQLSSHDatabase/SRC/RADStudio2010/PgSSHDatabaseRADStudio2010.res b/Source/TPSQLSSHDatabase/SRC/RADStudio2010/PgSSHDatabaseRADStudio2010.res
similarity index 100%
rename from TPSQLSSHDatabase/SRC/RADStudio2010/PgSSHDatabaseRADStudio2010.res
rename to Source/TPSQLSSHDatabase/SRC/RADStudio2010/PgSSHDatabaseRADStudio2010.res
diff --git a/TPSQLSSHDatabase/SRC/RADStudioDX/PgSSHDatabaseRADStudio10.dpk b/Source/TPSQLSSHDatabase/SRC/RADStudioDX/PgSSHDatabaseRADStudio10.dpk
similarity index 94%
rename from TPSQLSSHDatabase/SRC/RADStudioDX/PgSSHDatabaseRADStudio10.dpk
rename to Source/TPSQLSSHDatabase/SRC/RADStudioDX/PgSSHDatabaseRADStudio10.dpk
index 3f912d1..c8a3076 100644
--- a/TPSQLSSHDatabase/SRC/RADStudioDX/PgSSHDatabaseRADStudio10.dpk
+++ b/Source/TPSQLSSHDatabase/SRC/RADStudioDX/PgSSHDatabaseRADStudio10.dpk
@@ -1,41 +1,41 @@
-package PgSSHDatabaseRADStudio10;
-
-{$R *.res}
-{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users}
-{$ALIGN 8}
-{$ASSERTIONS ON}
-{$BOOLEVAL OFF}
-{$DEBUGINFO OFF}
-{$EXTENDEDSYNTAX ON}
-{$IMPORTEDDATA ON}
-{$IOCHECKS ON}
-{$LOCALSYMBOLS OFF}
-{$LONGSTRINGS ON}
-{$OPENSTRINGS ON}
-{$OPTIMIZATION ON}
-{$OVERFLOWCHECKS OFF}
-{$RANGECHECKS OFF}
-{$REFERENCEINFO OFF}
-{$SAFEDIVIDE OFF}
-{$STACKFRAMES OFF}
-{$TYPEDADDRESS OFF}
-{$VARSTRINGCHECKS ON}
-{$WRITEABLECONST OFF}
-{$MINENUMSIZE 1}
-{$IMAGEBASE $400000}
-{$DEFINE RELEASE}
-{$ENDIF IMPLICITBUILDING}
-{$IMPLICITBUILD ON}
-
-requires
- vcl,
- rtl,
- dbrtl,
- vcldb,
- wodSSHTunnel,
- PostgresDAC23;
-
-contains
- PgSSHDatabase in '..\PgSSHDatabase.pas';
-
-end.
+package PgSSHDatabaseRADStudio10;
+
+{$R *.res}
+{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO OFF}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS OFF}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO OFF}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DEFINE RELEASE}
+{$ENDIF IMPLICITBUILDING}
+{$IMPLICITBUILD ON}
+
+requires
+ vcl,
+ rtl,
+ dbrtl,
+ vcldb,
+ wodSSHTunnel,
+ PostgresDAC23;
+
+contains
+ PgSSHDatabase in '..\PgSSHDatabase.pas';
+
+end.
diff --git a/TPSQLSSHDatabase/SRC/RADStudioDX/PgSSHDatabaseRADStudio10.dproj b/Source/TPSQLSSHDatabase/SRC/RADStudioDX/PgSSHDatabaseRADStudio10.dproj
similarity index 98%
rename from TPSQLSSHDatabase/SRC/RADStudioDX/PgSSHDatabaseRADStudio10.dproj
rename to Source/TPSQLSSHDatabase/SRC/RADStudioDX/PgSSHDatabaseRADStudio10.dproj
index 665f654..765e105 100644
--- a/TPSQLSSHDatabase/SRC/RADStudioDX/PgSSHDatabaseRADStudio10.dproj
+++ b/Source/TPSQLSSHDatabase/SRC/RADStudioDX/PgSSHDatabaseRADStudio10.dproj
@@ -1,195 +1,195 @@
-
-
- {EDE94E4F-E342-4B34-BF27-008405D413A4}
- PgSSHDatabaseRADStudio10.dpk
- True
- Release
- 1025
- Package
- VCL
- 18.1
- Win32
-
-
- true
-
-
- true
- Base
- true
-
-
- true
- Base
- true
-
-
- true
- Base
- true
-
-
- true
- Base
- true
-
-
- true
- Base
- true
-
-
- true
- Base
- true
-
-
- true
- Base
- true
-
-
- true
- Cfg_1
- true
- true
-
-
- true
- Cfg_1
- true
- true
-
-
- true
- Base
- true
-
-
- true
- Cfg_2
- true
- true
-
-
- true
- 1
- false
- false
- 1049
- false
- false
- true
- PgSSHDatabaseRADStudio10
- false
- 00400000
- Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;$(DCC_Namespace)
- CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=
-
-
- rtl;dbrtl;$(DCC_UsePackage)
- android-support-v4.dex.jar;apk-expansion.dex.jar;cloud-messaging.dex.jar;fmx.dex.jar;google-analytics-v2.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar;google-play-services.dex.jar
- package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=auto;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey=
- Debug
-
-
- rtl;dbrtl;$(DCC_UsePackage)
-
-
- rtl;dbrtl;wodSSHTunnel;$(DCC_UsePackage)
-
-
- rtl;dbrtl;$(DCC_UsePackage)
-
-
- rtl;vcl;dbrtl;vcldb;wodSSHTunnel;PostgresDAC23;$(DCC_UsePackage)
- System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)
- 1033
- true
- CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=
-
-
- rtl;vcl;dbrtl;vcldb;$(DCC_UsePackage)
-
-
- RELEASE;$(DCC_Define)
- 0
- false
- 0
-
-
- Debug
-
-
- 1033
- CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=
- true
-
-
- DEBUG;$(DCC_Define)
- false
- true
-
-
- Debug
-
-
-
- MainSource
-
-
-
-
-
-
-
-
-
- Cfg_2
- Base
-
-
- Base
-
-
- Cfg_1
- Base
-
-
-
- Delphi.Personality.12
- Package
-
-
-
- PgSSHDatabaseRADStudio10.dpk
-
-
- Embarcadero C++Builder Office 2000 Servers Package
- Embarcadero C++Builder Office XP Servers Package
- Microsoft Office 2000 Sample Automation Server Wrapper Components
- Microsoft Office XP Sample Automation Server Wrapper Components
-
-
-
- False
- False
- True
- False
- True
- False
-
-
- 12
-
-
-
-
-
-
+
+
+ {EDE94E4F-E342-4B34-BF27-008405D413A4}
+ PgSSHDatabaseRADStudio10.dpk
+ True
+ Release
+ 1025
+ Package
+ VCL
+ 18.1
+ Win32
+
+
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Cfg_1
+ true
+ true
+
+
+ true
+ Cfg_1
+ true
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Cfg_2
+ true
+ true
+
+
+ true
+ 1
+ false
+ false
+ 1049
+ false
+ false
+ true
+ PgSSHDatabaseRADStudio10
+ false
+ 00400000
+ Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;$(DCC_Namespace)
+ CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=
+
+
+ rtl;dbrtl;$(DCC_UsePackage)
+ android-support-v4.dex.jar;apk-expansion.dex.jar;cloud-messaging.dex.jar;fmx.dex.jar;google-analytics-v2.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar;google-play-services.dex.jar
+ package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=auto;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey=
+ Debug
+
+
+ rtl;dbrtl;$(DCC_UsePackage)
+
+
+ rtl;dbrtl;wodSSHTunnel;$(DCC_UsePackage)
+
+
+ rtl;dbrtl;$(DCC_UsePackage)
+
+
+ rtl;vcl;dbrtl;vcldb;wodSSHTunnel;PostgresDAC23;$(DCC_UsePackage)
+ System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)
+ 1033
+ true
+ CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=
+
+
+ rtl;vcl;dbrtl;vcldb;$(DCC_UsePackage)
+
+
+ RELEASE;$(DCC_Define)
+ 0
+ false
+ 0
+
+
+ Debug
+
+
+ 1033
+ CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=
+ true
+
+
+ DEBUG;$(DCC_Define)
+ false
+ true
+
+
+ Debug
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+ Cfg_2
+ Base
+
+
+ Base
+
+
+ Cfg_1
+ Base
+
+
+
+ Delphi.Personality.12
+ Package
+
+
+
+ PgSSHDatabaseRADStudio10.dpk
+
+
+ Embarcadero C++Builder Office 2000 Servers Package
+ Embarcadero C++Builder Office XP Servers Package
+ Microsoft Office 2000 Sample Automation Server Wrapper Components
+ Microsoft Office XP Sample Automation Server Wrapper Components
+
+
+
+ False
+ False
+ True
+ False
+ True
+ False
+
+
+ 12
+
+
+
+
+
+
diff --git a/TPSQLSSHDatabase/SRC/RADStudioDX/PgSSHDatabaseRADStudio10.res b/Source/TPSQLSSHDatabase/SRC/RADStudioDX/PgSSHDatabaseRADStudio10.res
similarity index 100%
rename from TPSQLSSHDatabase/SRC/RADStudioDX/PgSSHDatabaseRADStudio10.res
rename to Source/TPSQLSSHDatabase/SRC/RADStudioDX/PgSSHDatabaseRADStudio10.res
diff --git a/TPSQLSSHDatabase/SRC/RADStudioXE/PgSSHDatabaseRADStudioXE.dpk b/Source/TPSQLSSHDatabase/SRC/RADStudioXE/PgSSHDatabaseRADStudioXE.dpk
similarity index 93%
rename from TPSQLSSHDatabase/SRC/RADStudioXE/PgSSHDatabaseRADStudioXE.dpk
rename to Source/TPSQLSSHDatabase/SRC/RADStudioXE/PgSSHDatabaseRADStudioXE.dpk
index 67532b0..2b73dea 100644
--- a/TPSQLSSHDatabase/SRC/RADStudioXE/PgSSHDatabaseRADStudioXE.dpk
+++ b/Source/TPSQLSSHDatabase/SRC/RADStudioXE/PgSSHDatabaseRADStudioXE.dpk
@@ -1,39 +1,39 @@
-package PgSSHDatabaseRADStudioXE;
-
-{$R *.res}
-{$ALIGN 8}
-{$ASSERTIONS ON}
-{$BOOLEVAL OFF}
-{$DEBUGINFO ON}
-{$EXTENDEDSYNTAX ON}
-{$IMPORTEDDATA ON}
-{$IOCHECKS ON}
-{$LOCALSYMBOLS ON}
-{$LONGSTRINGS ON}
-{$OPENSTRINGS ON}
-{$OPTIMIZATION ON}
-{$OVERFLOWCHECKS OFF}
-{$RANGECHECKS OFF}
-{$REFERENCEINFO ON}
-{$SAFEDIVIDE OFF}
-{$STACKFRAMES OFF}
-{$TYPEDADDRESS OFF}
-{$VARSTRINGCHECKS ON}
-{$WRITEABLECONST OFF}
-{$MINENUMSIZE 1}
-{$IMAGEBASE $400000}
-{$IMPLICITBUILD OFF}
-
-requires
- vcl,
- rtl,
- dbrtl,
- bdertl,
- vcldb,
- wodSSHTunnel,
- PostgresDAC15;
-
-contains
- PgSSHDatabase in '..\PgSSHDatabase.pas';
-
-end.
+package PgSSHDatabaseRADStudioXE;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$IMPLICITBUILD OFF}
+
+requires
+ vcl,
+ rtl,
+ dbrtl,
+ bdertl,
+ vcldb,
+ wodSSHTunnel,
+ PostgresDAC15;
+
+contains
+ PgSSHDatabase in '..\PgSSHDatabase.pas';
+
+end.
diff --git a/TPSQLSSHDatabase/SRC/RADStudioXE/PgSSHDatabaseRADStudioXE.dproj b/Source/TPSQLSSHDatabase/SRC/RADStudioXE/PgSSHDatabaseRADStudioXE.dproj
similarity index 96%
rename from TPSQLSSHDatabase/SRC/RADStudioXE/PgSSHDatabaseRADStudioXE.dproj
rename to Source/TPSQLSSHDatabase/SRC/RADStudioXE/PgSSHDatabaseRADStudioXE.dproj
index 2f8d184..254bff1 100644
--- a/TPSQLSSHDatabase/SRC/RADStudioXE/PgSSHDatabaseRADStudioXE.dproj
+++ b/Source/TPSQLSSHDatabase/SRC/RADStudioXE/PgSSHDatabaseRADStudioXE.dproj
@@ -1,595 +1,595 @@
-
-
- {D72E1F59-49AE-4B61-B65B-C798392E7878}
- PgSSHDatabaseRADStudioXE.dpk
- Debug
- DCC32
- 12.0
-
-
- true
-
-
- true
- Base
- true
-
-
- true
- Base
- true
-
-
- C:\Users\Public\Documents\RAD Studio\7.0\Bpl\PgSSHDatabaseRADStudioXE.bpl
- true
- true
- true
- 00400000
- x86
-
-
- false
- RELEASE;$(DCC_Define)
- 0
- false
-
-
- DEBUG;$(DCC_Define)
-
-
-
- MainSource
-
-
-
-
-
-
-
-
-
-
- Base
-
-
- Cfg_2
- Base
-
-
- Cfg_1
- Base
-
-
-
-
- Delphi.Personality.12
- Package
-
-
-
- PgSSHDatabaseRADStudioXE.dpk
-
-
- False
- True
- False
-
-
- True
- False
- 1
- 0
- 0
- 0
- False
- False
- False
- False
- False
- 1049
- 1251
-
-
-
-
- 1.0.0.0
-
-
-
-
-
- 1.0.0.0
-
-
-
- CodeGear Delphi image support library
-
-
-
- 12
-
-
-
-
+
+
+ {D72E1F59-49AE-4B61-B65B-C798392E7878}
+ PgSSHDatabaseRADStudioXE.dpk
+ Debug
+ DCC32
+ 12.0
+
+
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Base
+ true
+
+
+ C:\Users\Public\Documents\RAD Studio\7.0\Bpl\PgSSHDatabaseRADStudioXE.bpl
+ true
+ true
+ true
+ 00400000
+ x86
+
+
+ false
+ RELEASE;$(DCC_Define)
+ 0
+ false
+
+
+ DEBUG;$(DCC_Define)
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+ Base
+
+
+ Cfg_2
+ Base
+
+
+ Cfg_1
+ Base
+
+
+
+
+ Delphi.Personality.12
+ Package
+
+
+
+ PgSSHDatabaseRADStudioXE.dpk
+
+
+ False
+ True
+ False
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 1049
+ 1251
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
+ 1.0.0.0
+
+
+
+ CodeGear Delphi image support library
+
+
+
+ 12
+
+
+
+
diff --git a/TPSQLSSHDatabase/SRC/RADStudioXE/PgSSHDatabaseRADStudioXE.res b/Source/TPSQLSSHDatabase/SRC/RADStudioXE/PgSSHDatabaseRADStudioXE.res
similarity index 100%
rename from TPSQLSSHDatabase/SRC/RADStudioXE/PgSSHDatabaseRADStudioXE.res
rename to Source/TPSQLSSHDatabase/SRC/RADStudioXE/PgSSHDatabaseRADStudioXE.res
diff --git a/TPSQLSSHDatabase/SRC/RADStudioXE2/PgSSHDatabaseRADStudioXE2.dpk b/Source/TPSQLSSHDatabase/SRC/RADStudioXE2/PgSSHDatabaseRADStudioXE2.dpk
similarity index 93%
rename from TPSQLSSHDatabase/SRC/RADStudioXE2/PgSSHDatabaseRADStudioXE2.dpk
rename to Source/TPSQLSSHDatabase/SRC/RADStudioXE2/PgSSHDatabaseRADStudioXE2.dpk
index 5d53bff..24e506c 100644
--- a/TPSQLSSHDatabase/SRC/RADStudioXE2/PgSSHDatabaseRADStudioXE2.dpk
+++ b/Source/TPSQLSSHDatabase/SRC/RADStudioXE2/PgSSHDatabaseRADStudioXE2.dpk
@@ -1,39 +1,39 @@
-package PgSSHDatabaseRADStudioXE2;
-
-{$R *.res}
-{$ALIGN 8}
-{$ASSERTIONS ON}
-{$BOOLEVAL OFF}
-{$DEBUGINFO ON}
-{$EXTENDEDSYNTAX ON}
-{$IMPORTEDDATA ON}
-{$IOCHECKS ON}
-{$LOCALSYMBOLS ON}
-{$LONGSTRINGS ON}
-{$OPENSTRINGS ON}
-{$OPTIMIZATION ON}
-{$OVERFLOWCHECKS OFF}
-{$RANGECHECKS OFF}
-{$REFERENCEINFO ON}
-{$SAFEDIVIDE OFF}
-{$STACKFRAMES OFF}
-{$TYPEDADDRESS OFF}
-{$VARSTRINGCHECKS ON}
-{$WRITEABLECONST OFF}
-{$MINENUMSIZE 1}
-{$IMAGEBASE $400000}
-{$IMPLICITBUILD OFF}
-
-requires
- vcl,
- rtl,
- dbrtl,
- bdertl,
- vcldb,
- wodSSHTunnel,
- PostgresDAC16;
-
-contains
- PgSSHDatabase in '..\PgSSHDatabase.pas';
-
-end.
+package PgSSHDatabaseRADStudioXE2;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$IMPLICITBUILD OFF}
+
+requires
+ vcl,
+ rtl,
+ dbrtl,
+ bdertl,
+ vcldb,
+ wodSSHTunnel,
+ PostgresDAC16;
+
+contains
+ PgSSHDatabase in '..\PgSSHDatabase.pas';
+
+end.
diff --git a/TPSQLSSHDatabase/SRC/RADStudioXE2/PgSSHDatabaseRADStudioXE2.dproj b/Source/TPSQLSSHDatabase/SRC/RADStudioXE2/PgSSHDatabaseRADStudioXE2.dproj
similarity index 97%
rename from TPSQLSSHDatabase/SRC/RADStudioXE2/PgSSHDatabaseRADStudioXE2.dproj
rename to Source/TPSQLSSHDatabase/SRC/RADStudioXE2/PgSSHDatabaseRADStudioXE2.dproj
index e2220b8..c4887e9 100644
--- a/TPSQLSSHDatabase/SRC/RADStudioXE2/PgSSHDatabaseRADStudioXE2.dproj
+++ b/Source/TPSQLSSHDatabase/SRC/RADStudioXE2/PgSSHDatabaseRADStudioXE2.dproj
@@ -1,132 +1,132 @@
-
-
- {D72E1F59-49AE-4B61-B65B-C798392E7878}
- PgSSHDatabaseRADStudioXE2.dpk
- Debug
- DCC32
- 13.4
- True
- Package
- VCL
- Win32
- 1
-
-
- true
-
-
- true
- Base
- true
-
-
- true
- Base
- true
-
-
- true
- Base
- true
-
-
- CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=
- Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;$(DCC_Namespace)
- true
- 1049
- C:\Users\Public\Documents\RAD Studio\7.0\Bpl\PgSSHDatabaseRADStudioXE.bpl
- true
- true
- true
- 00400000
- x86
-
-
- true
- Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)
- 1033
- CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=
-
-
- false
- RELEASE;$(DCC_Define)
- 0
- false
-
-
- DEBUG;$(DCC_Define)
-
-
-
- MainSource
-
-
-
-
-
-
-
-
-
-
- Cfg_2
- Base
-
-
- Base
-
-
- Cfg_1
- Base
-
-
-
-
- Delphi.Personality.12
- Package
-
-
-
- PgSSHDatabaseRADStudioXE2.dpk
-
-
-
- True
- False
- 1
- 0
- 0
- 0
- False
- False
- False
- False
- False
- 1049
- 1251
-
-
-
-
- 1.0.0.0
-
-
-
-
-
- 1.0.0.0
-
-
-
- CodeGear Delphi image support library
-
-
-
- False
- True
-
-
- 12
-
-
-
+
+
+ {D72E1F59-49AE-4B61-B65B-C798392E7878}
+ PgSSHDatabaseRADStudioXE2.dpk
+ Debug
+ DCC32
+ 13.4
+ True
+ Package
+ VCL
+ Win32
+ 1
+
+
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Base
+ true
+
+
+ CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=
+ Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;$(DCC_Namespace)
+ true
+ 1049
+ C:\Users\Public\Documents\RAD Studio\7.0\Bpl\PgSSHDatabaseRADStudioXE.bpl
+ true
+ true
+ true
+ 00400000
+ x86
+
+
+ true
+ Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)
+ 1033
+ CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=
+
+
+ false
+ RELEASE;$(DCC_Define)
+ 0
+ false
+
+
+ DEBUG;$(DCC_Define)
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+ Cfg_2
+ Base
+
+
+ Base
+
+
+ Cfg_1
+ Base
+
+
+
+
+ Delphi.Personality.12
+ Package
+
+
+
+ PgSSHDatabaseRADStudioXE2.dpk
+
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 1049
+ 1251
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
+ 1.0.0.0
+
+
+
+ CodeGear Delphi image support library
+
+
+
+ False
+ True
+
+
+ 12
+
+
+
diff --git a/TPSQLSSHDatabase/SRC/RADStudioXE3/PgSSHDatabaseRADStudioXE3.dpk b/Source/TPSQLSSHDatabase/SRC/RADStudioXE3/PgSSHDatabaseRADStudioXE3.dpk
similarity index 93%
rename from TPSQLSSHDatabase/SRC/RADStudioXE3/PgSSHDatabaseRADStudioXE3.dpk
rename to Source/TPSQLSSHDatabase/SRC/RADStudioXE3/PgSSHDatabaseRADStudioXE3.dpk
index f68126c..3fede68 100644
--- a/TPSQLSSHDatabase/SRC/RADStudioXE3/PgSSHDatabaseRADStudioXE3.dpk
+++ b/Source/TPSQLSSHDatabase/SRC/RADStudioXE3/PgSSHDatabaseRADStudioXE3.dpk
@@ -1,39 +1,39 @@
-package PgSSHDatabaseRADStudioXE3;
-
-{$R *.res}
-{$ALIGN 8}
-{$ASSERTIONS ON}
-{$BOOLEVAL OFF}
-{$DEBUGINFO ON}
-{$EXTENDEDSYNTAX ON}
-{$IMPORTEDDATA ON}
-{$IOCHECKS ON}
-{$LOCALSYMBOLS ON}
-{$LONGSTRINGS ON}
-{$OPENSTRINGS ON}
-{$OPTIMIZATION ON}
-{$OVERFLOWCHECKS OFF}
-{$RANGECHECKS OFF}
-{$REFERENCEINFO ON}
-{$SAFEDIVIDE OFF}
-{$STACKFRAMES OFF}
-{$TYPEDADDRESS OFF}
-{$VARSTRINGCHECKS ON}
-{$WRITEABLECONST OFF}
-{$MINENUMSIZE 1}
-{$IMAGEBASE $400000}
-{$IMPLICITBUILD OFF}
-
-requires
- vcl,
- rtl,
- dbrtl,
- bdertl,
- vcldb,
- wodSSHTunnel,
- PostgresDAC17;
-
-contains
- PgSSHDatabase in '..\PgSSHDatabase.pas';
-
-end.
+package PgSSHDatabaseRADStudioXE3;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$IMPLICITBUILD OFF}
+
+requires
+ vcl,
+ rtl,
+ dbrtl,
+ bdertl,
+ vcldb,
+ wodSSHTunnel,
+ PostgresDAC17;
+
+contains
+ PgSSHDatabase in '..\PgSSHDatabase.pas';
+
+end.
diff --git a/TPSQLSSHDatabase/SRC/RADStudioXE3/PgSSHDatabaseRADStudioXE3.dproj b/Source/TPSQLSSHDatabase/SRC/RADStudioXE3/PgSSHDatabaseRADStudioXE3.dproj
similarity index 97%
rename from TPSQLSSHDatabase/SRC/RADStudioXE3/PgSSHDatabaseRADStudioXE3.dproj
rename to Source/TPSQLSSHDatabase/SRC/RADStudioXE3/PgSSHDatabaseRADStudioXE3.dproj
index d8b8e0d..69ae86e 100644
--- a/TPSQLSSHDatabase/SRC/RADStudioXE3/PgSSHDatabaseRADStudioXE3.dproj
+++ b/Source/TPSQLSSHDatabase/SRC/RADStudioXE3/PgSSHDatabaseRADStudioXE3.dproj
@@ -1,149 +1,149 @@
-
-
- {D72E1F59-49AE-4B61-B65B-C798392E7878}
- PgSSHDatabaseRADStudioXE3.dpk
- Debug
- DCC32
- 13.4
- True
- Package
- VCL
- Win32
- 1
-
-
- true
-
-
- true
- Base
- true
-
-
- true
- Base
- true
-
-
- true
- Base
- true
-
-
- CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=
- Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;$(DCC_Namespace)
- true
- 1049
- C:\Users\Public\Documents\RAD Studio\7.0\Bpl\PgSSHDatabaseRADStudioXE.bpl
- true
- true
- true
- 00400000
- x86
-
-
- true
- Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)
- 1033
- CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=
-
-
- false
- RELEASE;$(DCC_Define)
- 0
- false
-
-
- DEBUG;$(DCC_Define)
-
-
-
- MainSource
-
-
-
-
-
-
-
-
-
-
- Cfg_2
- Base
-
-
- Base
-
-
- Cfg_1
- Base
-
-
-
-
- Delphi.Personality.12
- Package
-
-
-
- PgSSHDatabaseRADStudioXE3.dpk
-
-
-
- True
- False
- 1
- 0
- 0
- 0
- False
- False
- False
- False
- False
- 1049
- 1251
-
-
-
-
- 1.0.0.0
-
-
-
-
-
- 1.0.0.0
-
-
-
- CodeGear Delphi image support library
-
-
-
- False
- True
-
-
- 12
-
-
-
-
-
+
+
+ {D72E1F59-49AE-4B61-B65B-C798392E7878}
+ PgSSHDatabaseRADStudioXE3.dpk
+ Debug
+ DCC32
+ 13.4
+ True
+ Package
+ VCL
+ Win32
+ 1
+
+
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Base
+ true
+
+
+ CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=
+ Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;$(DCC_Namespace)
+ true
+ 1049
+ C:\Users\Public\Documents\RAD Studio\7.0\Bpl\PgSSHDatabaseRADStudioXE.bpl
+ true
+ true
+ true
+ 00400000
+ x86
+
+
+ true
+ Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)
+ 1033
+ CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=
+
+
+ false
+ RELEASE;$(DCC_Define)
+ 0
+ false
+
+
+ DEBUG;$(DCC_Define)
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+ Cfg_2
+ Base
+
+
+ Base
+
+
+ Cfg_1
+ Base
+
+
+
+
+ Delphi.Personality.12
+ Package
+
+
+
+ PgSSHDatabaseRADStudioXE3.dpk
+
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 1049
+ 1251
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
+ 1.0.0.0
+
+
+
+ CodeGear Delphi image support library
+
+
+
+ False
+ True
+
+
+ 12
+
+
+
+
+
diff --git a/TPSQLSSHDatabase/SRC/SSHDB.dcr b/Source/TPSQLSSHDatabase/SRC/SSHDB.dcr
similarity index 100%
rename from TPSQLSSHDatabase/SRC/SSHDB.dcr
rename to Source/TPSQLSSHDatabase/SRC/SSHDB.dcr
diff --git a/TPSQLSSHDatabase/install_ssh.txt b/Source/TPSQLSSHDatabase/install_ssh.txt
similarity index 98%
rename from TPSQLSSHDatabase/install_ssh.txt
rename to Source/TPSQLSSHDatabase/install_ssh.txt
index 7dc3e6c..e992d8c 100644
--- a/TPSQLSSHDatabase/install_ssh.txt
+++ b/Source/TPSQLSSHDatabase/install_ssh.txt
@@ -1,16 +1,16 @@
-TPgSSHDatabase component installation.
-
-1. TPgSSHDatabase uses the wodSSHTunnel ActiveX component
- from WeOnlyDo! Software (http://www.weonlydo.com).
- Before installing TPgSSHDatabase you should download the trial
- version of wodSSHTunnel or purchase a registered copy at
- http://www.weonlydo.com/index.asp?showform=SSHTunnel.
-2. To install the wodSSHTunnel ActiveX component, run Delphi,
- then open Component | Import ActiveX Control, select
- 'WeOnlyDo! COM SSH Tunnel ActiveX Control' and click 'Create Unit'.
- See wodSSHTunnel documentation for details.
-3. Open wodSSHTunnel.dpk and click Compile.
-3. Open PgSSHDatabaseDX.dpk (X stands for your Delphi version)
- and click the 'Install' button.
-4. The new PgSSHDatabase component will appear at the
- PostgresDAC palette after the installation.
+TPgSSHDatabase component installation.
+
+1. TPgSSHDatabase uses the wodSSHTunnel ActiveX component
+ from WeOnlyDo! Software (http://www.weonlydo.com).
+ Before installing TPgSSHDatabase you should download the trial
+ version of wodSSHTunnel or purchase a registered copy at
+ http://www.weonlydo.com/index.asp?showform=SSHTunnel.
+2. To install the wodSSHTunnel ActiveX component, run Delphi,
+ then open Component | Import ActiveX Control, select
+ 'WeOnlyDo! COM SSH Tunnel ActiveX Control' and click 'Create Unit'.
+ See wodSSHTunnel documentation for details.
+3. Open wodSSHTunnel.dpk and click Compile.
+3. Open PgSSHDatabaseDX.dpk (X stands for your Delphi version)
+ and click the 'Install' button.
+4. The new PgSSHDatabase component will appear at the
+ PostgresDAC palette after the installation.
diff --git a/TPSQLSSHDatabase/wodSSHTunnel.cfg b/Source/TPSQLSSHDatabase/wodSSHTunnel.cfg
similarity index 90%
rename from TPSQLSSHDatabase/wodSSHTunnel.cfg
rename to Source/TPSQLSSHDatabase/wodSSHTunnel.cfg
index b0ff0bf..27dc635 100644
--- a/TPSQLSSHDatabase/wodSSHTunnel.cfg
+++ b/Source/TPSQLSSHDatabase/wodSSHTunnel.cfg
@@ -1,36 +1,36 @@
--$A+
--$B-
--$C+
--$D+
--$E-
--$F-
--$G+
--$H+
--$I+
--$J-
--$K-
--$L+
--$M-
--$N+
--$O+
--$P+
--$Q-
--$R-
--$S-
--$T-
--$U-
--$V+
--$W-
--$X+
--$YD
--$Z1
--cg
--AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
--H+
--W+
--M
--$M16384,1048576
--K$00400000
--LE"c:\program files\borland\delphi5\Projects\Bpl"
--LN"c:\program files\borland\delphi5\Projects\Bpl"
--Z
+-$A+
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-LE"c:\program files\borland\delphi5\Projects\Bpl"
+-LN"c:\program files\borland\delphi5\Projects\Bpl"
+-Z
diff --git a/TPSQLSSHDatabase/wodSSHTunnel.dpk b/Source/TPSQLSSHDatabase/wodSSHTunnel.dpk
similarity index 93%
rename from TPSQLSSHDatabase/wodSSHTunnel.dpk
rename to Source/TPSQLSSHDatabase/wodSSHTunnel.dpk
index 07af8e8..00b2728 100644
--- a/TPSQLSSHDatabase/wodSSHTunnel.dpk
+++ b/Source/TPSQLSSHDatabase/wodSSHTunnel.dpk
@@ -1,34 +1,34 @@
-package wodSSHTunnel;
-
-{$R *.RES}
-{$ALIGN ON}
-{$ASSERTIONS ON}
-{$BOOLEVAL OFF}
-{$DEBUGINFO ON}
-{$EXTENDEDSYNTAX ON}
-{$IMPORTEDDATA ON}
-{$IOCHECKS ON}
-{$LOCALSYMBOLS ON}
-{$LONGSTRINGS ON}
-{$OPENSTRINGS ON}
-{$OPTIMIZATION ON}
-{$OVERFLOWCHECKS OFF}
-{$RANGECHECKS OFF}
-{$REFERENCEINFO ON}
-{$SAFEDIVIDE OFF}
-{$STACKFRAMES OFF}
-{$TYPEDADDRESS OFF}
-{$VARSTRINGCHECKS ON}
-{$WRITEABLECONST OFF}
-{$MINENUMSIZE 1}
-{$IMAGEBASE $400000}
-{$IMPLICITBUILD OFF}
-
-requires
- rtl,
- vcl;
-
-contains
- wodSSHTunnelLib_TLB;
-
-end.
+package wodSSHTunnel;
+
+{$R *.RES}
+{$ALIGN ON}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl;
+
+contains
+ wodSSHTunnelLib_TLB;
+
+end.
diff --git a/TPSQLSSHDatabase/wodSSHTunnel.res b/Source/TPSQLSSHDatabase/wodSSHTunnel.res
similarity index 100%
rename from TPSQLSSHDatabase/wodSSHTunnel.res
rename to Source/TPSQLSSHDatabase/wodSSHTunnel.res
diff --git a/pg_dump_dll/pg_dump_10/Makefile b/Source/pg_dump_dll/pg_dump_10/Makefile
similarity index 100%
rename from pg_dump_dll/pg_dump_10/Makefile
rename to Source/pg_dump_dll/pg_dump_10/Makefile
diff --git a/pg_dump_dll/pg_dump_10/common.c b/Source/pg_dump_dll/pg_dump_10/common.c
similarity index 100%
rename from pg_dump_dll/pg_dump_10/common.c
rename to Source/pg_dump_dll/pg_dump_10/common.c
diff --git a/pg_dump_dll/pg_dump_10/compress_io.c b/Source/pg_dump_dll/pg_dump_10/compress_io.c
similarity index 100%
rename from pg_dump_dll/pg_dump_10/compress_io.c
rename to Source/pg_dump_dll/pg_dump_10/compress_io.c
diff --git a/pg_dump_dll/pg_dump_10/compress_io.h b/Source/pg_dump_dll/pg_dump_10/compress_io.h
similarity index 100%
rename from pg_dump_dll/pg_dump_10/compress_io.h
rename to Source/pg_dump_dll/pg_dump_10/compress_io.h
diff --git a/pg_dump_dll/pg_dump_10/dumputils.c b/Source/pg_dump_dll/pg_dump_10/dumputils.c
similarity index 100%
rename from pg_dump_dll/pg_dump_10/dumputils.c
rename to Source/pg_dump_dll/pg_dump_10/dumputils.c
diff --git a/pg_dump_dll/pg_dump_10/dumputils.h b/Source/pg_dump_dll/pg_dump_10/dumputils.h
similarity index 100%
rename from pg_dump_dll/pg_dump_10/dumputils.h
rename to Source/pg_dump_dll/pg_dump_10/dumputils.h
diff --git a/pg_dump_dll/pg_dump_10/mi_global_pwd.c b/Source/pg_dump_dll/pg_dump_10/mi_global_pwd.c
similarity index 100%
rename from pg_dump_dll/pg_dump_10/mi_global_pwd.c
rename to Source/pg_dump_dll/pg_dump_10/mi_global_pwd.c
diff --git a/pg_dump_dll/pg_dump_10/mi_global_pwd.h b/Source/pg_dump_dll/pg_dump_10/mi_global_pwd.h
similarity index 100%
rename from pg_dump_dll/pg_dump_10/mi_global_pwd.h
rename to Source/pg_dump_dll/pg_dump_10/mi_global_pwd.h
diff --git a/pg_dump_dll/pg_dump_10/nls.mk b/Source/pg_dump_dll/pg_dump_10/nls.mk
similarity index 100%
rename from pg_dump_dll/pg_dump_10/nls.mk
rename to Source/pg_dump_dll/pg_dump_10/nls.mk
diff --git a/pg_dump_dll/pg_dump_10/parallel.c b/Source/pg_dump_dll/pg_dump_10/parallel.c
similarity index 100%
rename from pg_dump_dll/pg_dump_10/parallel.c
rename to Source/pg_dump_dll/pg_dump_10/parallel.c
diff --git a/pg_dump_dll/pg_dump_10/parallel.h b/Source/pg_dump_dll/pg_dump_10/parallel.h
similarity index 100%
rename from pg_dump_dll/pg_dump_10/parallel.h
rename to Source/pg_dump_dll/pg_dump_10/parallel.h
diff --git a/pg_dump_dll/pg_dump_10/pg_backup.h b/Source/pg_dump_dll/pg_dump_10/pg_backup.h
similarity index 100%
rename from pg_dump_dll/pg_dump_10/pg_backup.h
rename to Source/pg_dump_dll/pg_dump_10/pg_backup.h
diff --git a/pg_dump_dll/pg_dump_10/pg_backup_archiver.c b/Source/pg_dump_dll/pg_dump_10/pg_backup_archiver.c
similarity index 100%
rename from pg_dump_dll/pg_dump_10/pg_backup_archiver.c
rename to Source/pg_dump_dll/pg_dump_10/pg_backup_archiver.c
diff --git a/pg_dump_dll/pg_dump_10/pg_backup_archiver.h b/Source/pg_dump_dll/pg_dump_10/pg_backup_archiver.h
similarity index 100%
rename from pg_dump_dll/pg_dump_10/pg_backup_archiver.h
rename to Source/pg_dump_dll/pg_dump_10/pg_backup_archiver.h
diff --git a/pg_dump_dll/pg_dump_10/pg_backup_custom.c b/Source/pg_dump_dll/pg_dump_10/pg_backup_custom.c
similarity index 100%
rename from pg_dump_dll/pg_dump_10/pg_backup_custom.c
rename to Source/pg_dump_dll/pg_dump_10/pg_backup_custom.c
diff --git a/pg_dump_dll/pg_dump_10/pg_backup_db.c b/Source/pg_dump_dll/pg_dump_10/pg_backup_db.c
similarity index 100%
rename from pg_dump_dll/pg_dump_10/pg_backup_db.c
rename to Source/pg_dump_dll/pg_dump_10/pg_backup_db.c
diff --git a/pg_dump_dll/pg_dump_10/pg_backup_db.h b/Source/pg_dump_dll/pg_dump_10/pg_backup_db.h
similarity index 100%
rename from pg_dump_dll/pg_dump_10/pg_backup_db.h
rename to Source/pg_dump_dll/pg_dump_10/pg_backup_db.h
diff --git a/pg_dump_dll/pg_dump_10/pg_backup_directory.c b/Source/pg_dump_dll/pg_dump_10/pg_backup_directory.c
similarity index 100%
rename from pg_dump_dll/pg_dump_10/pg_backup_directory.c
rename to Source/pg_dump_dll/pg_dump_10/pg_backup_directory.c
diff --git a/pg_dump_dll/pg_dump_10/pg_backup_null.c b/Source/pg_dump_dll/pg_dump_10/pg_backup_null.c
similarity index 100%
rename from pg_dump_dll/pg_dump_10/pg_backup_null.c
rename to Source/pg_dump_dll/pg_dump_10/pg_backup_null.c
diff --git a/pg_dump_dll/pg_dump_10/pg_backup_tar.c b/Source/pg_dump_dll/pg_dump_10/pg_backup_tar.c
similarity index 100%
rename from pg_dump_dll/pg_dump_10/pg_backup_tar.c
rename to Source/pg_dump_dll/pg_dump_10/pg_backup_tar.c
diff --git a/pg_dump_dll/pg_dump_10/pg_backup_tar.h b/Source/pg_dump_dll/pg_dump_10/pg_backup_tar.h
similarity index 100%
rename from pg_dump_dll/pg_dump_10/pg_backup_tar.h
rename to Source/pg_dump_dll/pg_dump_10/pg_backup_tar.h
diff --git a/pg_dump_dll/pg_dump_10/pg_backup_utils.c b/Source/pg_dump_dll/pg_dump_10/pg_backup_utils.c
similarity index 100%
rename from pg_dump_dll/pg_dump_10/pg_backup_utils.c
rename to Source/pg_dump_dll/pg_dump_10/pg_backup_utils.c
diff --git a/pg_dump_dll/pg_dump_10/pg_backup_utils.h b/Source/pg_dump_dll/pg_dump_10/pg_backup_utils.h
similarity index 100%
rename from pg_dump_dll/pg_dump_10/pg_backup_utils.h
rename to Source/pg_dump_dll/pg_dump_10/pg_backup_utils.h
diff --git a/pg_dump_dll/pg_dump_10/pg_dump.c b/Source/pg_dump_dll/pg_dump_10/pg_dump.c
similarity index 100%
rename from pg_dump_dll/pg_dump_10/pg_dump.c
rename to Source/pg_dump_dll/pg_dump_10/pg_dump.c
diff --git a/pg_dump_dll/pg_dump_10/pg_dump.h b/Source/pg_dump_dll/pg_dump_10/pg_dump.h
similarity index 100%
rename from pg_dump_dll/pg_dump_10/pg_dump.h
rename to Source/pg_dump_dll/pg_dump_10/pg_dump.h
diff --git a/pg_dump_dll/pg_dump_10/pg_dump_dll.h b/Source/pg_dump_dll/pg_dump_10/pg_dump_dll.h
similarity index 93%
rename from pg_dump_dll/pg_dump_10/pg_dump_dll.h
rename to Source/pg_dump_dll/pg_dump_10/pg_dump_dll.h
index dc2a263..773eaf1 100644
--- a/pg_dump_dll/pg_dump_10/pg_dump_dll.h
+++ b/Source/pg_dump_dll/pg_dump_10/pg_dump_dll.h
@@ -1,79 +1,79 @@
-#include "mi_global_pwd.h"
-
-//app_exe - name of the host application
-//err_file - name of the file, to which stderr will be reassigned
-
-
-__declspec(dllexport) int v3_dump (char * app_exe, char * err_file, char * params);
-
-int v3_dump (char * app_exe, char * err_file, char * params)//this NULL ended array of pointers
-{
- char ** mas;
- int cnt = 0;
- int c = 1; //app_exe will be the first parameter
- char ** arr;
- char ** arr2;
- int r;
-
- //count params number
- arr = (char **) params;
- while (*arr)
- {
- c++;
- arr++;
- }
-
-
- //prepare argv array
- mas = (char ** ) malloc(c * sizeof(char *));
-
- arr = (char **) params;
- arr2 = mas;
-
- * arr2 = strdup(app_exe);
- arr2++;
- cnt++;
-
- while (*arr)
- {
- *arr2 = strdup(*arr);
- arr2++;
- cnt++;
-
- arr++;
- }
-
- log_stream = NULL;
-
- if (err_file)
- {
- log_stream = freopen(err_file, "w", stderr);
- if (!log_stream)
- {
- r = 3;
- goto _end;
- }
- }
-
- r = main(cnt, mas);
-
-_end:
- //clear grabbed memory
- arr2 = mas;
- while(cnt--)
- {
- free(*arr2);
- arr2 ++;
- }
- free(mas);
-
- //closing file
- if(log_stream)
- {
- fflush(stderr);
- fclose(stderr);
- freopen("CON", "w", stderr);
- }
-
- return r;
-};
+#include "mi_global_pwd.h"
+
+//app_exe - name of the host application
+//err_file - name of the file, to which stderr will be reassigned
+
+
+__declspec(dllexport) int v3_dump (char * app_exe, char * err_file, char * params);
+
+int v3_dump (char * app_exe, char * err_file, char * params)//this NULL ended array of pointers
+{
+ char ** mas;
+ int cnt = 0;
+ int c = 1; //app_exe will be the first parameter
+ char ** arr;
+ char ** arr2;
+ int r;
+
+ //count params number
+ arr = (char **) params;
+ while (*arr)
+ {
+ c++;
+ arr++;
+ }
+
+
+ //prepare argv array
+ mas = (char ** ) malloc(c * sizeof(char *));
+
+ arr = (char **) params;
+ arr2 = mas;
+
+ * arr2 = strdup(app_exe);
+ arr2++;
+ cnt++;
+
+ while (*arr)
+ {
+ *arr2 = strdup(*arr);
+ arr2++;
+ cnt++;
+
+ arr++;
+ }
+
+ log_stream = NULL;
+
+ if (err_file)
+ {
+ log_stream = freopen(err_file, "w", stderr);
+ if (!log_stream)
+ {
+ r = 3;
+ goto _end;
+ }
+ }
+
+ r = main(cnt, mas);
+
+_end:
+ //clear grabbed memory
+ arr2 = mas;
+ while(cnt--)
+ {
+ free(*arr2);
+ arr2 ++;
+ }
+ free(mas);
+
+ //closing file
+ if(log_stream)
+ {
+ fflush(stderr);
+ fclose(stderr);
+ freopen("CON", "w", stderr);
+ }
+
+ return r;
+};
diff --git a/pg_dump_dll/pg_dump_10/pg_dump_sort.c b/Source/pg_dump_dll/pg_dump_10/pg_dump_sort.c
similarity index 100%
rename from pg_dump_dll/pg_dump_10/pg_dump_sort.c
rename to Source/pg_dump_dll/pg_dump_10/pg_dump_sort.c
diff --git a/pg_dump_dll/pg_dump_10/pg_dumpall.c b/Source/pg_dump_dll/pg_dump_10/pg_dumpall.c
similarity index 100%
rename from pg_dump_dll/pg_dump_10/pg_dumpall.c
rename to Source/pg_dump_dll/pg_dump_10/pg_dumpall.c
diff --git a/pg_dump_dll/pg_dump_10/pg_restore.c b/Source/pg_dump_dll/pg_dump_10/pg_restore.c
similarity index 100%
rename from pg_dump_dll/pg_dump_10/pg_restore.c
rename to Source/pg_dump_dll/pg_dump_10/pg_restore.c
diff --git a/pg_dump_dll/pg_dump_13/pg_restore_dll.h b/Source/pg_dump_dll/pg_dump_10/pg_restore_dll.h
similarity index 93%
rename from pg_dump_dll/pg_dump_13/pg_restore_dll.h
rename to Source/pg_dump_dll/pg_dump_10/pg_restore_dll.h
index a484ee1..8bc8bcd 100644
--- a/pg_dump_dll/pg_dump_13/pg_restore_dll.h
+++ b/Source/pg_dump_dll/pg_dump_10/pg_restore_dll.h
@@ -1,77 +1,77 @@
-#include "mi_global_pwd.h"
-
-//app_exe - name of the host application
-//err_file - name of the file, to which stderr will be reassigned
-
-__declspec(dllexport) int v3_restore (char * app_exe, char * err_file, char * params); //this NULL ended array of pointers
-
-int v3_restore (char * app_exe, char * err_file, char * params)
-{
- char ** mas;
- int cnt = 0;
- int c = 1; //app_exe will be the first parameter
- char ** arr;
- char ** arr2;
- int r;
-
- //count params number
- arr = (char **) params;
- while (*arr)
- {
- c++;
- arr++;
- }
-
- mas = (char ** ) malloc(c * sizeof(char *));
-
- arr = (char **) params;
- arr2 = mas;
-
- * arr2 = strdup(app_exe);
- arr2++;
- cnt++;
-
-
- while (*arr)
- {
- *arr2 = strdup(*arr);
- arr2++;
- cnt++;
- arr++;
- }
-
- log_stream = NULL;
-
- if (err_file)
- {
- log_stream = freopen(err_file, "w", stderr);
- if (!log_stream)
- {
- r = 3;
- goto _end;
- }
- }
-
-
- r = main(cnt, mas);
-
-_end:
- //clear grabbed memory
- arr2 = mas;
- while(cnt--)
- {
- free(*arr2);
- arr2 ++;
- }
- free(mas);
-
- //closing file
- if(log_stream)
- {
- fflush(stderr);
- fclose(stderr);
- freopen("CON", "w", stderr);
- }
-
- return r;
-};
+#include "mi_global_pwd.h"
+
+//app_exe - name of the host application
+//err_file - name of the file, to which stderr will be reassigned
+
+__declspec(dllexport) int v3_restore (char * app_exe, char * err_file, char * params); //this NULL ended array of pointers
+
+int v3_restore (char * app_exe, char * err_file, char * params)
+{
+ char ** mas;
+ int cnt = 0;
+ int c = 1; //app_exe will be the first parameter
+ char ** arr;
+ char ** arr2;
+ int r;
+
+ //count params number
+ arr = (char **) params;
+ while (*arr)
+ {
+ c++;
+ arr++;
+ }
+
+ mas = (char ** ) malloc(c * sizeof(char *));
+
+ arr = (char **) params;
+ arr2 = mas;
+
+ * arr2 = strdup(app_exe);
+ arr2++;
+ cnt++;
+
+
+ while (*arr)
+ {
+ *arr2 = strdup(*arr);
+ arr2++;
+ cnt++;
+ arr++;
+ }
+
+ log_stream = NULL;
+
+ if (err_file)
+ {
+ log_stream = freopen(err_file, "w", stderr);
+ if (!log_stream)
+ {
+ r = 3;
+ goto _end;
+ }
+ }
+
+
+ r = main(cnt, mas);
+
+_end:
+ //clear grabbed memory
+ arr2 = mas;
+ while(cnt--)
+ {
+ free(*arr2);
+ arr2 ++;
+ }
+ free(mas);
+
+ //closing file
+ if(log_stream)
+ {
+ fflush(stderr);
+ fclose(stderr);
+ freopen("CON", "w", stderr);
+ }
+
+ return r;
+};
diff --git a/pg_dump_dll/pg_dump_10/win32ver.rc b/Source/pg_dump_dll/pg_dump_10/win32ver.rc
similarity index 100%
rename from pg_dump_dll/pg_dump_10/win32ver.rc
rename to Source/pg_dump_dll/pg_dump_10/win32ver.rc
diff --git a/pg_dump_dll/pg_dump_12/Makefile b/Source/pg_dump_dll/pg_dump_12/Makefile
similarity index 100%
rename from pg_dump_dll/pg_dump_12/Makefile
rename to Source/pg_dump_dll/pg_dump_12/Makefile
diff --git a/pg_dump_dll/pg_dump_12/common.c b/Source/pg_dump_dll/pg_dump_12/common.c
similarity index 100%
rename from pg_dump_dll/pg_dump_12/common.c
rename to Source/pg_dump_dll/pg_dump_12/common.c
diff --git a/pg_dump_dll/pg_dump_12/compress_io.c b/Source/pg_dump_dll/pg_dump_12/compress_io.c
similarity index 100%
rename from pg_dump_dll/pg_dump_12/compress_io.c
rename to Source/pg_dump_dll/pg_dump_12/compress_io.c
diff --git a/pg_dump_dll/pg_dump_12/compress_io.h b/Source/pg_dump_dll/pg_dump_12/compress_io.h
similarity index 100%
rename from pg_dump_dll/pg_dump_12/compress_io.h
rename to Source/pg_dump_dll/pg_dump_12/compress_io.h
diff --git a/pg_dump_dll/pg_dump_12/dumputils.c b/Source/pg_dump_dll/pg_dump_12/dumputils.c
similarity index 100%
rename from pg_dump_dll/pg_dump_12/dumputils.c
rename to Source/pg_dump_dll/pg_dump_12/dumputils.c
diff --git a/pg_dump_dll/pg_dump_12/dumputils.h b/Source/pg_dump_dll/pg_dump_12/dumputils.h
similarity index 100%
rename from pg_dump_dll/pg_dump_12/dumputils.h
rename to Source/pg_dump_dll/pg_dump_12/dumputils.h
diff --git a/pg_dump_dll/pg_dump_12/mi_global_pwd.c b/Source/pg_dump_dll/pg_dump_12/mi_global_pwd.c
similarity index 100%
rename from pg_dump_dll/pg_dump_12/mi_global_pwd.c
rename to Source/pg_dump_dll/pg_dump_12/mi_global_pwd.c
diff --git a/pg_dump_dll/pg_dump_12/mi_global_pwd.h b/Source/pg_dump_dll/pg_dump_12/mi_global_pwd.h
similarity index 100%
rename from pg_dump_dll/pg_dump_12/mi_global_pwd.h
rename to Source/pg_dump_dll/pg_dump_12/mi_global_pwd.h
diff --git a/pg_dump_dll/pg_dump_12/nls.mk b/Source/pg_dump_dll/pg_dump_12/nls.mk
similarity index 100%
rename from pg_dump_dll/pg_dump_12/nls.mk
rename to Source/pg_dump_dll/pg_dump_12/nls.mk
diff --git a/pg_dump_dll/pg_dump_12/parallel.c b/Source/pg_dump_dll/pg_dump_12/parallel.c
similarity index 100%
rename from pg_dump_dll/pg_dump_12/parallel.c
rename to Source/pg_dump_dll/pg_dump_12/parallel.c
diff --git a/pg_dump_dll/pg_dump_12/parallel.h b/Source/pg_dump_dll/pg_dump_12/parallel.h
similarity index 100%
rename from pg_dump_dll/pg_dump_12/parallel.h
rename to Source/pg_dump_dll/pg_dump_12/parallel.h
diff --git a/pg_dump_dll/pg_dump_12/pg_backup.h b/Source/pg_dump_dll/pg_dump_12/pg_backup.h
similarity index 100%
rename from pg_dump_dll/pg_dump_12/pg_backup.h
rename to Source/pg_dump_dll/pg_dump_12/pg_backup.h
diff --git a/pg_dump_dll/pg_dump_12/pg_backup_archiver.c b/Source/pg_dump_dll/pg_dump_12/pg_backup_archiver.c
similarity index 100%
rename from pg_dump_dll/pg_dump_12/pg_backup_archiver.c
rename to Source/pg_dump_dll/pg_dump_12/pg_backup_archiver.c
diff --git a/pg_dump_dll/pg_dump_12/pg_backup_archiver.h b/Source/pg_dump_dll/pg_dump_12/pg_backup_archiver.h
similarity index 100%
rename from pg_dump_dll/pg_dump_12/pg_backup_archiver.h
rename to Source/pg_dump_dll/pg_dump_12/pg_backup_archiver.h
diff --git a/pg_dump_dll/pg_dump_12/pg_backup_custom.c b/Source/pg_dump_dll/pg_dump_12/pg_backup_custom.c
similarity index 100%
rename from pg_dump_dll/pg_dump_12/pg_backup_custom.c
rename to Source/pg_dump_dll/pg_dump_12/pg_backup_custom.c
diff --git a/pg_dump_dll/pg_dump_12/pg_backup_db.c b/Source/pg_dump_dll/pg_dump_12/pg_backup_db.c
similarity index 100%
rename from pg_dump_dll/pg_dump_12/pg_backup_db.c
rename to Source/pg_dump_dll/pg_dump_12/pg_backup_db.c
diff --git a/pg_dump_dll/pg_dump_12/pg_backup_db.h b/Source/pg_dump_dll/pg_dump_12/pg_backup_db.h
similarity index 100%
rename from pg_dump_dll/pg_dump_12/pg_backup_db.h
rename to Source/pg_dump_dll/pg_dump_12/pg_backup_db.h
diff --git a/pg_dump_dll/pg_dump_12/pg_backup_directory.c b/Source/pg_dump_dll/pg_dump_12/pg_backup_directory.c
similarity index 100%
rename from pg_dump_dll/pg_dump_12/pg_backup_directory.c
rename to Source/pg_dump_dll/pg_dump_12/pg_backup_directory.c
diff --git a/pg_dump_dll/pg_dump_12/pg_backup_null.c b/Source/pg_dump_dll/pg_dump_12/pg_backup_null.c
similarity index 100%
rename from pg_dump_dll/pg_dump_12/pg_backup_null.c
rename to Source/pg_dump_dll/pg_dump_12/pg_backup_null.c
diff --git a/pg_dump_dll/pg_dump_12/pg_backup_tar.c b/Source/pg_dump_dll/pg_dump_12/pg_backup_tar.c
similarity index 100%
rename from pg_dump_dll/pg_dump_12/pg_backup_tar.c
rename to Source/pg_dump_dll/pg_dump_12/pg_backup_tar.c
diff --git a/pg_dump_dll/pg_dump_12/pg_backup_tar.h b/Source/pg_dump_dll/pg_dump_12/pg_backup_tar.h
similarity index 100%
rename from pg_dump_dll/pg_dump_12/pg_backup_tar.h
rename to Source/pg_dump_dll/pg_dump_12/pg_backup_tar.h
diff --git a/pg_dump_dll/pg_dump_12/pg_backup_utils.c b/Source/pg_dump_dll/pg_dump_12/pg_backup_utils.c
similarity index 100%
rename from pg_dump_dll/pg_dump_12/pg_backup_utils.c
rename to Source/pg_dump_dll/pg_dump_12/pg_backup_utils.c
diff --git a/pg_dump_dll/pg_dump_12/pg_backup_utils.h b/Source/pg_dump_dll/pg_dump_12/pg_backup_utils.h
similarity index 100%
rename from pg_dump_dll/pg_dump_12/pg_backup_utils.h
rename to Source/pg_dump_dll/pg_dump_12/pg_backup_utils.h
diff --git a/pg_dump_dll/pg_dump_12/pg_dump.c b/Source/pg_dump_dll/pg_dump_12/pg_dump.c
similarity index 100%
rename from pg_dump_dll/pg_dump_12/pg_dump.c
rename to Source/pg_dump_dll/pg_dump_12/pg_dump.c
diff --git a/pg_dump_dll/pg_dump_12/pg_dump.h b/Source/pg_dump_dll/pg_dump_12/pg_dump.h
similarity index 100%
rename from pg_dump_dll/pg_dump_12/pg_dump.h
rename to Source/pg_dump_dll/pg_dump_12/pg_dump.h
diff --git a/pg_dump_dll/pg_dump_13/pg_dump_dll.h b/Source/pg_dump_dll/pg_dump_12/pg_dump_dll.h
similarity index 93%
rename from pg_dump_dll/pg_dump_13/pg_dump_dll.h
rename to Source/pg_dump_dll/pg_dump_12/pg_dump_dll.h
index dc2a263..773eaf1 100644
--- a/pg_dump_dll/pg_dump_13/pg_dump_dll.h
+++ b/Source/pg_dump_dll/pg_dump_12/pg_dump_dll.h
@@ -1,79 +1,79 @@
-#include "mi_global_pwd.h"
-
-//app_exe - name of the host application
-//err_file - name of the file, to which stderr will be reassigned
-
-
-__declspec(dllexport) int v3_dump (char * app_exe, char * err_file, char * params);
-
-int v3_dump (char * app_exe, char * err_file, char * params)//this NULL ended array of pointers
-{
- char ** mas;
- int cnt = 0;
- int c = 1; //app_exe will be the first parameter
- char ** arr;
- char ** arr2;
- int r;
-
- //count params number
- arr = (char **) params;
- while (*arr)
- {
- c++;
- arr++;
- }
-
-
- //prepare argv array
- mas = (char ** ) malloc(c * sizeof(char *));
-
- arr = (char **) params;
- arr2 = mas;
-
- * arr2 = strdup(app_exe);
- arr2++;
- cnt++;
-
- while (*arr)
- {
- *arr2 = strdup(*arr);
- arr2++;
- cnt++;
-
- arr++;
- }
-
- log_stream = NULL;
-
- if (err_file)
- {
- log_stream = freopen(err_file, "w", stderr);
- if (!log_stream)
- {
- r = 3;
- goto _end;
- }
- }
-
- r = main(cnt, mas);
-
-_end:
- //clear grabbed memory
- arr2 = mas;
- while(cnt--)
- {
- free(*arr2);
- arr2 ++;
- }
- free(mas);
-
- //closing file
- if(log_stream)
- {
- fflush(stderr);
- fclose(stderr);
- freopen("CON", "w", stderr);
- }
-
- return r;
-};
+#include "mi_global_pwd.h"
+
+//app_exe - name of the host application
+//err_file - name of the file, to which stderr will be reassigned
+
+
+__declspec(dllexport) int v3_dump (char * app_exe, char * err_file, char * params);
+
+int v3_dump (char * app_exe, char * err_file, char * params)//this NULL ended array of pointers
+{
+ char ** mas;
+ int cnt = 0;
+ int c = 1; //app_exe will be the first parameter
+ char ** arr;
+ char ** arr2;
+ int r;
+
+ //count params number
+ arr = (char **) params;
+ while (*arr)
+ {
+ c++;
+ arr++;
+ }
+
+
+ //prepare argv array
+ mas = (char ** ) malloc(c * sizeof(char *));
+
+ arr = (char **) params;
+ arr2 = mas;
+
+ * arr2 = strdup(app_exe);
+ arr2++;
+ cnt++;
+
+ while (*arr)
+ {
+ *arr2 = strdup(*arr);
+ arr2++;
+ cnt++;
+
+ arr++;
+ }
+
+ log_stream = NULL;
+
+ if (err_file)
+ {
+ log_stream = freopen(err_file, "w", stderr);
+ if (!log_stream)
+ {
+ r = 3;
+ goto _end;
+ }
+ }
+
+ r = main(cnt, mas);
+
+_end:
+ //clear grabbed memory
+ arr2 = mas;
+ while(cnt--)
+ {
+ free(*arr2);
+ arr2 ++;
+ }
+ free(mas);
+
+ //closing file
+ if(log_stream)
+ {
+ fflush(stderr);
+ fclose(stderr);
+ freopen("CON", "w", stderr);
+ }
+
+ return r;
+};
diff --git a/pg_dump_dll/pg_dump_12/pg_dump_sort.c b/Source/pg_dump_dll/pg_dump_12/pg_dump_sort.c
similarity index 100%
rename from pg_dump_dll/pg_dump_12/pg_dump_sort.c
rename to Source/pg_dump_dll/pg_dump_12/pg_dump_sort.c
diff --git a/pg_dump_dll/pg_dump_12/pg_dumpall.c b/Source/pg_dump_dll/pg_dump_12/pg_dumpall.c
similarity index 100%
rename from pg_dump_dll/pg_dump_12/pg_dumpall.c
rename to Source/pg_dump_dll/pg_dump_12/pg_dumpall.c
diff --git a/pg_dump_dll/pg_dump_12/pg_restore.c b/Source/pg_dump_dll/pg_dump_12/pg_restore.c
similarity index 100%
rename from pg_dump_dll/pg_dump_12/pg_restore.c
rename to Source/pg_dump_dll/pg_dump_12/pg_restore.c
diff --git a/pg_dump_dll/pg_dump_10/pg_restore_dll.h b/Source/pg_dump_dll/pg_dump_12/pg_restore_dll.h
similarity index 93%
rename from pg_dump_dll/pg_dump_10/pg_restore_dll.h
rename to Source/pg_dump_dll/pg_dump_12/pg_restore_dll.h
index a484ee1..8bc8bcd 100644
--- a/pg_dump_dll/pg_dump_10/pg_restore_dll.h
+++ b/Source/pg_dump_dll/pg_dump_12/pg_restore_dll.h
@@ -1,77 +1,77 @@
-#include "mi_global_pwd.h"
-
-//app_exe - name of the host application
-//err_file - name of the file, to which stderr will be reassigned
-
-__declspec(dllexport) int v3_restore (char * app_exe, char * err_file, char * params); //this NULL ended array of pointers
-
-int v3_restore (char * app_exe, char * err_file, char * params)
-{
- char ** mas;
- int cnt = 0;
- int c = 1; //app_exe will be the first parameter
- char ** arr;
- char ** arr2;
- int r;
-
- //count params number
- arr = (char **) params;
- while (*arr)
- {
- c++;
- arr++;
- }
-
- mas = (char ** ) malloc(c * sizeof(char *));
-
- arr = (char **) params;
- arr2 = mas;
-
- * arr2 = strdup(app_exe);
- arr2++;
- cnt++;
-
-
- while (*arr)
- {
- *arr2 = strdup(*arr);
- arr2++;
- cnt++;
- arr++;
- }
-
- log_stream = NULL;
-
- if (err_file)
- {
- log_stream = freopen(err_file, "w", stderr);
- if (!log_stream)
- {
- r = 3;
- goto _end;
- }
- }
-
-
- r = main(cnt, mas);
-
-_end:
- //clear grabbed memory
- arr2 = mas;
- while(cnt--)
- {
- free(*arr2);
- arr2 ++;
- }
- free(mas);
-
- //closing file
- if(log_stream)
- {
- fflush(stderr);
- fclose(stderr);
- freopen("CON", "w", stderr);
- }
-
- return r;
-};
+#include "mi_global_pwd.h"
+
+//app_exe - name of the host application
+//err_file - name of the file, to which stderr will be reassigned
+
+__declspec(dllexport) int v3_restore (char * app_exe, char * err_file, char * params); //this NULL ended array of pointers
+
+int v3_restore (char * app_exe, char * err_file, char * params)
+{
+ char ** mas;
+ int cnt = 0;
+ int c = 1; //app_exe will be the first parameter
+ char ** arr;
+ char ** arr2;
+ int r;
+
+ //count params number
+ arr = (char **) params;
+ while (*arr)
+ {
+ c++;
+ arr++;
+ }
+
+ mas = (char ** ) malloc(c * sizeof(char *));
+
+ arr = (char **) params;
+ arr2 = mas;
+
+ * arr2 = strdup(app_exe);
+ arr2++;
+ cnt++;
+
+
+ while (*arr)
+ {
+ *arr2 = strdup(*arr);
+ arr2++;
+ cnt++;
+ arr++;
+ }
+
+ log_stream = NULL;
+
+ if (err_file)
+ {
+ log_stream = freopen(err_file, "w", stderr);
+ if (!log_stream)
+ {
+ r = 3;
+ goto _end;
+ }
+ }
+
+
+ r = main(cnt, mas);
+
+_end:
+ //clear grabbed memory
+ arr2 = mas;
+ while(cnt--)
+ {
+ free(*arr2);
+ arr2 ++;
+ }
+ free(mas);
+
+ //closing file
+ if(log_stream)
+ {
+ fflush(stderr);
+ fclose(stderr);
+ freopen("CON", "w", stderr);
+ }
+
+ return r;
+};
diff --git a/pg_dump_dll/pg_dump_12/win32ver.rc b/Source/pg_dump_dll/pg_dump_12/win32ver.rc
similarity index 100%
rename from pg_dump_dll/pg_dump_12/win32ver.rc
rename to Source/pg_dump_dll/pg_dump_12/win32ver.rc
diff --git a/pg_dump_dll/pg_dump_13/Makefile b/Source/pg_dump_dll/pg_dump_13/Makefile
similarity index 100%
rename from pg_dump_dll/pg_dump_13/Makefile
rename to Source/pg_dump_dll/pg_dump_13/Makefile
diff --git a/pg_dump_dll/pg_dump_13/common.c b/Source/pg_dump_dll/pg_dump_13/common.c
similarity index 100%
rename from pg_dump_dll/pg_dump_13/common.c
rename to Source/pg_dump_dll/pg_dump_13/common.c
diff --git a/pg_dump_dll/pg_dump_13/compress_io.c b/Source/pg_dump_dll/pg_dump_13/compress_io.c
similarity index 100%
rename from pg_dump_dll/pg_dump_13/compress_io.c
rename to Source/pg_dump_dll/pg_dump_13/compress_io.c
diff --git a/pg_dump_dll/pg_dump_13/compress_io.h b/Source/pg_dump_dll/pg_dump_13/compress_io.h
similarity index 100%
rename from pg_dump_dll/pg_dump_13/compress_io.h
rename to Source/pg_dump_dll/pg_dump_13/compress_io.h
diff --git a/pg_dump_dll/pg_dump_13/dumputils.c b/Source/pg_dump_dll/pg_dump_13/dumputils.c
similarity index 100%
rename from pg_dump_dll/pg_dump_13/dumputils.c
rename to Source/pg_dump_dll/pg_dump_13/dumputils.c
diff --git a/pg_dump_dll/pg_dump_13/dumputils.h b/Source/pg_dump_dll/pg_dump_13/dumputils.h
similarity index 100%
rename from pg_dump_dll/pg_dump_13/dumputils.h
rename to Source/pg_dump_dll/pg_dump_13/dumputils.h
diff --git a/pg_dump_dll/pg_dump_13/mi_global_pwd.c b/Source/pg_dump_dll/pg_dump_13/mi_global_pwd.c
similarity index 100%
rename from pg_dump_dll/pg_dump_13/mi_global_pwd.c
rename to Source/pg_dump_dll/pg_dump_13/mi_global_pwd.c
diff --git a/pg_dump_dll/pg_dump_13/mi_global_pwd.h b/Source/pg_dump_dll/pg_dump_13/mi_global_pwd.h
similarity index 100%
rename from pg_dump_dll/pg_dump_13/mi_global_pwd.h
rename to Source/pg_dump_dll/pg_dump_13/mi_global_pwd.h
diff --git a/pg_dump_dll/pg_dump_13/nls.mk b/Source/pg_dump_dll/pg_dump_13/nls.mk
similarity index 100%
rename from pg_dump_dll/pg_dump_13/nls.mk
rename to Source/pg_dump_dll/pg_dump_13/nls.mk
diff --git a/pg_dump_dll/pg_dump_13/parallel.c b/Source/pg_dump_dll/pg_dump_13/parallel.c
similarity index 100%
rename from pg_dump_dll/pg_dump_13/parallel.c
rename to Source/pg_dump_dll/pg_dump_13/parallel.c
diff --git a/pg_dump_dll/pg_dump_13/parallel.h b/Source/pg_dump_dll/pg_dump_13/parallel.h
similarity index 100%
rename from pg_dump_dll/pg_dump_13/parallel.h
rename to Source/pg_dump_dll/pg_dump_13/parallel.h
diff --git a/pg_dump_dll/pg_dump_13/pg_backup.h b/Source/pg_dump_dll/pg_dump_13/pg_backup.h
similarity index 100%
rename from pg_dump_dll/pg_dump_13/pg_backup.h
rename to Source/pg_dump_dll/pg_dump_13/pg_backup.h
diff --git a/pg_dump_dll/pg_dump_13/pg_backup_archiver.c b/Source/pg_dump_dll/pg_dump_13/pg_backup_archiver.c
similarity index 100%
rename from pg_dump_dll/pg_dump_13/pg_backup_archiver.c
rename to Source/pg_dump_dll/pg_dump_13/pg_backup_archiver.c
diff --git a/pg_dump_dll/pg_dump_13/pg_backup_archiver.h b/Source/pg_dump_dll/pg_dump_13/pg_backup_archiver.h
similarity index 100%
rename from pg_dump_dll/pg_dump_13/pg_backup_archiver.h
rename to Source/pg_dump_dll/pg_dump_13/pg_backup_archiver.h
diff --git a/pg_dump_dll/pg_dump_13/pg_backup_custom.c b/Source/pg_dump_dll/pg_dump_13/pg_backup_custom.c
similarity index 100%
rename from pg_dump_dll/pg_dump_13/pg_backup_custom.c
rename to Source/pg_dump_dll/pg_dump_13/pg_backup_custom.c
diff --git a/pg_dump_dll/pg_dump_13/pg_backup_db.c b/Source/pg_dump_dll/pg_dump_13/pg_backup_db.c
similarity index 100%
rename from pg_dump_dll/pg_dump_13/pg_backup_db.c
rename to Source/pg_dump_dll/pg_dump_13/pg_backup_db.c
diff --git a/pg_dump_dll/pg_dump_13/pg_backup_db.h b/Source/pg_dump_dll/pg_dump_13/pg_backup_db.h
similarity index 100%
rename from pg_dump_dll/pg_dump_13/pg_backup_db.h
rename to Source/pg_dump_dll/pg_dump_13/pg_backup_db.h
diff --git a/pg_dump_dll/pg_dump_13/pg_backup_directory.c b/Source/pg_dump_dll/pg_dump_13/pg_backup_directory.c
similarity index 100%
rename from pg_dump_dll/pg_dump_13/pg_backup_directory.c
rename to Source/pg_dump_dll/pg_dump_13/pg_backup_directory.c
diff --git a/pg_dump_dll/pg_dump_13/pg_backup_null.c b/Source/pg_dump_dll/pg_dump_13/pg_backup_null.c
similarity index 100%
rename from pg_dump_dll/pg_dump_13/pg_backup_null.c
rename to Source/pg_dump_dll/pg_dump_13/pg_backup_null.c
diff --git a/pg_dump_dll/pg_dump_13/pg_backup_tar.c b/Source/pg_dump_dll/pg_dump_13/pg_backup_tar.c
similarity index 100%
rename from pg_dump_dll/pg_dump_13/pg_backup_tar.c
rename to Source/pg_dump_dll/pg_dump_13/pg_backup_tar.c
diff --git a/pg_dump_dll/pg_dump_13/pg_backup_tar.h b/Source/pg_dump_dll/pg_dump_13/pg_backup_tar.h
similarity index 100%
rename from pg_dump_dll/pg_dump_13/pg_backup_tar.h
rename to Source/pg_dump_dll/pg_dump_13/pg_backup_tar.h
diff --git a/pg_dump_dll/pg_dump_13/pg_backup_utils.c b/Source/pg_dump_dll/pg_dump_13/pg_backup_utils.c
similarity index 100%
rename from pg_dump_dll/pg_dump_13/pg_backup_utils.c
rename to Source/pg_dump_dll/pg_dump_13/pg_backup_utils.c
diff --git a/pg_dump_dll/pg_dump_13/pg_backup_utils.h b/Source/pg_dump_dll/pg_dump_13/pg_backup_utils.h
similarity index 100%
rename from pg_dump_dll/pg_dump_13/pg_backup_utils.h
rename to Source/pg_dump_dll/pg_dump_13/pg_backup_utils.h
diff --git a/pg_dump_dll/pg_dump_13/pg_dump.c b/Source/pg_dump_dll/pg_dump_13/pg_dump.c
similarity index 100%
rename from pg_dump_dll/pg_dump_13/pg_dump.c
rename to Source/pg_dump_dll/pg_dump_13/pg_dump.c
diff --git a/pg_dump_dll/pg_dump_13/pg_dump.h b/Source/pg_dump_dll/pg_dump_13/pg_dump.h
similarity index 100%
rename from pg_dump_dll/pg_dump_13/pg_dump.h
rename to Source/pg_dump_dll/pg_dump_13/pg_dump.h
diff --git a/pg_dump_dll/pg_dump_12/pg_dump_dll.h b/Source/pg_dump_dll/pg_dump_13/pg_dump_dll.h
similarity index 93%
rename from pg_dump_dll/pg_dump_12/pg_dump_dll.h
rename to Source/pg_dump_dll/pg_dump_13/pg_dump_dll.h
index dc2a263..773eaf1 100644
--- a/pg_dump_dll/pg_dump_12/pg_dump_dll.h
+++ b/Source/pg_dump_dll/pg_dump_13/pg_dump_dll.h
@@ -1,79 +1,79 @@
-#include "mi_global_pwd.h"
-
-//app_exe - name of the host application
-//err_file - name of the file, to which stderr will be reassigned
-
-
-__declspec(dllexport) int v3_dump (char * app_exe, char * err_file, char * params);
-
-int v3_dump (char * app_exe, char * err_file, char * params)//this NULL ended array of pointers
-{
- char ** mas;
- int cnt = 0;
- int c = 1; //app_exe will be the first parameter
- char ** arr;
- char ** arr2;
- int r;
-
- //count params number
- arr = (char **) params;
- while (*arr)
- {
- c++;
- arr++;
- }
-
-
- //prepare argv array
- mas = (char ** ) malloc(c * sizeof(char *));
-
- arr = (char **) params;
- arr2 = mas;
-
- * arr2 = strdup(app_exe);
- arr2++;
- cnt++;
-
- while (*arr)
- {
- *arr2 = strdup(*arr);
- arr2++;
- cnt++;
-
- arr++;
- }
-
- log_stream = NULL;
-
- if (err_file)
- {
- log_stream = freopen(err_file, "w", stderr);
- if (!log_stream)
- {
- r = 3;
- goto _end;
- }
- }
-
- r = main(cnt, mas);
-
-_end:
- //clear grabbed memory
- arr2 = mas;
- while(cnt--)
- {
- free(*arr2);
- arr2 ++;
- }
- free(mas);
-
- //closing file
- if(log_stream)
- {
- fflush(stderr);
- fclose(stderr);
- freopen("CON", "w", stderr);
- }
-
- return r;
-};
+#include "mi_global_pwd.h"
+
+//app_exe - name of the host application
+//err_file - name of the file, to which stderr will be reassigned
+
+
+__declspec(dllexport) int v3_dump (char * app_exe, char * err_file, char * params);
+
+int v3_dump (char * app_exe, char * err_file, char * params)//this NULL ended array of pointers
+{
+ char ** mas;
+ int cnt = 0;
+ int c = 1; //app_exe will be the first parameter
+ char ** arr;
+ char ** arr2;
+ int r;
+
+ //count params number
+ arr = (char **) params;
+ while (*arr)
+ {
+ c++;
+ arr++;
+ }
+
+
+ //prepare argv array
+ mas = (char ** ) malloc(c * sizeof(char *));
+
+ arr = (char **) params;
+ arr2 = mas;
+
+ * arr2 = strdup(app_exe);
+ arr2++;
+ cnt++;
+
+ while (*arr)
+ {
+ *arr2 = strdup(*arr);
+ arr2++;
+ cnt++;
+
+ arr++;
+ }
+
+ log_stream = NULL;
+
+ if (err_file)
+ {
+ log_stream = freopen(err_file, "w", stderr);
+ if (!log_stream)
+ {
+ r = 3;
+ goto _end;
+ }
+ }
+
+ r = main(cnt, mas);
+
+_end:
+ //clear grabbed memory
+ arr2 = mas;
+ while(cnt--)
+ {
+ free(*arr2);
+ arr2 ++;
+ }
+ free(mas);
+
+ //closing file
+ if(log_stream)
+ {
+ fflush(stderr);
+ fclose(stderr);
+ freopen("CON", "w", stderr);
+ }
+
+ return r;
+};
diff --git a/pg_dump_dll/pg_dump_13/pg_dump_sort.c b/Source/pg_dump_dll/pg_dump_13/pg_dump_sort.c
similarity index 100%
rename from pg_dump_dll/pg_dump_13/pg_dump_sort.c
rename to Source/pg_dump_dll/pg_dump_13/pg_dump_sort.c
diff --git a/pg_dump_dll/pg_dump_13/pg_dumpall.c b/Source/pg_dump_dll/pg_dump_13/pg_dumpall.c
similarity index 100%
rename from pg_dump_dll/pg_dump_13/pg_dumpall.c
rename to Source/pg_dump_dll/pg_dump_13/pg_dumpall.c
diff --git a/pg_dump_dll/pg_dump_13/pg_restore.c b/Source/pg_dump_dll/pg_dump_13/pg_restore.c
similarity index 100%
rename from pg_dump_dll/pg_dump_13/pg_restore.c
rename to Source/pg_dump_dll/pg_dump_13/pg_restore.c
diff --git a/pg_dump_dll/pg_dump_12/pg_restore_dll.h b/Source/pg_dump_dll/pg_dump_13/pg_restore_dll.h
similarity index 93%
rename from pg_dump_dll/pg_dump_12/pg_restore_dll.h
rename to Source/pg_dump_dll/pg_dump_13/pg_restore_dll.h
index a484ee1..8bc8bcd 100644
--- a/pg_dump_dll/pg_dump_12/pg_restore_dll.h
+++ b/Source/pg_dump_dll/pg_dump_13/pg_restore_dll.h
@@ -1,77 +1,77 @@
-#include "mi_global_pwd.h"
-
-//app_exe - name of the host application
-//err_file - name of the file, to which stderr will be reassigned
-
-__declspec(dllexport) int v3_restore (char * app_exe, char * err_file, char * params); //this NULL ended array of pointers
-
-int v3_restore (char * app_exe, char * err_file, char * params)
-{
- char ** mas;
- int cnt = 0;
- int c = 1; //app_exe will be the first parameter
- char ** arr;
- char ** arr2;
- int r;
-
- //count params number
- arr = (char **) params;
- while (*arr)
- {
- c++;
- arr++;
- }
-
- mas = (char ** ) malloc(c * sizeof(char *));
-
- arr = (char **) params;
- arr2 = mas;
-
- * arr2 = strdup(app_exe);
- arr2++;
- cnt++;
-
-
- while (*arr)
- {
- *arr2 = strdup(*arr);
- arr2++;
- cnt++;
- arr++;
- }
-
- log_stream = NULL;
-
- if (err_file)
- {
- log_stream = freopen(err_file, "w", stderr);
- if (!log_stream)
- {
- r = 3;
- goto _end;
- }
- }
-
-
- r = main(cnt, mas);
-
-_end:
- //clear grabbed memory
- arr2 = mas;
- while(cnt--)
- {
- free(*arr2);
- arr2 ++;
- }
- free(mas);
-
- //closing file
- if(log_stream)
- {
- fflush(stderr);
- fclose(stderr);
- freopen("CON", "w", stderr);
- }
-
- return r;
-};
+#include "mi_global_pwd.h"
+
+//app_exe - name of the host application
+//err_file - name of the file, to which stderr will be reassigned
+
+__declspec(dllexport) int v3_restore (char * app_exe, char * err_file, char * params); //this NULL ended array of pointers
+
+int v3_restore (char * app_exe, char * err_file, char * params)
+{
+ char ** mas;
+ int cnt = 0;
+ int c = 1; //app_exe will be the first parameter
+ char ** arr;
+ char ** arr2;
+ int r;
+
+ //count params number
+ arr = (char **) params;
+ while (*arr)
+ {
+ c++;
+ arr++;
+ }
+
+ mas = (char ** ) malloc(c * sizeof(char *));
+
+ arr = (char **) params;
+ arr2 = mas;
+
+ * arr2 = strdup(app_exe);
+ arr2++;
+ cnt++;
+
+
+ while (*arr)
+ {
+ *arr2 = strdup(*arr);
+ arr2++;
+ cnt++;
+ arr++;
+ }
+
+ log_stream = NULL;
+
+ if (err_file)
+ {
+ log_stream = freopen(err_file, "w", stderr);
+ if (!log_stream)
+ {
+ r = 3;
+ goto _end;
+ }
+ }
+
+
+ r = main(cnt, mas);
+
+_end:
+ //clear grabbed memory
+ arr2 = mas;
+ while(cnt--)
+ {
+ free(*arr2);
+ arr2 ++;
+ }
+ free(mas);
+
+ //closing file
+ if(log_stream)
+ {
+ fflush(stderr);
+ fclose(stderr);
+ freopen("CON", "w", stderr);
+ }
+
+ return r;
+};
diff --git a/pg_dump_dll/pg_dump_13/win32ver.rc b/Source/pg_dump_dll/pg_dump_13/win32ver.rc
similarity index 100%
rename from pg_dump_dll/pg_dump_13/win32ver.rc
rename to Source/pg_dump_dll/pg_dump_13/win32ver.rc