Class TFtpServer (unit FtpSrv) |
Inherits from
TComponent
constructor Create(AOwner: TComponent);
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} {* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
destructor Destroy;
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure DisconnectAll;
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure Start;
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure Stop;
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure WndProc(var MsgRec: TMessage);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure AddCommand(const Keyword : String;
const Proc : TFtpSrvCommandProc);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure BuildDirectory(Client : TFtpCtrlSocket; var Params : TFtpString; Stream : TStream; Detailed : Boolean);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ClientCommand(Sender : TObject; CmdBuf : PChar; CmdLen : Integer);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ClientDataSent(Sender : TObject; Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ClientPassiveSessionAvailable(Sender : TObject; Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ClientRetrDataSent(Sender : TObject; Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ClientRetrSessionClosed(Sender : TObject; Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ClientRetrSessionConnected(Sender : TObject; Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ClientSessionClosed(Sender : TObject; Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ClientStorDataAvailable(Sender: TObject; Error : word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ClientStorSessionClosed(Sender : TObject; Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ClientStorSessionConnected(Sender : TObject; Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandABOR(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandCDUP(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandChangeDir(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandCWD (Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandDELE(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandDirectory(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString;
Detailed : Boolean);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandLIST(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandMKD (Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandNLST(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandNOOP(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandPASS(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandPASV(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandPORT(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandPWD (Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandQUIT(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandREST(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandRETR(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandRMD (Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandRNFR(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandRNTo(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandSIZE(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandSTOR(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandSYST(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandTYPE(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandUSER(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandXPWD(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
function GetActive : Boolean;
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
function GetClientCount : Integer;
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure Notification(AComponent: TComponent; operation: TOperation);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure SendAnswer(Client : TFtpCtrlSocket; Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure SendNextDataChunk(Client : TFtpCtrlSocket; Data : TWSocket);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ServSocketSessionAvailable(Sender : TObject; Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ServSocketStateChange(Sender : TObject; OldState, NewState : TSocketState);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure SetActive(newValue : Boolean);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure StartSendData(Client : TFtpCtrlSocket);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerAlterDirectory(Client : TFtpCtrlSocket;
var Params : TFtpString;
Detailed : Boolean);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerAuthenticate(Client : TFtpCtrlSocket;
UserName : String;
PassWord : String;
var Authenticated : Boolean);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerBuildDirectory(Client : TFtpCtrlSocket;
var Params : TFtpString;
Detailed : Boolean);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerChangeDirectory(Client : TFtpCtrlSocket;
Directory : String;
var Allowed : Boolean);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerClientCommand(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerClientConnect(Client : TFtpCtrlSocket; Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerClientDisconnect(Client : TFtpCtrlSocket; Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerMakeDirectory(Client : TFtpCtrlSocket;
Directory : String;
var Allowed : Boolean);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerRetrDataSent(Client : TFtpCtrlSocket;
Data : TWSocket;
Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerRetrSessionClosed(Client : TFtpCtrlSocket;
Data : TWSocket;
Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerRetrSessionConnected(Client : TFtpCtrlSocket;
Data : TWSocket;
Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerSendAnswer(Client : TFtpCtrlSocket;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerServerStart;
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerServerStop;
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerStorDataAvailable(Client : TFtpCtrlSocket;
Data : TWSocket;
Buf : PChar;
Len : LongInt;
Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerStorSessionClosed(Client : TFtpCtrlSocket;
Data : TWSocket;
Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerStorSessionConnected(Client : TFtpCtrlSocket;
Data : TWSocket;
Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerValidateGet(Client : TFtpCtrlSocket;
var FilePath : TFtpString;
var Allowed : Boolean);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerValidatePut(Client : TFtpCtrlSocket;
var FilePath : TFtpString;
var Allowed : Boolean);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure WMFtpSrvAbortTransfer(var msg: TMessage);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure WMFtpSrvClientClosed(var msg: TMessage);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure WMFtpSrvCloseData(var msg: TMessage);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure WMFtpSrvCloseRequest(var msg: TMessage);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
property Banner : String
property MaxClients : LongInt
property Port : String
property UserData : LongInt
property Active : Boolean
property ClientClass : TFtpCtrlSocketClass
property ClientCount : Integer
property Handle : HWND
property ServSocket : TWSocket
event OnAlterDirectory : TFtpSrvBuildDirectoryEvent
event OnAnswerToClient : TFtpSrvAnswerToClientEvent
event OnAuthenticate : TFtpSrvAuthenticateEvent
event OnBuildDirectory : TFtpSrvBuildDirectoryEvent
event OnChangeDirectory : TFtpSrvChangeDirectoryEvent
event OnClientCommand : TFtpSrvClientCommandEvent
event OnClientConnect : TFtpSrvClientConnectEvent
event OnClientDisconnect : TFtpSrvClientConnectEvent
event OnMakeDirectory : TFtpSrvChangeDirectoryEvent
event OnRetrDataSent : TFtpSrvRetrDataSentEvent
event OnRetrSessionClosed : TFtpSrvDataSessionConnectedEvent
event OnRetrSessionConnected : TFtpSrvDataSessionConnectedEvent
event OnStart : TNotifyEvent
event OnStop : TNotifyEvent
event OnStorDataAvailable : TFtpSrvDataAvailableEvent
event OnStorSessionClosed : TFtpSrvDataSessionConnectedEvent
event OnStorSessionConnected : TFtpSrvDataSessionConnectedEvent
event OnValidateGet : TFtpSrvValidateXferEvent
event OnValidatePut : TFtpSrvValidateXferEvent
FBanner : String;
FClientClass : TFtpCtrlSocketClass;
FClientList : TList;
FClientNum : LongInt;
FCmdTable : array [0..31] of TFtpSrvCommandTableItem;
FLastCmd : Integer;
FMaxClients : LongInt;
FOnAlterDirectory : TFtpSrvBuildDirectoryEvent;
FOnAnswerToClient : TFtpSrvAnswerToClientEvent;
FOnAuthenticate : TFtpSrvAuthenticateEvent;
FOnBuildDirectory : TFtpSrvBuildDirectoryEvent;
FOnChangeDirectory : TFtpSrvChangeDirectoryEvent;
FOnClientCommand : TFtpSrvClientCommandEvent;
FOnClientConnect : TFtpSrvClientConnectEvent;
FOnClientDisconnect : TFtpSrvClientConnectEvent;
FOnMakeDirectory : TFtpSrvChangeDirectoryEvent;
FOnRetrDataSent : TFtpSrvRetrDataSentEvent;
FOnRetrSessionClosed : TFtpSrvDataSessionConnectedEvent;
FOnRetrSessionConnected : TFtpSrvDataSessionConnectedEvent;
FOnStart : TNotifyEvent;
Reserved for component user
FOnStop : TNotifyEvent;
FOnStorDataAvailable : TFtpSrvDataAvailableEvent;
FOnStorSessionClosed : TFtpSrvDataSessionConnectedEvent;
FOnStorSessionConnected : TFtpSrvDataSessionConnectedEvent;
FOnValidateGet : TFtpSrvValidateXferEvent;
FOnValidatePut : TFtpSrvValidateXferEvent;
FPort : String;
FServSocket : TWSocket;
FUserData : LongInt;
FWindowHandle : HWND;
constructor Create(AOwner: TComponent);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} {* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
destructor Destroy;
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure DisconnectAll;
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure Start;
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure Stop;
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure WndProc(var MsgRec: TMessage);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure AddCommand(const Keyword : String;
const Proc : TFtpSrvCommandProc);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure BuildDirectory(Client : TFtpCtrlSocket; var Params : TFtpString; Stream : TStream; Detailed : Boolean);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ClientCommand(Sender : TObject; CmdBuf : PChar; CmdLen : Integer);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ClientDataSent(Sender : TObject; Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ClientPassiveSessionAvailable(Sender : TObject; Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ClientRetrDataSent(Sender : TObject; Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ClientRetrSessionClosed(Sender : TObject; Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ClientRetrSessionConnected(Sender : TObject; Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ClientSessionClosed(Sender : TObject; Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ClientStorDataAvailable(Sender: TObject; Error : word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ClientStorSessionClosed(Sender : TObject; Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ClientStorSessionConnected(Sender : TObject; Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandABOR(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandCDUP(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandChangeDir(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandCWD (Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandDELE(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandDirectory(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString;
Detailed : Boolean);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandLIST(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandMKD (Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandNLST(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandNOOP(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandPASS(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandPASV(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandPORT(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandPWD (Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandQUIT(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandREST(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandRETR(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandRMD (Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandRNFR(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandRNTo(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandSIZE(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandSTOR(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandSYST(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandTYPE(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandUSER(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CommandXPWD(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
function GetActive : Boolean;
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
function GetClientCount : Integer;
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure Notification(AComponent: TComponent; operation: TOperation);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure SendAnswer(Client : TFtpCtrlSocket; Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure SendNextDataChunk(Client : TFtpCtrlSocket; Data : TWSocket);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ServSocketSessionAvailable(Sender : TObject; Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ServSocketStateChange(Sender : TObject; OldState, NewState : TSocketState);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure SetActive(newValue : Boolean);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure StartSendData(Client : TFtpCtrlSocket);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerAlterDirectory(Client : TFtpCtrlSocket;
var Params : TFtpString;
Detailed : Boolean);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerAuthenticate(Client : TFtpCtrlSocket;
UserName : String;
PassWord : String;
var Authenticated : Boolean);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerBuildDirectory(Client : TFtpCtrlSocket;
var Params : TFtpString;
Detailed : Boolean);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerChangeDirectory(Client : TFtpCtrlSocket;
Directory : String;
var Allowed : Boolean);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerClientCommand(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerClientConnect(Client : TFtpCtrlSocket; Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerClientDisconnect(Client : TFtpCtrlSocket; Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerMakeDirectory(Client : TFtpCtrlSocket;
Directory : String;
var Allowed : Boolean);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerRetrDataSent(Client : TFtpCtrlSocket;
Data : TWSocket;
Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerRetrSessionClosed(Client : TFtpCtrlSocket;
Data : TWSocket;
Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerRetrSessionConnected(Client : TFtpCtrlSocket;
Data : TWSocket;
Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerSendAnswer(Client : TFtpCtrlSocket;
var Answer : TFtpString);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerServerStart;
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerServerStop;
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerStorDataAvailable(Client : TFtpCtrlSocket;
Data : TWSocket;
Buf : PChar;
Len : LongInt;
Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerStorSessionClosed(Client : TFtpCtrlSocket;
Data : TWSocket;
Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerStorSessionConnected(Client : TFtpCtrlSocket;
Data : TWSocket;
Error : Word);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerValidateGet(Client : TFtpCtrlSocket;
var FilePath : TFtpString;
var Allowed : Boolean);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerValidatePut(Client : TFtpCtrlSocket;
var FilePath : TFtpString;
var Allowed : Boolean);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure WMFtpSrvAbortTransfer(var msg: TMessage);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure WMFtpSrvClientClosed(var msg: TMessage);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure WMFtpSrvCloseData(var msg: TMessage);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure WMFtpSrvCloseRequest(var msg: TMessage);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
property Banner : String
property MaxClients : LongInt
property Port : String
property UserData : LongInt
property Active : Boolean
property ClientClass : TFtpCtrlSocketClass
property ClientCount : Integer
property Handle : HWND
property ServSocket : TWSocket
event OnAlterDirectory : TFtpSrvBuildDirectoryEvent
event OnAnswerToClient : TFtpSrvAnswerToClientEvent
event OnAuthenticate : TFtpSrvAuthenticateEvent
event OnBuildDirectory : TFtpSrvBuildDirectoryEvent
event OnChangeDirectory : TFtpSrvChangeDirectoryEvent
event OnClientCommand : TFtpSrvClientCommandEvent
event OnClientConnect : TFtpSrvClientConnectEvent
event OnClientDisconnect : TFtpSrvClientConnectEvent
event OnMakeDirectory : TFtpSrvChangeDirectoryEvent
event OnRetrDataSent : TFtpSrvRetrDataSentEvent
event OnRetrSessionClosed : TFtpSrvDataSessionConnectedEvent
event OnRetrSessionConnected : TFtpSrvDataSessionConnectedEvent
event OnStart : TNotifyEvent
event OnStop : TNotifyEvent
event OnStorDataAvailable : TFtpSrvDataAvailableEvent
event OnStorSessionClosed : TFtpSrvDataSessionConnectedEvent
event OnStorSessionConnected : TFtpSrvDataSessionConnectedEvent
event OnValidateGet : TFtpSrvValidateXferEvent
event OnValidatePut : TFtpSrvValidateXferEvent
FBanner : String;
FClientClass : TFtpCtrlSocketClass;
FClientList : TList;
FClientNum : LongInt;
FCmdTable : array [0..31] of TFtpSrvCommandTableItem;
FLastCmd : Integer;
FMaxClients : LongInt;
FOnAlterDirectory : TFtpSrvBuildDirectoryEvent;
FOnAnswerToClient : TFtpSrvAnswerToClientEvent;
FOnAuthenticate : TFtpSrvAuthenticateEvent;
FOnBuildDirectory : TFtpSrvBuildDirectoryEvent;
FOnChangeDirectory : TFtpSrvChangeDirectoryEvent;
FOnClientCommand : TFtpSrvClientCommandEvent;
FOnClientConnect : TFtpSrvClientConnectEvent;
FOnClientDisconnect : TFtpSrvClientConnectEvent;
FOnMakeDirectory : TFtpSrvChangeDirectoryEvent;
FOnRetrDataSent : TFtpSrvRetrDataSentEvent;
FOnRetrSessionClosed : TFtpSrvDataSessionConnectedEvent;
FOnRetrSessionConnected : TFtpSrvDataSessionConnectedEvent;
FOnStart : TNotifyEvent;
Reserved for component user
FOnStop : TNotifyEvent;
FOnStorDataAvailable : TFtpSrvDataAvailableEvent;
FOnStorSessionClosed : TFtpSrvDataSessionConnectedEvent;
FOnStorSessionConnected : TFtpSrvDataSessionConnectedEvent;
FOnValidateGet : TFtpSrvValidateXferEvent;
FOnValidatePut : TFtpSrvValidateXferEvent;
FPort : String;
FServSocket : TWSocket;
FUserData : LongInt;
FWindowHandle : HWND;