亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? idftpserver.pas

?? delphi indy9.0.18組件包
?? PAS
?? 第 1 頁 / 共 4 頁
字號:
begin
  FOKReply.Assign(AValue);
end;

{ TIdFTPClient }

constructor TIdFTPServerThread.Create(ACreateSuspended: Boolean = True);
begin
  inherited Create(ACreateSuspended);
  ReInitialize;
end;

procedure TIdFTPServerThread.TerminateAndFreeDataChannel;
Begin
  if Assigned(FDataChannelThread) then begin
    FDataChannelThread.Terminate; //set Terminated flag
    FDataChannelThread.Start; //can be stopped
    FreeAndNIL(FDataChannelThread);
  end;
End;//

destructor TIdFTPServerThread.Destroy;
begin
  TerminateAndFreeDataChannel;
  inherited Destroy;
end;

procedure TIdFTPServerThread.CreateDataChannel(APASV: Boolean = False);
begin
{APR 020423. We must cache it, but in future:
  if assigned(FDataChannelThread) and not APASV then begin
    exit; // we already have one.
  end;}
  TerminateAndFreeDataChannel; //let the old one terminate

  FDataChannelThread := TIdDataChannelThread.Create(APASV, Connection);
  FDataChannelThread.OnException := TIdFTPServer(Connection.Server).ThreadException;
  //APR 020423 FDataChannelThread.FreeOnTerminate := True;
end;

procedure TIdFTPServerThread.KillDataChannel;
begin
  with FDataChannelThread do try
    if not Stopped then begin
      FDataChannel.DisconnectSocket;
      StopMode:=smTerminate; // otherwise the waitfor on the next line waits forever.
      WaitFor;
    end;
  except
    { absorb }
  end;
end;

procedure TIdFTPServerThread.ReInitialize;
begin
  UserType := utNone;
  FAuthenticated := False;
  FALLOSize := 0;
  FCurrentDir := '/';    {Do not Localize}
  FDataType := ftASCII;
  FDataMode := dmStream;
  FDataPort := 0;
  FDataStruct := dsFile;
  FHomeDir := '';    {Do not Localize}
  FUsername := '';    {Do not Localize}
  FPassword := '';    {Do not Localize}
  FPASV := False;
  FRESTPos := 0;
  FRNFR := '';    {Do not Localize}
end;

function TIdFTPServerThread.IsAuthenticated(ASender: TIdCommand): Boolean;
begin
  if not FAuthenticated then begin
    ASender.Reply.SetReply(530, RSFTPUserNotLoggedIn);
  end
  else begin
    if Assigned(FDataChannelThread) then begin
      if not FDataChannelThread.Stopped and
        not AnsiSameText(ASender.CommandHandler.Command, 'ABOR') and {Do not Localize}
        not AnsiSameText(ASender.CommandHandler.Command, #$FF#$F4#$FF#$FF'ABOR') // ABOR with telnet escape {Do not Localize}
      then begin
        Result := False;
        Exit;
      end;
    end;
  end;
  Result := FAuthenticated;
end;

{ TIdFTPServer }

constructor TIdFTPServer.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);

  FAnonymousAccounts :=  TstringList.Create;
  // By default these user names will be treated as anonymous.
  with FAnonymousAccounts do begin
    Add('anonymous'); { do not localize }
    Add('ftp'); { do not localize }
    Add('guest'); { do not localize }
  end;
  FAllowAnonymousLogin := Id_DEF_AllowAnon;
  FAnonymousPassStrictCheck := Id_DEF_PassStrictCheck;
  DefaultPort := IDPORT_FTP;
  DefaultDataPort := IdPORT_FTP_DATA;
  FEmulateSystem := Id_DEF_SystemType;
  Greeting.NumericCode := 220;
  Greeting.Text.Text := RSFTPDefaultGreeting;
  FHelpReply := TstringList.Create;
  ThreadClass := TIdFTPServerThread;
  ReplyUnknownCommand.NumericCode := 500;
  ReplyUnknownCommand.Text.Text := RSFTPCmdSyntaxError;
  FUserAccounts := nil;
  FSystemType := Id_OS_Win32;    {Do not Localize}
end;

procedure TIdFTPServer.InitializeCommandHandlers;
begin
  inherited;
  //ACCESS CONTROL COMMANDS
  //USER <SP> <username> <CRLF>
  with CommandHandlers.Add do begin
    Command := 'USER';    {Do not Localize}
    OnCommand := CommandUSER;
  end;
  //PASS <SP> <password> <CRLF>
  with CommandHandlers.Add do begin
    Command := 'PASS';    {Do not Localize}
    OnCommand := CommandPASS;
  end;
  //ACCT <SP> <account-information> <CRLF>
  with CommandHandlers.Add do begin
    Command := 'ACCT';    {Do not Localize}
    ReplyNormal.NumericCode := 202;
    ReplyNormal.Text.Text := Format(RSFTPCmdNotImplemented, ['ACCT']);    {Do not Localize}
  end;
  //CWD  <SP> <pathname> <CRLF>
  with CommandHandlers.Add do begin
    Command := 'CWD';    {Do not Localize}
    OnCommand := CommandCWD;
    ReplyExceptionCode := 550;
  end;
  //CDUP <CRLF>
  with CommandHandlers.Add do begin
    Command := 'CDUP';    {Do not Localize}
    OnCommand := CommandCDUP;
    ReplyExceptionCode := 550;
  end;
  //SMNT <SP> <pathname> <CRLF>
  with CommandHandlers.Add do begin
    Command := 'SMNT';    {Do not Localize}
    ReplyNormal.NumericCode := 250;
    ReplyNormal.Text.Text := RSFTPFileActionCompleted;
  end;
  //QUIT <CRLF>
  with CommandHandlers.Add do begin
    Command := 'QUIT';    {Do not Localize}
    Disconnect := True;
    ReplyNormal.NumericCode := 221;
    ReplyNormal.Text.Text := 'Goodbye.';    {Do not Localize}
  end;
  //REIN <CRLF>
  with CommandHandlers.Add do begin
    Command := 'REIN';    {Do not Localize}
    OnCommand := CommandREIN;
  end;
  //PORT <SP> <host-port> <CRLF>
  with CommandHandlers.Add do begin
    Command := 'PORT';    {Do not Localize}
    OnCommand := CommandPORT;
  end;
  //PASV <CRLF>
  with CommandHandlers.Add do begin
    Command := 'PASV';    {Do not Localize}
    OnCommand := CommandPASV;
  end;
  //TYPE <SP> <type-code> <CRLF>
  with CommandHandlers.Add do begin
    Command := 'TYPE';    {Do not Localize}
    OnCommand := CommandTYPE;
  end;
  //STRU <SP> <structure-code> <CRLF>
  with CommandHandlers.Add do begin
    Command := 'STRU';    {Do not Localize}
    OnCommand := CommandSTRU;
  end;
  //MODE <SP> <mode-code> <CRLF>
  with CommandHandlers.Add do begin
    Command := 'MODE';    {Do not Localize}
    OnCommand := CommandMODE;
  end;
  //FTP SERVICE COMMANDS
  //RETR <SP> <pathname> <CRLF>
  with CommandHandlers.Add do begin
    Command := 'RETR';    {Do not Localize}
    OnCommand := CommandRETR;
    ReplyExceptionCode := 550;
  end;
  //STOR <SP> <pathname> <CRLF>
  with CommandHandlers.Add do begin
    Command := 'STOR';    {Do not Localize}
    OnCommand := CommandSSAP;
    ReplyExceptionCode := 550;
  end;
  //STOU <CRLF>
  with CommandHandlers.Add do begin
    Command := 'STOU';    {Do not Localize}
    OnCommand := CommandSSAP;
    ReplyExceptionCode := 550;
  end;
  //APPE <SP> <pathname> <CRLF>
  with CommandHandlers.Add do begin
    Command := 'APPE';    {Do not Localize}
    OnCommand := CommandSSAP;
    ReplyExceptionCode := 550;
  end;
  //ALLO <SP> <decimal-integer>
  //    [<SP> R <SP> <decimal-integer>] <CRLF>
  with CommandHandlers.Add do begin
    Command := 'ALLO';    {Do not Localize}
    OnCommand := CommandALLO;
  end;
  //REST <SP> <marker> <CRLF>
  with CommandHandlers.Add do begin
    Command := 'REST';    {Do not Localize}
    OnCommand := CommandREST;
  end;
  //RNFR <SP> <pathname> <CRLF>
  with CommandHandlers.Add do begin
    Command := 'RNFR';    {Do not Localize}
    OnCommand := CommandRNFR;
  end;
  //RNTO <SP> <pathname> <CRLF>
  with CommandHandlers.Add do begin
    Command := 'RNTO';    {Do not Localize}
    OnCommand := CommandRNTO;
  end;
  //ABOR <CRLF>
  with CommandHandlers.Add do begin
    Command := 'ABOR';    {Do not Localize}
    OnCommand := CommandABOR;
  end;
  //ABOR <CRLF>
  with CommandHandlers.Add do begin // ABOR with telnet escape
    Command := #$FF#$F4#$FF#$FF'ABOR';    {Do not Localize}
    OnCommand := CommandABOR;
  end;
  //DELE <SP> <pathname> <CRLF>
  with CommandHandlers.Add do begin
    Command := 'DELE';    {Do not Localize}
    OnCommand := CommandDELE;
  end;
  //RMD  <SP> <pathname> <CRLF>
  with CommandHandlers.Add do begin
    Command := 'RMD';    {Do not Localize}
    OnCommand := CommandRMD;
  end;
  //MKD  <SP> <pathname> <CRLF>
  with CommandHandlers.Add do begin
    Command := 'MKD';    {Do not Localize}
    OnCommand := CommandMKD;
  end;
  //PWD  <CRLF>
  with CommandHandlers.Add do begin
    Command := 'PWD';    {Do not Localize}
    OnCommand := CommandPWD;
  end;
  //LIST [<SP> <pathname>] <CRLF>
  FCmdHandlerList := CommandHandlers.Add;
  with FCmdHandlerList do begin
    Command := 'LIST';    {Do not Localize}
    OnCommand := CommandLIST;
  end;
  //NLST [<SP> <pathname>] <CRLF>
  FCmdHandlerNlst := CommandHandlers.Add;
  with FCmdHandlerNlst do begin
    Command := 'NLST';    {Do not Localize}
    OnCommand := CommandLIST;
  end;
  //SITE <SP> <string> <CRLF>
  with CommandHandlers.Add do begin
    Command := 'SITE';    {Do not Localize}
    OnCommand := CommandSITE;
  end;
  //SYST <CRLF>
  with CommandHandlers.Add do begin
    Command := 'SYST';    {Do not Localize}
    OnCommand := CommandSYST;
  end;
  //STAT [<SP> <pathname>] <CRLF>
  with CommandHandlers.Add do begin
    Command := 'STAT';    {Do not Localize}
    OnCommand := CommandSTAT;
  end;
  //HELP [<SP> <string>] <CRLF>
  with CommandHandlers.Add do begin
    Command := 'HELP';    {Do not Localize}
    ReplyNormal.NumericCode := 214;
    //
    if Length(FHelpReply.Text) <> 0 then
     ReplyNormal.Text := FHelpReply
    else
     ReplyNormal.Text.Text := 'HELP Command';    {Do not Localize}
  end;
  //NOOP <CRLF>
  with CommandHandlers.Add do begin
    Command := 'NOOP';    {Do not Localize}
    ReplyNormal.NumericCode := 200;
    ReplyNormal.Text.Text := Format(RSFTPCmdSuccessful, ['NOOP']);    {Do not Localize}
  end;
  with CommandHandlers.Add do begin
    Command := 'XMKD';    {Do not Localize}
    OnCommand := CommandMKD;
  end;
  with CommandHandlers.Add do begin
    Command := 'XRMD';    {Do not Localize}
    OnCommand := CommandRMD;
  end;
  with CommandHandlers.Add do begin
    Command := 'XPWD';    {Do not Localize}
    OnCommand := CommandPWD;
  end;
  with CommandHandlers.Add do begin
    Command := 'XCUP';    {Do not Localize}
    OnCommand := CommandCDUP;
  end;
  with CommandHandlers.Add do begin
    Command := 'FEAT';    {Do not Localize}
    OnCommand := CommandFEAT;
  end;
  //TODO: OPTS - what is this for? Cannot find in RFC 959
  with CommandHandlers.Add do begin
    Command := 'OPTS';    {Do not Localize}
    OnCommand := CommandOPTS;
  end;
  //SIZE [<FILE>] CRLF
  with CommandHandlers.Add do begin
    Command := 'SIZE';    {Do not Localize}
    OnCommand := CommandSIZE;
  end;
end;

destructor TIdFTPServer.Destroy;
begin
  FreeAndNil(FAnonymousAccounts);
  FreeAndNil(FHelpReply);
  inherited Destroy;
end;

procedure TIdFTPServer.ListDirectory(ASender: TIdFTPServerThread; ADirectory: string;
 var ADirContents: TstringList; ADetails: Boolean);
var
  i: Integer;
  LDirectoryList: TIdFTPListItems;
  LPathSep: string;
begin
  if Assigned(FOnListDirectory) then begin
    LDirectoryList := TIdFTPListItems.Create; try
      LPathSep := '/';    {Do not Localize}
      // Emulated System
      case FEmulateSystem of
        ftpsOther: begin
          if Assigned(OnGetCustomListFormat) then begin
            LDirectoryList.ListFormat := flfCustom;
            LDirectoryList.OnGetCustomListFormat := DoGetCustomListFormat;
          end else begin
            LDirectoryList.ListFormat := flfNone;
          end;
        end;
        ftpsDOS: begin
          LDirectoryList.ListFormat := flfDos;
          LPathSep := '\';    {Do not Localize}
        end;
        ftpsUNIX: begin
          LDirectoryList.ListFormat := flfUnix;
        end;
        ftpsVAX: begin
          LDirectoryList.ListFormat := flfVax;
        end;
      end;
      if Copy(ADirectory, Length(LPathSep), 1) <> LPathSep then begin
        ADirectory := ADirectory + LPathSep;
      end;
      // Event
      FOnListDirectory(ASender, ADirectory, LDirectoryList);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产片一区二区三区| 久久精品在线免费观看| 成人午夜私人影院| 成人精品国产一区二区4080| 国产综合久久久久影院| 久久99精品久久久久久动态图| 日韩va欧美va亚洲va久久| 日韩高清在线观看| 六月丁香综合在线视频| 国产一区久久久| 国产黑丝在线一区二区三区| 国产精品99久久久久久宅男| av男人天堂一区| 一本久久a久久免费精品不卡| 欧洲国内综合视频| 日韩欧美中文字幕公布| 精品国产99国产精品| 久久这里只精品最新地址| 国产欧美日韩久久| 亚洲精品国久久99热| 欧美aaa在线| 国产精品 欧美精品| av不卡一区二区三区| 欧美性猛片xxxx免费看久爱| 日韩免费看的电影| 中文字幕亚洲成人| 日韩福利视频导航| 成人免费毛片片v| 欧美色综合久久| 国产日产欧美一区| 亚洲国产精品一区二区久久| 九九在线精品视频| 91啪在线观看| 精品久久久久久久久久久久包黑料| 中文字幕精品—区二区四季| 亚洲国产日韩av| 成人性生交大片免费看中文网站| 欧美午夜精品久久久久久孕妇| 欧美v日韩v国产v| 亚洲综合色网站| 国产麻豆精品在线| 欧美日本在线观看| 国产精品第一页第二页第三页| 五月综合激情网| 成人激情图片网| 精品欧美黑人一区二区三区| 亚洲免费在线看| 国产精品99久久久| 日韩欧美国产wwwww| 亚洲成人黄色小说| 99国产欧美另类久久久精品| 欧美成人激情免费网| 亚洲国产美女搞黄色| 成人综合在线网站| 精品国产3级a| 日产精品久久久久久久性色| 91蜜桃网址入口| 国产日韩欧美制服另类| 久久97超碰国产精品超碰| 欧美日韩亚洲不卡| 亚洲一区在线电影| 97精品电影院| 亚洲欧美在线观看| 国产91对白在线观看九色| 欧美成va人片在线观看| 日本不卡中文字幕| 91精品欧美一区二区三区综合在| 亚洲免费观看在线观看| 成人99免费视频| 亚洲国产精品黑人久久久| 国产美女精品一区二区三区| 日韩欧美综合一区| 麻豆成人久久精品二区三区红 | 黄色成人免费在线| 日韩午夜小视频| 麻豆精品视频在线观看免费| 日韩一区二区免费在线电影| 日韩在线卡一卡二| 91精品国产手机| 久久国产精品色婷婷| 2023国产精华国产精品| 韩国成人福利片在线播放| 久久久亚洲精品一区二区三区| 国产精品夜夜爽| 国产精品高潮呻吟久久| 色综合色狠狠天天综合色| 亚洲综合偷拍欧美一区色| 欧美性感一区二区三区| 奇米888四色在线精品| 日韩欧美一区二区久久婷婷| 国产精品一区二区视频| 中文字幕国产精品一区二区| 色综合婷婷久久| 亚洲高清免费在线| 欧美一区二区三级| 国产一区二区三区在线看麻豆| 国产亚洲一区二区三区在线观看| 成人免费视频网站在线观看| 亚洲午夜在线观看视频在线| 欧美一二区视频| 国产成人精品午夜视频免费| 亚洲人快播电影网| 日韩免费看的电影| 成人短视频下载| 亚洲国产成人porn| 精品国产91亚洲一区二区三区婷婷| 国产精品1024| 天天亚洲美女在线视频| 精品国产一区二区在线观看| 99re成人在线| 蜜臀国产一区二区三区在线播放| 中文字幕精品一区二区精品绿巨人| 在线观看www91| 国产成人自拍在线| 亚洲成人福利片| 国产精品视频第一区| 日韩视频一区在线观看| 97精品国产露脸对白| 狠狠色丁香久久婷婷综合_中| 亚洲蜜臀av乱码久久精品蜜桃| 精品裸体舞一区二区三区| 色婷婷精品久久二区二区蜜臀av | 国产美女视频91| 亚洲福利一区二区三区| 国产精品天美传媒沈樵| 日韩亚洲欧美一区| 欧美精品国产精品| 色哦色哦哦色天天综合| 国产成人综合视频| 黑人精品欧美一区二区蜜桃| 日日夜夜精品视频免费| 亚洲精品第一国产综合野| 国产欧美日韩精品一区| 日韩欧美国产小视频| 欧美日韩精品欧美日韩精品| 国产黄色91视频| 国产自产高清不卡| 美美哒免费高清在线观看视频一区二区 | 欧美日韩精品一区二区三区四区| 国产成人av电影| 国产尤物一区二区在线| 日本不卡视频一二三区| 亚洲成人av电影在线| 一区二区成人在线| 最新久久zyz资源站| 国产精品天美传媒沈樵| 欧美激情艳妇裸体舞| 国产午夜精品美女毛片视频| 精品裸体舞一区二区三区| 欧美电影免费观看高清完整版| 91麻豆精品国产91久久久资源速度| 色妹子一区二区| 欧洲精品视频在线观看| 色偷偷一区二区三区| 91极品美女在线| 欧美在线小视频| 欧美色图12p| 国产精品网友自拍| 国产精品天干天干在观线| 中文字幕不卡的av| 亚洲欧洲av色图| 亚洲人成在线播放网站岛国| 亚洲视频在线观看一区| 亚洲视频一二三区| 一区二区三区免费网站| 一区二区三区日韩| 日产欧产美韩系列久久99| 九色综合国产一区二区三区| 国产麻豆一精品一av一免费| 国产成人aaaa| 91在线精品一区二区| 欧美三日本三级三级在线播放| 在线不卡中文字幕播放| 精品国产乱码久久久久久浪潮| 久久精品在这里| 亚洲精品综合在线| 亚洲国产精品久久久久婷婷884| 日日摸夜夜添夜夜添精品视频| 精品一区二区三区免费视频| 国产成人激情av| 欧美视频一区二区三区四区| 日韩欧美www| 中文字幕一区二| 日韩av一区二区在线影视| 国产一区二区剧情av在线| 成人免费视频免费观看| 欧美日韩美女一区二区| 久久婷婷国产综合国色天香| 亚洲欧美日韩国产中文在线| 日韩av电影天堂| 91丨porny丨户外露出| 91精品国产aⅴ一区二区| 国产精品色哟哟| 五月天激情小说综合| 国产福利91精品一区二区三区| 91丨九色丨蝌蚪丨老版| 精品国产乱码久久久久久久久| 亚洲精品国产高清久久伦理二区| 精品无码三级在线观看视频| 一本久久综合亚洲鲁鲁五月天|