* * This is Version 4.0.0 * See User's Manual for changes before 1.2 Version 1.2 June 23, 1999 STATE_ACCEPT calls FtpResponse() only if decimal code is < 400 FtpResponse() returns error if decimal code >= 400 (instead of 500) Version 1.2.1 August 8, 1999 Added fceHello() which issues NOP command to server. Version 1.2.2 September 11, 1999 Added fceCommand. fceCommand(Chan, "command") sends arbitrary command to server. Version 1.2.3 September 16, 1999 fceGetInteger,fceSetInteger,fceGetString,fceSetString write to log file. Version 1.2.4 September 22, 1999 Accept code 250 ("Transfer completed successfully") as well as 226 (STATE_XFER_DONE). Version 1.2.5 September 29, 1999 Added FCE_SET_MAX_LISTEN_WAIT. fceSetInteger(Chan, FCE_SET_MAX_LISTEN_WAIT, milliseconds) sets the maximum time the DLL will wait for the winsock "listen" to complete. File not created in fceGetFile until get response from server. Version 1.2.6 October 10, 1999. fceSetInteger and fceSetString logs passed parameters. Version 1.2.7 October 26, 1999. Internal security modifications. Version 1.2.8 October 28, 1999. Changes to internal memory management functions were made. Version 1.2.10 January 8, 2000. Added Queue functions so don't have to use the winsock seek command. Always send each command as single string, rather than as text then CRLF. Version 1.2.11 January 18, 2000. Fixed bug - LogHandle & LastLogHandle were not set to 0 in fceClose. Fixed bug - Cleared queue after close. Version 2.0.0 April 24, 2000. WriteBufferSize default reduced to 128. Added FCE_GET_LINE_COUNT to fceGetString. Rename file being downloaded by specifying "oldname:newname" for file. Added FCE_SET_DATA_PORT to fceSetInteger. Version 2.0.1 April 27, 2000. Increased buffer size from 64 to 128 bytes for LocalDir and ServerDir. WriteBufferSize default increased to 512. Version 2.0.2 May 8, 2000. Replaced MaxResponseWait with MaxFtpLineWait in state STATE_PUT_WRITE. Increased default for MaxFtpLineWait and MaxResponseWait to 60 seconds. fceIsConnected() called inside fceWriteSocket(). Version 2.0.3 May 12, 2000. Password not used if specified password has zero length. Version 2.0.4 May 18, 2000. fceSetLocalDir() verifies that local directory is writable. Version 2.0.5 June 7, 2000. CurrentTime updated inside state STATE_GET_READ. Version 2.0.6 July 10, 2000. Replaced SkipToWhiteSpace with SkipToQuote in STATE_PWD_OK. AsciiCopy() allows non-ASCII characters. Version 2.0.7 July 27, 2000. fceSetLocalDir() closes test file ($$$$.TMP) immediately. Version 2.0.8 August 7, 2000. Added FCE_SET_APPEND_MODE. Version 2.0.9 September 22, 2000. Added FCE_RENAME_DELIMITER to seeSetInteger(). Version 2.0.10 September 25, 2000. Corrected fceGetStatus(Chan, FCE_CONNECT_STATUS) Version 2.0.11 October 19, 2000. Corrected poblem with fceHello. Version 2.0.12 November 8, 2000. $$$$.TMP automatically deleted [WIN32 only]. Version 2.1.0 January 8, 2001. Added FCE_SET_SERVER_OFFSET and FCE_SET_CLIENT_OFFSET. Rename file being uploaded by specifying "oldname:newname" for file. Added FCE_GET_LOCAL_IP to fceGetString. Version 2.2.0 August 27, 2001 WriteBufferSize increased from 512 to 1024 (WIN32 only). Added fceMatchFile function (used in multi-file uploads and downloads). Specify User as '\0' (in fceConnect) to skip USER and PASS processing. Version 2.2.1 September 10, 2001 Added FCE_SET_BLOCKING_MODE to control blocking while connecting. Version 2.2.2 September 20, 2001 Rewrote MatchString(). Changed default to blocking mode (EnableNonBlocking) [bld 5]. Write CID to LOG file Added 200ms to min wait after sending PASS [bld 7]. Call FlushCtrlQueue(ClientPtr) before each command [bld 8]. Version 2.2.3 October 10, 2001 "WARNING: 226/250 not seen" written to log file rather than returning error FCE_NOT_COMPLETED. Version 2.2.4 December 7, 2001 Added FCE_GET_ERROR_LINE Version 2.2.5 January 28, 2002 Increased BIG_STR from 128 to 255. Version 2.2.6 February 4, 2002 fceCommand send CRLF with command in one write. Version 2.3.0 Added fceFileLength function to extract file length from listing entry. fceExtract handles line # 0 properly. Added FCE_GET_QUEUE_ZERO (returns # times fceQueueLoad returns 0). Fixed problem with long server offsets in 16-bit version. Supports 32 channels and 128 data ports. fceGetList returns error -32 if receive buffer is too small. Version 2.3.1 July 8, 2003 Added FCE_SET_CONNECT_WAIT_IN_SECS, FCE_SET_MAX_RESPONSE_WAIT_IN_SECS, FCE_SET_MAX_LINE_WAIT_IN_SECS Version 2.3.2 February 24, 2004 FCE_NOT_COMPLETED returned if not returned by control socket in 2 tries. 2048 data ports per channel for 1 & 2 channels 512 data ports per channel for 3 to 8 channels 128 data ports per channel for 9 to 32 channels DataPort mask corrected to 0x7fff Version 2.4.0 March 9, 2004 Added fceGetLocalFList and fceGetLocalFSize Default SleepTime changed to 12ms Choose first data port randomly within [FirstPort,LastPort] range. Version 2.4.1 May 10, 2004 LocalDir always stored with backslash as last character fceWriteSocket makes up to 12 attempts to write with 1/4 second sleep. Version 2.4.2 Nov 1, 2004 Add FCE_AUTO_LOG_CLOSE and FCE_CLOSE_LOG_FILE Version 2.4.3 Nov 22, 2004 Updated CurrentTime in state STATE_LISTEN Version 2.4.4 Feb 7, 2005 Added MaxFtpLineWait to end of state STATE_GET_READ Version 2.5.0 May 13, 2005 Added FCE_NO_GREETING error. Fixed a problem with WaitForConnect() Added fceShortToByte() and fceByteToShort() Version 2.5.1 October 17, 2005 Maximum PUT buffer size increased from 8K to 16K (16384) Recoded sleep wait in fceWriteSocket for improved upload performance. Version 2.5.2 December 1, 2005 [not released] Version 2.5.3 January 17, 2006 Added internal memory allocation debugging. Version 2.5.4 April 5, 2006 Added GET_FULL_RESPONSE Version 2.5.5 August 29, 2006 fceDebug(0, 0, NULL, 9903) reports # open sockets Close control socket whenever fceConnect fails (fixes socket leak problem). Version 2.6.0 January 17, 2007 Added FCE_SET_FIRST_DATA_PORT and FCE_SET_LAST_DATA_PORT to fceSetInteger. Maximum data port extended to 65535. Added FCE_HIDE_PASSWORD to fceSetInteger. Added S/KEY authentication Version 2.7.0 June 23, 2008 Fixed problem with non-blocking mode when connecting. Added FCE_LOCAL_DIR_IS_CDROM to fceSetInteger, which allows the local directory to be a read-only device such as a CDROM. Added FCE_DISABLE_SKEY to fceSetInteger, which disables S/KEY processing. Added MDTM example eprograms gets the "File Modification Time" for a file. Version 2.7.1 July 8, 2008 Fixed problem when server fails to create data socket for empty listing. Version 3.0.0 September 11, 2009 Added support for 64-bit Windows (Win64) Added fceSleep, fceIsConnected, and fceToInteger Version 3.1.0 July 5, 2011 Log file is now time-stamped Added diagnostics to function fceFileLength fceGetLocalFList no longer counts subdirectories Added fceGetFileSize function Added fceGetFileTime function Version 3.2.0 May 21, 2012 Fixed Bug: Open control socket not always closed. Fixed Bug: Open listen socket not always closed. Added function fcePutDirFiles (uploads files in directory) Added function fceGetDirFiles (downloads files in directory) Version 3.3.0 April 22, 2014 Fixed problem with connecting w/o blocking. Fixed problem with server name being corrupted in the FCE log file. Added project files for Visual C/C++ 2013. Added project files for Visual C/C++ 2012. Added support for Digital Mars C compiler. Added function fceGetSubDirs() Added FCE_SET_DEBUG_LEVEL to fceSetInteger(). Added Embarcadero C++ Builder XE library files. Version 3.4.0 October 28. 2015 Added debug diagnostics to fceSocketStatus(). Fixed problem with connecting w/o blocking. Fixed problem with server name being corrupted in the FCE log file. Replaced FCE_EOF with FCE_CANNOT_OPEN if FCE log file cannot be created. Automatically adjust sleep times for slow FTP servers. Version 4.0.0 October 10, 2023 Fixed problem: In some cases FCE functions returned 1 instead of -1 Log file displays filename passed to fceGetFile and fcePutFile Data no longer written to log file Default write size buffer increased from 1024 to 4096 Default is set to ASCII mode (as opposed to binary) Added "Not connected to server" error message.(FCE_NOT_CONNECTED) I/O buffer increased to 65536 bytes [END]