⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 idftp.pas

📁 photo.163.com 相册下载器 多线程下载
💻 PAS
📖 第 1 页 / 共 5 页
字号:
{ $HDR$}
{**********************************************************************}
{ Unit archived using Team Coherence                                   }
{ Team Coherence is Copyright 2002 by Quality Software Components      }
{                                                                      }
{ For further information / comments, visit our WEB site at            }
{ http://www.TeamCoherence.com                                         }
{**********************************************************************}
{}
{ $Log:  13828: IdFTP.pas
{
{   Rev 1.102    11/5/2004 1:54:42 AM  JPMugaas
{ Minor adjustment - should not detect TitanFTPD better (tested at: 
{ ftp.southrivertech.com).
{ 
{ If MLSD is being used, SITE ZONE will not be issued.  It's not needed because
{ the MLSD spec indicates the time is based on GMT.
}
{
{   Rev 1.101    10/27/2004 12:58:08 AM  JPMugaas
{ Improvement from Tobias Giesen http://www.superflexible.com
{ His notation is below:
{ 
{ "here's a fix for TIdFTP.IndexOfFeatLine. It does not work the
{ way it is used in TIdFTP.SetModTime, because it only
{ compares the first word of the FeatLine." 
}
{
{   Rev 1.100    10/26/2004 9:19:10 PM  JPMugaas
{ Fixed references.
}
{
{   Rev 1.99    9/16/2004 3:24:04 AM  JPMugaas
{ TIdFTP now compresses to the IOHandler and decompresses from the IOHandler.
{ 
{ Noted some that the ZLib code is based was taken from ZLibEx.
}
{
{   Rev 1.98    9/13/2004 12:15:42 AM  JPMugaas
{ Now should be able to handle some values better as suggested by Michael J.
{ Leave.
}
{
{   Rev 1.97    9/11/2004 10:58:06 AM  JPMugaas
{ FTP now decompresses output directly to the IOHandler.
}
{
{   Rev 1.96    9/10/2004 7:37:42 PM  JPMugaas
{ Fixed a bug.  We needed to set Passthrough instead of calling StartSSL.  This
{ was causing a SSL problem with upload.
}
{
{   Rev 1.95    8/2/04 5:56:16 PM  RLebeau
{ Tweaks to TIdFTP.InitDataChannel()
}
{
    Rev 1.94    7/30/2004 1:55:04 AM  DSiders
  Corrected DoOnRetrievedDir naming.
}
{
    Rev 1.93    7/30/2004 12:36:32 AM  DSiders
  Corrected spelling in OnRetrievedDir, DoOnRetrievedDir declarations.
}
{
{   Rev 1.92    7/29/2004 2:15:28 AM  JPMugaas
{ New property for controlling what AUTH command is sent.  Fixed some minor
{ issues with FTP properties.  Some were not set to defaults causing
{ unpredictable results -- OOPS!!!
}
{
{   Rev 1.91    7/29/2004 12:04:40 AM  JPMugaas
{ New events for Get and Put as suggested by Don Sides and to complement an
{ event done by APR.
}
{
{   Rev 1.90    7/28/2004 10:16:14 AM  JPMugaas
{ New events for determining when a listing is finished and when the dir
{ parsing begins and ends.  Dir parsing is done sometimes when DirectoryListing
{ is referenced.
}
{
{   Rev 1.89    7/27/2004 2:03:54 AM  JPMugaas
{ New property:
{
{ ExternalIP - used to specify an IP address for the PORT and EPRT commands.
{ This should be blank unless you are behind a NAT and you need to use PORT
{ transfers with SSL.  You would set ExternalIP to the NAT's IP address on the
{ Internet.
{
{ The idea is this:
{
{ 1) You set up your NAT to forward a range ports ports to your computer behind
{ the NAT.
{ 2) You specify that a port range with the DataPortMin and DataPortMin
{ properties.
{ 3) You set ExternalIP to the NAT's Internet IP address.
{
{ I have verified this with Indy and WS FTP Pro behind a NAT router.
}
{
{   Rev 1.88    7/23/04 7:09:50 PM  RLebeau
{ Bug fix for TFileStream access rights in Get()
}
{
    Rev 1.87    7/18/2004 3:00:12 PM  DSiders
  Added localization comments.
}
{
{   Rev 1.86    7/16/2004 4:28:40 AM  JPMugaas
{ CCC Support in TIdFTP to complement that capability in TIdFTPServer.
}
{
{   Rev 1.85    7/13/04 6:48:14 PM  RLebeau
{ Added support for new DataPort and DataPortMin/Max properties
}
{
    Rev 1.84    7/6/2004 4:51:46 PM  DSiders
  Corrected spelling of Challenge in properties, methods, types.
}
{
{   Rev 1.83    7/3/2004 3:15:50 AM  JPMugaas
{ Checked in so everyone else can work on stuff while I'm away.
}
{
{   Rev 1.82    6/27/2004 1:45:38 AM  JPMugaas
{ Can now optionally support LastAccessTime like Smartftp's FTP Server could.
{ I also made the MLST listing object and parser support this as well.
}
{
{   Rev 1.81    6/20/2004 8:31:58 PM  JPMugaas
{ New events for reporting greeting and after login banners during the login
{ sequence.
}
{
{   Rev 1.80    6/20/2004 6:56:42 PM  JPMugaas
{ Start oin attempt to support FXP with Deflate compression.  More work will
{ need to be done.
}
{
{   Rev 1.79    6/17/2004 3:42:32 PM  JPMugaas
{ Adjusted code for removal of dmBlock and dmCompressed.  Made TransferMode a
{ property.  Note that the Set method is odd because I am trying to keep
{ compatibility with older Indy versions.
}
{
{   Rev 1.78    6/14/2004 6:19:02 PM  JPMugaas
{ This now refers to TIdStreamVCL when downloading isntead of directly to a
{ memory stream when compressing data.
}
{
{   Rev 1.77    6/14/2004 8:34:52 AM  JPMugaas
{ Fix for AV on Put with Passive := True.
}
{
    Rev 1.76    6/11/2004 9:34:12 AM  DSiders
  Added "Do not Localize" comments.
}
{
{   Rev 1.75    2004.05.20 11:37:16 AM  czhower
{ IdStreamVCL
}
{
{   Rev 1.74    5/6/2004 6:54:26 PM  JPMugaas
{ FTP Port transfers with TransparentProxies is enabled.  This only works if
{ the TransparentProxy supports a "bind" request.
}
{
{   Rev 1.73    5/4/2004 11:16:28 AM  JPMugaas
{ TransferTimeout property added and enabled (Bug 96).
}
{
{   Rev 1.72    5/4/2004 11:07:12 AM  JPMugaas
{ Timeouts should now be reenabled in TIdFTP.
}
{
{   Rev 1.71    4/19/2004 5:05:02 PM  JPMugaas
{ Class rework Kudzu wanted.
}
{
{   Rev 1.70    2004.04.16 9:31:42 PM  czhower
{ Remove unnecessary duplicate string parsing and replaced with .assign.
}
{
{   Rev 1.69    2004.04.15 7:09:04 PM  czhower
{ .NET overloads
}
{
{   Rev 1.68    4/15/2004 9:46:48 AM  JPMugaas
{ List  no longer requires a TStrings.  It turns out that it was an optional
{ parameter.
}
{
{   Rev 1.67    2004.04.15 2:03:28 PM  czhower
{ Removed login param from connect and made it a prop like POP3.
}
{
{   Rev 1.66    3/3/2004 5:57:40 AM  JPMugaas
{ Some IFDEF excluses were removed because the functionality is now in DotNET.
}
{
{   Rev 1.65    2004.03.03 11:54:26 AM  czhower
{ IdStream change
}
{
{   Rev 1.64    2/20/2004 1:01:06 PM  JPMugaas
{ Preliminary FTP PRET command support for using PASV with a distributed FTP
{ server (Distributed PASV -
{ http://drftpd.org/wiki/wiki.phtml?title=Distributed_PASV).
}
{
{   Rev 1.63    2/17/2004 12:25:52 PM  JPMugaas
{ The client now supports MODE Z (deflate) uploads and downloads as specified
{ by http://www.ietf.org/internet-drafts/draft-preston-ftpext-deflate-00.txt
}
{
{   Rev 1.62    2004.02.03 5:45:10 PM  czhower
{ Name changes
}
{
{   Rev 1.61    2004.02.03 2:12:06 PM  czhower
{ $I path change
}
{
{   Rev 1.60    1/27/2004 10:17:10 PM  JPMugaas
{ Fix from Steve Loft for a server that sends something like this:
{ "227 Passive mode OK (195,92,195,164,4,99 )"
}
{
{   Rev 1.59    1/27/2004 3:59:28 PM  SPerry
{ StringStream ->IdStringStream
}
{
{   Rev 1.58    24/01/2004 19:13:58  CCostelloe
{ Cleaned up warnings
}
{
{   Rev 1.57    1/21/2004 2:27:50 PM  JPMugaas
{ Bullete Proof FTPD and Titan FTP support SITE ZONE.  Saw this in a command
{ database in StaffFTP.
{ InitComponent.
}
{
{   Rev 1.56    1/19/2004 9:05:38 PM  JPMugaas
{ Fixes to FTP Set Date functionality.
{ Introduced properties for Time Zone information from the server.  The way it
{ works is this, if TIdFTP detects you are using "Serv-U" or SITE ZONE is
{ listed in the FEAT reply, Indy obtains the time zone information with the
{ SITE ZONE command and makes the appropriate calculation.  Indy then uses this
{ information to calculate a timestamp to send to the server with the MDTM
{ command.  You can also use the Time Zone information yourself to convert the
{ FTP directory listing item timestamps into GMT and than convert that to your
{ local time.
{ FTP Voyager uses SITE ZONE as I've described.
}
{
{   Rev 1.55    1/19/2004 4:39:08 AM  JPMugaas
{ You can now set the time for a file on the server.  Note that these methods
{ try to treat the time as relative to GMT.
}
{
{   Rev 1.54    1/17/2004 9:09:30 PM  JPMugaas
{ Should now compile.
}
{
{   Rev 1.53    1/17/2004 7:48:02 PM  JPMugaas
{ FXP site to site transfer code was redone for improvements with FXP with TLS.
{  It actually works and I verified with RaidenFTPD
{ (http://www.raidenftpd.com/) and the Indy FTP server components.   I also
{ lowered the requirements for TLS FXP transfers.  The requirements now are:
{ 1) Only server (either the recipient or the sendor) has to support SSCN
{
{ or
{
{ 2) The server receiving a PASV must support CPSV and the transfer is done
{ with IPv4.
}
{
{   Rev 1.52    1/9/2004 2:51:26 PM  JPMugaas
{ Started IPv6 support.
}
{
{   Rev 1.51    11/27/2003 4:55:28 AM  JPMugaas
{ Made STOU functionality separate from PUT functionality.  Put now requires a
{ destination filename except where a source-file name is given.  In that case,
{ the default is the filename from the source string.
}
{
{   Rev 1.50    10/26/2003 04:28:50 PM  JPMugaas
{ Reworked Status.
{
{ The old one was problematic because it assumed that STAT was a request to
{ send a directory listing through the control channel.  This assumption is not
{ correct.  It provides a way to get a freeform status report from a server.
{ With a Path parameter, it should work like a LIST command  except that the
{ control connection is used.  We don't support that feature and you should use
{ our LIst method to get the directory listing anyway, IMAO.
}
{
{   Rev 1.49    10/26/2003 9:17:46 PM  BGooijen
{ Compiles in DotNet, and partially works there
}
{
{   Rev 1.48    10/24/2003 12:43:48 PM  JPMugaas
{ Should work again.
}
{
{   Rev 1.47    2003.10.24 10:43:04 AM  czhower
{ TIdSTream to dos
}
{
{   Rev 1.46    10/20/2003 03:06:10 PM  JPMugaas
{ SHould now work.
}
{
{   Rev 1.45    10/20/2003 01:00:38 PM  JPMugaas
{ EIdException no longer raised.  Some things were being gutted needlessly.
}
{
    Rev 1.44    10/19/2003 12:58:20 PM  DSiders
  Added localization comments.
}
{
{   Rev 1.43    2003.10.14 9:56:50 PM  czhower
{ Compile todos
}
{
{   Rev 1.42    2003.10.12 3:50:40 PM  czhower
{ Compile todos
}
{
{   Rev 1.41    10/10/2003 11:32:26 PM  SPerry
{ -
}
{
{   Rev 1.40    10/9/2003 10:17:02 AM  JPMugaas
{ Added overload for GetLoginPassword for providing a challanage string which
{ doesn't have to the last command reply.
{ Added CLNT support.
}
{
{   Rev 1.39    10/7/2003 05:46:20 AM  JPMugaas
{ SSCN Support added.
}
{
{   Rev 1.38    10/6/2003 08:56:44 PM  JPMugaas
{ Reworked the FTP list parsing framework so that the user can obtain the list
{ of capabilities from a parser class with TIdFTP.  This should permit the user
{ to present a directory listing differently for each parser (some FTP list
{ parsers do have different capabilities).
}
{
{   Rev 1.37    10/1/2003 12:51:18 AM  JPMugaas
{ SSL with active (PORT) transfers now should work again.
}
{
{   Rev 1.36    9/30/2003 09:50:38 PM  JPMugaas
{ FTP with TLS should work better.  It turned out that we were negotiating it
{ several times causing a hang.  I also made sure that we send PBSZ 0 and PROT
{ P for both implicit and explicit TLS.  Data ports should work in PASV again.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -