CuteFTP Server supports a few built-in custom commands to provide extended capabilities its client counterpart, CuteFTP. However other FTP clients can also access these custom commands.
One of these proprietary commands is XCRC.
This feature is useful for mission critical data transfers. Although TCP/IP checks that all packets are received, malformed packets or other mishaps can occur, leading the FTP client to believe that a transfer was successful when it was not.
The File Integrity Checking command is defined as “XCRC”. Once a client performs a transfer, it can request for the server to do a checksum calculation on the file. If it matches the checksum on the client, then the transfer is deemed successful.
Like the COMB custom command, XCRC is a proprietary command and is not defined nor endorsed by any FTP related RFC. Competing servers who wish to implement this command may do so using the syntax described below.
XCRC <File Name>
XCRC <File Name>, <EP>
XCRC <File Name>, <SP>, <EP>
SP = Starting Point in bytes (from where to start CRC calculating)
EP = Ending Point in bytes (where to stop CRC calculating)
COMMAND:> XCRC "/Program Files/MSN Gaming Zone/Windows/chkrzm.exe" 0 42575
SP and EP are optional parameters. If not specified then it will calculate the CRC for the whole file. If only EP is specified, then the CRC calculation will start from the beginning of the file to the EP.
This command can be used for a single file at a time. It does not allow file lists as parameters.
The standard CRC32 algorithm is used (for speed and efficiency).
A client can invoke this command for uploads, downloads, single and Multi-Part transfers.
Server replies:
250 <XCRC>. (returns calculated CRC value)
450 Requested file action not taken. (File is busy)
550 Requested action not taken. (File not found, no read permission, SP or EP not correct).