123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389 |
- //----------------------------------------------------------------------------
- #ifndef SiteAdvancedH
- #define SiteAdvancedH
- //----------------------------------------------------------------------------
- #include "ComboEdit.hpp"
- #include "UpDownEdit.hpp"
- #include <System.Classes.hpp>
- #include <Vcl.ActnList.hpp>
- #include <Vcl.ComCtrls.hpp>
- #include <Vcl.Controls.hpp>
- #include <Vcl.ExtCtrls.hpp>
- #include <Vcl.Forms.hpp>
- #include <Vcl.ImgList.hpp>
- #include <Vcl.Mask.hpp>
- #include <Vcl.Menus.hpp>
- #include <Vcl.StdCtrls.hpp>
- //----------------------------------------------------------------------------
- #include <Configuration.h>
- #include <SessionData.h>
- #include <PasTools.hpp>
- #include <GUITools.h>
- #include <System.ImageList.hpp>
- //----------------------------------------------------------------------------
- class TSiteAdvancedDialog : public TForm
- {
- __published:
- TPanel *MainPanel;
- TPageControl *PageControl;
- TTabSheet *AdvancedSheet;
- TGroupBox *ProtocolGroup;
- TCheckBox *CompressionCheck;
- TTabSheet *EnvironmentSheet;
- TTabSheet *ScpSheet;
- TGroupBox *OtherShellOptionsGroup;
- TCheckBox *LookupUserGroupsCheck;
- TCheckBox *ClearAliasesCheck;
- TCheckBox *UnsetNationalVarsCheck;
- TCheckBox *Scp1CompatibilityCheck;
- TGroupBox *ShellGroup;
- TComboBox *ShellEdit;
- TPanel *LeftPanel;
- TTreeView *NavigationTree;
- TTabSheet *ConnSheet;
- TGroupBox *TimeoutGroup;
- TLabel *Label11;
- TLabel *Label12;
- TUpDownEdit *TimeoutEdit;
- TTabSheet *ProxySheet;
- TGroupBox *ProxyTypeGroup;
- TLabel *ProxyHostLabel;
- TLabel *ProxyPortLabel;
- TUpDownEdit *ProxyPortEdit;
- TEdit *ProxyHostEdit;
- TEdit *ProxyUsernameEdit;
- TLabel *ProxyUsernameLabel;
- TLabel *ProxyPasswordLabel;
- TEdit *ProxyPasswordEdit;
- TGroupBox *ProxySettingsGroup;
- TLabel *ProxyTelnetCommandLabel;
- TEdit *ProxyTelnetCommandEdit;
- TTabSheet *BugsSheet;
- TGroupBox *BugsGroupBox;
- TLabel *BugHMAC2Label;
- TComboBox *BugHMAC2Combo;
- TLabel *BugDeriveKey2Label;
- TComboBox *BugDeriveKey2Combo;
- TLabel *BugRSAPad2Label;
- TComboBox *BugRSAPad2Combo;
- TTabSheet *AuthSheet;
- TGroupBox *AuthenticationGroup;
- TCheckBox *AuthKICheck;
- TGroupBox *EncryptionGroup;
- TListBox *CipherListBox;
- TLabel *Label8;
- TCheckBox *Ssh2LegacyDESCheck;
- TButton *CipherUpButton;
- TButton *CipherDownButton;
- TGroupBox *EnvironmentGroup;
- TLabel *BugPKSessID2Label;
- TComboBox *BugPKSessID2Combo;
- TCheckBox *ProxyLocalhostCheck;
- TLabel *Label17;
- TGroupBox *PingGroup;
- TLabel *PingIntervalLabel;
- TUpDownEdit *PingIntervalSecEdit;
- TRadioButton *PingOffButton;
- TRadioButton *PingNullPacketButton;
- TRadioButton *PingDummyCommandButton;
- TCheckBox *AuthKIPasswordCheck;
- TTabSheet *DirectoriesSheet;
- TGroupBox *DirectoriesGroup;
- TLabel *LocalDirectoryLabel;
- TLabel *RemoteDirectoryLabel;
- TLabel *LocalDirectoryDescLabel;
- TDirectoryEdit *LocalDirectoryEdit;
- TEdit *RemoteDirectoryEdit;
- TCheckBox *UpdateDirectoriesCheck;
- TCheckBox *CacheDirectoriesCheck;
- TCheckBox *ResolveSymlinksCheck;
- TCheckBox *CacheDirectoryChangesCheck;
- TCheckBox *PreserveDirectoryChangesCheck;
- TGroupBox *DSTModeGroup;
- TRadioButton *DSTModeUnixCheck;
- TRadioButton *DSTModeWinCheck;
- TGroupBox *ScpLsOptionsGroup;
- TCheckBox *IgnoreLsWarningsCheck;
- TCheckBox *SCPLsFullTimeAutoCheck;
- TTabSheet *SftpSheet;
- TGroupBox *SFTPBugsGroupBox;
- TLabel *Label10;
- TLabel *Label36;
- TComboBox *SFTPBugSymlinkCombo;
- TTabSheet *KexSheet;
- TGroupBox *KexOptionsGroup;
- TLabel *Label28;
- TListBox *KexListBox;
- TButton *KexUpButton;
- TButton *KexDownButton;
- TGroupBox *KexReexchangeGroup;
- TLabel *Label31;
- TUpDownEdit *RekeyTimeEdit;
- TLabel *Label32;
- TEdit *RekeyDataEdit;
- TGroupBox *IPvGroup;
- TRadioButton *IPAutoButton;
- TRadioButton *IPv4Button;
- TRadioButton *IPv6Button;
- TLabel *BugRekey2Label;
- TComboBox *BugRekey2Combo;
- TGroupBox *SFTPProtocolGroup;
- TLabel *Label34;
- TComboBox *SFTPMaxVersionCombo;
- TComboBox *SFTPBugSignedTSCombo;
- TGroupBox *DirectoryOptionsGroup;
- TTabSheet *TunnelSheet;
- TGroupBox *TunnelSessionGroup;
- TLabel *Label6;
- TLabel *Label14;
- TLabel *Label15;
- TLabel *Label16;
- TLabel *Label18;
- TEdit *TunnelHostNameEdit;
- TEdit *TunnelUserNameEdit;
- TEdit *TunnelPasswordEdit;
- TUpDownEdit *TunnelPortNumberEdit;
- TFilenameEdit *TunnelPrivateKeyEdit3;
- TLabel *Label19;
- TComboBox *ReturnVarEdit;
- TLabel *Label20;
- TGroupBox *AuthenticationParamsGroup;
- TCheckBox *AgentFwdCheck;
- TCheckBox *TunnelCheck;
- TGroupBox *TunnelOptionsGroup;
- TLabel *Label21;
- TComboBox *TunnelLocalPortNumberEdit;
- TRadioButton *DSTModeKeepCheck;
- TGroupBox *ConnectionGroup;
- TCheckBox *FtpPasvModeCheck;
- TTabSheet *RecycleBinSheet;
- TGroupBox *RecycleBinGroup;
- TLabel *RecycleBinPathLabel;
- TCheckBox *DeleteToRecycleBinCheck;
- TCheckBox *OverwrittenToRecycleBinCheck;
- TEdit *RecycleBinPathEdit;
- TLabel *EOLTypeLabel;
- TComboBox *EOLTypeCombo;
- TLabel *UtfLabel;
- TComboBox *UtfCombo;
- TLabel *TimeDifferenceLabel;
- TUpDownEdit *TimeDifferenceEdit;
- TLabel *TimeDifferenceHoursLabel;
- TUpDownEdit *TimeDifferenceMinutesEdit;
- TLabel *TimeDifferenceMinutesLabel;
- TLabel *Label9;
- TComboBox *ListingCommandEdit;
- TCheckBox *SshNoUserAuthCheck;
- TCheckBox *TryAgentCheck;
- TLabel *ProxyMethodLabel;
- TComboBox *SshProxyMethodCombo;
- TComboBox *ProxyDNSCombo;
- TComboBox *FtpProxyMethodCombo;
- TLabel *ProxyLocalCommandLabel;
- TEdit *ProxyLocalCommandEdit;
- TButton *ProxyLocalCommandBrowseButton;
- TStaticText *ProxyTelnetCommandHintText;
- TStaticText *ProxyLocalCommandHintText;
- TGroupBox *FtpPingGroup;
- TLabel *FtpPingIntervalLabel;
- TUpDownEdit *FtpPingIntervalSecEdit;
- TRadioButton *FtpPingOffButton;
- TRadioButton *FtpPingDummyCommandButton;
- TLabel *Label23;
- TComboBox *SftpServerEdit;
- TTabSheet *FtpSheet;
- TGroupBox *FtpGroup;
- TLabel *Label25;
- TMemo *PostLoginCommandsMemo;
- TLabel *BugMaxPkt2Label;
- TComboBox *BugMaxPkt2Combo;
- TLabel *FtpListAllLabel;
- TComboBox *FtpListAllCombo;
- TComboBox *FtpForcePasvIpCombo;
- TCheckBox *AllowScpFallbackCheck;
- TCheckBox *BufferSizeCheck;
- TCheckBox *SynchronizeBrowsingCheck;
- TGroupBox *GSSAPIGroup;
- TCheckBox *AuthGSSAPICheck3;
- TCheckBox *GSSAPIFwdTGTCheck;
- TLabel *BugIgnore2Label;
- TComboBox *BugIgnore2Combo;
- TComboBox *NeonProxyMethodCombo;
- TLabel *Label24;
- TComboBox *FtpUseMlsdCombo;
- TLabel *FtpForcePasvIpLabel;
- TButton *OKBtn;
- TButton *CancelBtn;
- TButton *HelpButton;
- TLabel *FtpAccountLabel;
- TEdit *FtpAccountEdit;
- TLabel *PrivateKeyLabel;
- TFilenameEdit *PrivateKeyEdit3;
- TGroupBox *TunnelAuthenticationParamsGroup;
- TImageList *ColorImageList;
- TButton *ColorButton;
- TTabSheet *SslSheet;
- TGroupBox *TlsGroup;
- TLabel *MinTlsVersionLabel;
- TComboBox *MinTlsVersionCombo;
- TLabel *MaxTlsVersionLabel;
- TComboBox *MaxTlsVersionCombo;
- TCheckBox *SslSessionReuseCheck2;
- TLabel *BugWinAdjLabel;
- TComboBox *BugWinAdjCombo;
- TButton *ProxyAutodetectButton;
- TTabSheet *NoteSheet;
- TGroupBox *NoteGroup;
- TMemo *NoteMemo;
- TCheckBox *TimeDifferenceAutoCheck;
- TLabel *Label3;
- TComboBox *FtpHostCombo;
- TGroupBox *TlsAuthenticationGroup;
- TLabel *Label4;
- TFilenameEdit *TlsCertificateFileEdit;
- TCheckBox *TrimVMSVersionsCheck;
- TCheckBox *FollowDirectorySymlinksCheck;
- TImageList *ColorImageList120;
- TImageList *ColorImageList144;
- TImageList *ColorImageList192;
- TButton *PrivateKeyToolsButton;
- TPopupMenu *PrivateKeyMenu;
- TMenuItem *PrivateKeyGenerateItem;
- TMenuItem *PrivateKeyUploadItem;
- TButton *PrivateKeyViewButton;
- TTabSheet *EncryptionSheet;
- TCheckBox *EncryptFilesCheck;
- TGroupBox *EncryptFilesGroup;
- TLabel *Label13;
- TEdit *EncryptKeyPasswordEdit;
- TCheckBox *ShowEncryptionKeyCheck;
- TButton *GenerateKeyButton;
- TEdit *EncryptKeyVisibleEdit;
- TTabSheet *S3Sheet;
- TGroupBox *S3Group;
- TLabel *Label27;
- TComboBox *S3DefaultReqionCombo;
- TLabel *S3UrlStyleLabel;
- TComboBox *S3UrlStyleCombo;
- TGroupBox *PuttyGroup;
- TButton *PuttySettingsButton;
- TLabel *PuttySettingsLabel;
- TEdit *PuttySettingsEdit;
- TCheckBox *AuthGSSAPIKEXCheck;
- TTabSheet *WebDavSheet;
- TGroupBox *WebdavGroup;
- TCheckBox *WebDavLiberalEscapingCheck;
- TGroupBox *S3AuthenticationGroup;
- TLabel *S3SessionTokenLabel;
- TMemo *S3SessionTokenMemo;
- TCheckBox *VMSAllRevisionsCheck;
- TLabel *Label5;
- TComboBox *SFTPRealPathCombo;
- TLabel *DetachedCertificateLabel;
- TFilenameEdit *DetachedCertificateEdit;
- TCheckBox *S3RequesterPaysCheck;
- TRadioButton *FtpPingDirectoryListingButton;
- TCheckBox *UsePosixRenameCheck;
- TLabel *S3RoleArnLabel;
- TEdit *S3RoleArnEdit;
- TPanel *NavigationPanel;
- void __fastcall DataChange(TObject *Sender);
- void __fastcall FormShow(TObject *Sender);
- void __fastcall PageControlChange(TObject *Sender);
- void __fastcall AlgListBoxStartDrag(TObject *Sender,
- TDragObject *&DragObject);
- void __fastcall AlgListBoxDragOver(TObject *Sender, TObject *Source,
- int X, int Y, TDragState State, bool &Accept);
- void __fastcall AlgListBoxDragDrop(TObject *Sender, TObject *Source,
- int X, int Y);
- void __fastcall CipherButtonClick(TObject *Sender);
- void __fastcall AuthGSSAPICheck3Click(TObject *Sender);
- void __fastcall KexButtonClick(TObject *Sender);
- void __fastcall HelpButtonClick(TObject *Sender);
- void __fastcall PrivateKeyEdit3AfterDialog(TObject *Sender,
- UnicodeString &Name, bool &Action);
- void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose);
- void __fastcall PathEditBeforeDialog(TObject *Sender, UnicodeString &Name,
- bool &Action);
- void __fastcall PathEditAfterDialog(TObject * Sender,
- UnicodeString & Name, bool & Action);
- void __fastcall NavigationTreeCollapsing(TObject *Sender,
- TTreeNode *Node, bool &AllowCollapse);
- void __fastcall ProxyLocalCommandBrowseButtonClick(TObject *Sender);
- void __fastcall NavigationTreeChange(TObject * Sender,
- TTreeNode * Node);
- void __fastcall ColorButtonClick(TObject *Sender);
- void __fastcall MinTlsVersionComboChange(TObject *Sender);
- void __fastcall MaxTlsVersionComboChange(TObject *Sender);
- void __fastcall ProxyAutodetectButtonClick(TObject *Sender);
- void __fastcall NoteMemoKeyDown(TObject *Sender, WORD &Key, TShiftState Shift);
- void __fastcall TlsCertificateFileEditAfterDialog(TObject *Sender, UnicodeString &Name,
- bool &Action);
- void __fastcall PrivateKeyUploadItemClick(TObject *Sender);
- void __fastcall PrivateKeyGenerateItemClick(TObject *Sender);
- void __fastcall PrivateKeyToolsButtonClick(TObject *Sender);
- void __fastcall PrivateKeyViewButtonClick(TObject *Sender);
- void __fastcall ShowEncryptionKeyCheckClick(TObject *Sender);
- void __fastcall GenerateKeyButtonClick(TObject *Sender);
- void __fastcall EncryptKeyEditExit(TObject *Sender);
- void __fastcall PuttySettingsButtonClick(TObject *Sender);
- void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
- public:
- virtual __fastcall TSiteAdvancedDialog(TComponent * AOwner);
- bool __fastcall Execute(TSessionData * SessionData);
- protected:
- void __fastcall ChangePage(TTabSheet * Tab);
- void __fastcall PageChanged();
- virtual void __fastcall Dispatch(void * Message);
- bool __fastcall AllowAlgDrag(TListBox * AlgListBox, int X, int Y);
- void __fastcall AlgMove(TListBox * AlgListBox, int Source, int Dest);
- void __fastcall InitControls();
- bool IsDefaultSftpServer();
- private:
- int NoUpdate;
- int FAlgDragSource;
- int FAlgDragDest;
- UnicodeString FBeforeDialogPath;
- TSessionData * FSessionData;
- TColor FColor;
- UnicodeString FLastPrivateKey;
- bool FKeyHasCertificate;
- std::unique_ptr<TPopupMenu> FColorPopupMenu;
- std::unique_ptr<TObjectList> FPrivateKeyMonitors;
- std::unique_ptr<TStrings> FPuttyRegSettings;
- std::unique_ptr<TTimer> FPuttySettingsTimer;
- void __fastcall LoadSession();
- void __fastcall UpdateControls();
- TSessionData * __fastcall GetSessionData();
- void __fastcall SaveSession(TSessionData * SessionData);
- void __fastcall CMDialogKey(TWMKeyDown & Message);
- void __fastcall WMHelp(TWMHelp & Message);
- int __fastcall LastSupportedFtpProxyMethod();
- bool __fastcall SupportedFtpProxyMethod(int Method);
- int __fastcall GetSupportedFtpProxyMethod(int Method);
- int __fastcall GetSupportedNeonProxyMethod(int Method);
- TProxyMethod __fastcall GetProxyMethod();
- int __fastcall GetFtpProxyLogonType();
- void __fastcall UpdateNavigationTree();
- void __fastcall SessionColorChange(TColor Color);
- TTlsVersion __fastcall IndexToTlsVersion(int Index);
- int __fastcall TlsVersionToIndex(TTlsVersion TlsVersion);
- bool __fastcall IsNeon(TFSProtocol FSProtocol);
- void __fastcall PrivateKeyCreatedOrModified(TObject * Sender, const UnicodeString FileName);
- TCustomEdit * __fastcall GetEncryptKeyEdit(bool AShow = true);
- void __fastcall PuttySettingsTimer(TObject * Sender);
- UnicodeString __fastcall GetPuttySiteName();
- UnicodeString __fastcall GetPuttySiteKey();
- void __fastcall ClosePuttySettings();
- void SerializePuttyRegistry(const UnicodeString & Key, TStrings * Values);
- bool HasCertificate(const UnicodeString & FileName);
- INTERFACE_HOOK
- };
- //----------------------------------------------------------------------------
- #endif
|