BulletProof FTP Server Changelog

What's new in BulletProof FTP Server 2019.0.0.50

Feb 12, 2019
  • Improved:
  • FTP: Rename From/To (RNFR/RNTO/RENAME): if source-file doesn't exist, report "550 '/filename': no such file or directory." vs "500 Cannot RNFR."

New in BulletProof FTP Server 2019.0.0.49 (Feb 7, 2019)

  • Improved: Settings->Security Options->Defender: Brute-Force: once an IP has been banned due to surpassing the number of login attempts, the internal list for the number of attempts will be reset to 0, if the IP Address is removed from the BAN-LIST (Settings->Security Options->IP Access/Deny)
  • Improved: Settings->Security Options->Defender: Brute-Force: if an IP is BANNED due to triggering function, the UI will be refeshed (Settings->Security Options->IP Access/Deny)
  • X Fixed: Settings->Security Options->Defender: Brute-Force: on successful login, the # of failed attempts will be reset to 0 for the IP
  • Improved: Settings->Security Options->Defender: Brute-Force: if a login is denied, due to surpassing # of allowed-attempts, this fact will now be outputted to the log instead of a silent denial
  • Improved: Settings->Security Options->Defender: Brute-Force: only tracked invalid logins (no longer counts misconfigured account access-rights, denied due to IP constraint, conn-limit

New in BulletProof FTP Server 2018.0.0.49 (Feb 7, 2019)

  • Improved: Settings->Security Options->Defender: Brute-Force: once an IP has been banned due to surpassing the number of login attempts, the internal list for the number of attempts will be reset to 0, if the IP Address is removed from the BAN-LIST (Settings->Security Options->IP Access/Deny)
  • Improved: Settings->Security Options->Defender: Brute-Force: if an IP is BANNED due to triggering function, the UI will be refeshed (Settings->Security Options->IP Access/Deny)
  • Fixed: Settings->Security Options->Defender: Brute-Force: on successful login, the # of failed attempts will be reset to 0 for the IP
  • Improved: Settings->Security Options->Defender: Brute-Force: if a login is denied, due to surpassing # of allowed-attempts, this fact will now be outputted to the log instead of a silent denial
  • Improved: Settings->Security Options->Defender: Brute-Force: only tracked invalid logins (no longer counts misconfigured account access-rights, denied due to IP constraint, conn-limit

New in BulletProof FTP Server 2018.0.0.48 (Jan 15, 2019)

  • Improved: SFTP: Users->Edit->SFTP->Public Key->"Text": allow keyboard entry of text (or clipboard paste)
  • X Fixed: SFTP: Validate logins against the "Login" for a give user-account, previously used only the account-name, this required the account/login to be the same to login
  • X Fixed: FTP: Users->Edit->Access Rights: LIST was being allowed, even if it wasn't in the list of rights.
  • Improved: INTERNAL-CODE: updated SFTP engine to v16.0.316 from v16.0.308

New in BulletProof FTP Server 2018.0.0.47 (Sep 12, 2018)

  • Fixed:
  • SFTP: Users->Edit->SFTP->Generate Private/Public Key-Pairs: the public/private keys were getting reversed in saving to file/clipboard/software
  • SFTP: when terminating with active SFTP-clients, an error in typecasting caused an exception when freeing the first sftp-client thread, resulting in memory leak with unfree()'d threads
  • Tools->Check for Update: resolved a problem in which it never detected a new version via Manual check (check at start-up always worked).
  • Improved:
  • Tools->Check for Update: UI changes to the dialog containing changelog (fixed font, no word-wrap, sizeable dialog, 'See Online' button, accel keys, escape to cancel)
  • Settings->Security Options->Defender: Brute-Force & Anti-Hammering: List of attempts (but not yet reaching threshold) from evil IPs are now maintained between program restarts (no longer tracked only within the current instance)

New in BulletProof FTP Server 2018.0.0.46 (May 5, 2018)

  • Fixed:
  • SFTP: Users->Edit->SFTP->Generate Private/Public Key-Pairs: hardened the calls to "ssh-keygen.exe" to prevent errors on different versions of Windows
  • SFTP: Users->Edit->SFTP->Generate Private/Public Key-Pairs: on error, command-line will be copied to clipboard for manually running
  • SFTP: Users->Edit->SFTP->Generate Private/Public Key-Pairs: increased logging for debug-mode to identify errors on different editions of Windows
  • SFTP: Users->Edit->SFTP->Generate Private/Public Key-Pairs: added 3 open-source DLLs needed for "ssh-keygen.exe" (msys-1.0.dll,msys-crypto-1.0.0.dll,msys-minires.dll)

New in BulletProof FTP Server 2018.0.0.45 (May 4, 2018)

  • Improved: LICENSE-CODE: after the license code has expired, do not start the SERVICE on quit
  • Improved: UI: on first run, main window is now to set appear in the middle of the screen with width/height of 800x600
  • Fixed: Activity->Dashboard->Bytes Transferred(since Reboot)->Downloaded: corrected an error which was only counting bytes transferred during resumed (RETR) downloads
  • Fixed: SFTP: Users->Edit->SFTP->Generate Private/Public Key-Pairs: Error:"Windows cannot find...ssh-keygen.exe", file definition was missing for in-place updates OTA
  • Fixed: Settings->Logging->Summaries: configuration page was missing from available pages after UI refresh in 2018.0.0.40
  • Fixed: Settings->Logging->Summaries->Maintain Stats for Groups: corrected problem in which ON|OFF setting was ignored and used Maintain Stats for Users instead

New in BulletProof FTP Server 2018.0.0.44 (May 1, 2018)

  • Fixed: FTP: Settings->Protocol->FTP->Options: corrected an error message which was always showing the message 'Error on Save', even though it was saving correctly.
  • Fixed: FTPS: Settings->Protocols->FTPS->Explicit Mode->"Disallow FTP-Clients that use plain-text": now correctly disallows the login of ftp-clients via plain-text when enabled
  • Wishlist: SFTP/FTPS/FTP: Users->Edit->Restrictions->"Restrict user to specific protocols:" to any combination of "FTP (Classic), FTPS (FTP over TLS/SSL), SFTP (FTP over SSH)"
  • Improved: SFTP: Increased logging when a user-account fails to login via SFTP
  • Improved: SFTP: Public/Private Key-Generator for user-accounts with SFTP enabled
  • Fixed: UI: if the previous instance crashed, it was possible for the last "UI page" to be saved with an incorrect value, causing a Crash-Report (bpftpserver.ini::FtpServer::LastBreadCrumb==0)
  • Fixed: SERVICE-MODE: added logic to prevent the web-browser from being launched when running as a SERVICE
  • Fixed: LICENSE-CODE: In high volume installations, too many calls to VerifyKey could result in corrupting memory (similar code identified in 2013.1.0.8) and cause the installation to not be "registered" resulting in "421 INFO: ftp-client connection failed. Server has reached the maximum number of connections for the edition-purchased."
  • Improved: LICENSE-CODE: Output of license-code at start-up to log window (normal behavior of every 60 min will resume from then)
  • Improved: LICENSE-CODE: Resolved a problem in which license-code wasn't handling the expiration period correctly when only 1 day remained
  • Improved: LICENSE-CODE: after removing the license code the software will not try to start the SERVICE at termination
  • Improved: LICENSE-CODE: see commit ARM:93e61f2
  • Improved: INTERNAL-CODE: Deprecated old PageControl objects from previous UI prior to 2018.0.0.40

New in BulletProof FTP Server 2018.0.0.43 (Mar 13, 2018)

  • SUMMARY: Added the ability to disable obsolete FTPS protocols (SSLv3, TLSv1.0/1.1)
  • Improved: Settings -> Protocols -> FTPS (TLS/SSL): Min Supported Security Protocol: Allows for the toggling of TLS/SSL version in order to turn-off deprecated/insecure protocols (SSLv3,TLSv1.0,TLSv1.1)

New in BulletProof FTP Server 2018.0.0.42 (Mar 8, 2018)

  • Fixed: Activity -> User Activity: Fixed Access-Violation which could be triggered by rapidly connecting/disconnecting ftp-clients (also affects normal activity, however much less frequently).
  • Fixed: Windows APPCRASH: Resolved a problem in ftp-engine (classic, non secure) in which the QUIT command is sent by the ftp-client and the connection is severed before BPFTP Server responds to the ftp-client with an OK (reproduced with ncftpput and ctrl-Improved: INTERNAL-CODE: clean-up code after linter discovered some inconsistencies

New in BulletProof FTP Server 2018.0.0.41 (Jan 25, 2018)

  • Changed: INTERNAL-CODE: new compiler D10.2.2.2004
  • Changed: Private P2P: deprecated old file-sharing functionality as a pre-torrent relic
  • Improved: FTPS: OpenSSL updated to v1.1.0g (SFTP does not use OpenSSL)
  • Fixed: Logging-Disk: corrected issue of rotating log-files, but not closing previous. Also affected changes to the Log File location or rotation settings.
  • Fixed: Logging-Screen: corrected issue which prevented logging from being displayed unless your paused/resumed screen-logging
  • Fixed: Settings -> Multi-IP: corrected a problem in which IP-rules weren't correctly initializing the ftp-plaintext server engine.
  • Fixed: Settings -> Multi-IP: fixed a problem with the UI not responding to being enabled.
  • Fixed: Users -> Edit -> Addl -> Banned Files: right-click context-menu was not working, corrected "Edit" function, protocol reply-code was not set correctly to allow for custom reply-message to ftp-client

New in BulletProof FTP Server 2018.0.0.40 (Dec 8, 2017)

  • SUMMARY: SFTP (SSH) is now supported in the "Secure FTP" edition. Additionally, the UI has been significantly streamlined in order to provide a WEB-UI in a later version.
  • Added: SFTP (SSH) is now supported
  • Changed: INSTALLER: Moved START menu items to TOOLS menu in software, deleted associated resources from install (Website, Purchasing, Manual, EULA)
  • Changed: INSTALLER: moved to Inno 5.5.9a from 5.5.5a
  • X Fixed: INTERNAL-CODE: CPU/Memory information is now being accurately reported
  • Changed: INTERNAL-CODE: new compiler D10.2, updated third-party code (web-update, raize, jedi, lmd, ics v8.5)
  • Changed: SECURE-FTP: FTPS (TLS/SSL) was renamed from "Secure FTP", as we support multiple methods of "secure ftp"
  • Changed: SECURE-FTP: SFTP: Supports ServerName and MOTD in Auth-Banner
  • Changed: UI: Activity was renamed from "Server Monitor"
  • Changed: UI: Activity: the ability to turn off or stop listening for new connections was deprecated
  • Changed: UI: Classic Menu: deprecated support for old MainMenu
  • Changed: UI: Live Logging was renamed from "Log Watch"
  • Changed: UI: New "Tools" menu option which includes Backup/Restore, Web Links, About and Firewall/Speed Tester
  • Changed: UI: Settings now contains a different UI utilizing a TreeView vs Buttons.
  • Changed: UI: Settings was renamed from "Management"
  • Changed: UI: Settings was reworked and a significant amount of complication was reduced by changing the paradigm in which "frames" are swapped on screen
  • Changed: UI: Users|Groups was renamed from "User Manager" and "Group Manager"
  • Changed: UI: Users|Groups: Access-Rights deprecated Drag/Drop for new rights
  • X Fixed: UI: Users|Groups: UI fixes to ensure that the list of users/groups is aligned within allocated space.
  • X Fixed: UI: Settings -> DynIP: fixed internal problem where Load() was performing logic meant for Save() (and vice versa)

New in BulletProof FTP Server 2017.2.0.38 (Nov 9, 2017)

  • SUMMARY:
  • Internal changes to prevent ftp-server from "going offline" randomly in some installations.
  • Fixed:
  • INTERNAL-CODE: Changes to disallow the auto-shutdown of the underlying FTP Server (plain-text) when a background

New in BulletProof FTP Server 2017.2.0.37 (Nov 2, 2017)

  • Fixed: LICENSE-CODE: Correction to stored license codes (14dfb51d,904eba7c)
  • Improved: INTERNAL-CODE: Added Logging to common UI message-dlg to save the question and response to log (UI-MSGDLG)
  • Improved: INTERNAL-CODE: Added Logging when the UI is switched to various settings, OnSave and OnCancel are logged (UI-ACTION,UI-SETTINGS-SAVE,UI-SETTINGS-CANCEL)

New in BulletProof FTP Server 2017.2.0.36 (Jun 20, 2017)

  • Improved:
  • Management -> Events Manager -> EVENT_NAME -> Email: Provided support for %VARS in the TO/CC/BCC fields
  • Fixed:
  • Management -> Settings -> Multi-IP Settings and User|Group Manager -> Login -> Home IP: Corrected a problem in which the software was not correctly restricting a user-account to a specific IP
  • Improved:
  • SecureFTP: OpenSSL updated to v1.1.0f
  • Fixed:
  • User|Group Manager -> Edit -> Additional -> Show MOTD Messages: Corrected a problem in which the protocol was being broken with incorrect message formatting if enabled
  • Fixed:
  • User|Group Manager -> Edit -> Additional -> Show MOTD/CWD Message: Corrected a problem in which custom-text containing more than 1 line was breaking the protocol as 226&426 line-responses were not terminated correctly
  • Fixed:
  • User|Group Manager -> Edit -> Quota|Private P2P -> Enable: corrected an issue in the protocol which would cause some ftp-clients to sever the connection if enabled
  • Changed:
  • End-User License Agreement: Added language to the TERMINATION section to provide licensee 30 days to cure violations of licensing
  • Improved:
  • INTERNAL-CODE: Merged third-party engine code into source-code repo
  • Improved:
  • INTERNAL-CODE: Migrated engine to 8.44 from 8.34
  • Improved:
  • LICENSE-CODE: Change the method of which license-codes are removed. They will now be marked "expired" and this will help with issues related to "deleting".
  • Fixed:
  • LICENSE-CODE: Home-Secure license-codes were not accepted due to a missing certificate
  • Fixed:
  • PROTOCOL: Corrected an error which was reporting "Assigned(FOnBPEngine_GetQuotaAsStr)==FALSE" and potentially breaking the protocol for some ftp-clients
  • Fixed:
  • PROTOCOL: Corrected an error which was reporting "Assigned(FOnBPEngine_GetRatioAsStr)==FALSE" and potentially breaking the protocol for some ftp-clients
  • Improved:
  • PROTOCOL: Support for creating multiple directories at once. Example "mkdir d1/d2/d3/d4"

New in BulletProof FTP Server 2017.2.0.35 (Mar 7, 2017)

  • Fixed: Management -> Settings -> System Service: Corrected an issue in which the SERVICE would not quit (and allow GUI to take over), if ftp-clients were connected
  • Fixed:Management -> Settings -> System Service: Found a case when the GUI is closed, the SERVICE fails to start due to exclusive WRITE-LOCK on bpftpserver.ini
  • Improved:Management -> Settings -> System Service: Found multiple occurences where an exception could interfere with controlling the SERVICE due to modal dialogs being displayed (wrapped all message-dialogs with code to prevent display, if running as a SERVICE)
  • Fixed: Server Monitor -> Upload|Download Summary: Corrected a problem in which data is not preserved when running as a SERVICE
  • Fixed: Server Monitor -> Upload|Download Summary: corrected a problem in which the files were growing exponentially by appending the data each time to the file (when it should be overwritten) "bpftpserver-common-(uploads|downloads).ini"
  • Improved: SecureFTP: OpenSSL updated to v1.1.0e
  • Improved: SecureFTP: Sanity checks with logging if FTPS certificate files are not found
  • Fixed:INTERNAL-CODE: found several cases where operating in DEBUG mode would cause the bpftpserver-uacadmin.exe utility to fail due to exclusive WRITE-LOCK on bpftpserver.ini
  • Improved:INTERNAL-CODE: OnStartUp, added spin-lock code to wait for exclusve WRITE-LOCK on bpftpserver.ini, in order to give the OS time for parent processes to terminate
  • Improved:INTERNAL-CODE: additional INI Storage routines for real data-types, as date/time was being used for LogWatch interval
  • Improved:INTERNAL-CODE: additional debug-loggging during "Configuring..."
  • Improved:INTERNAL-CODE: moved free()'ing of objects to *before* the SERVICE is created, as some objects save their state at free(). If the SERVICE is started before the save, then an invalid state could be reached. This was part of the reason for exponential growth of "bpftpserver-common-(uploads|downloads).ini"
  • Improved:INTERNAL-CODE: substantial reordering of start-up code to facilitate UI logging of problems
  • Improved:INTERNAL-CODE: removed OLDCODE comment sections
  • Fixed:QUICK-FIX: new common dialog-box was only displaying during SERVICE, not during GUI. Which is exactly opposite, pulled .34 and released .35 immediately.

New in BulletProof FTP Server 2017.2.0.33 (Feb 7, 2017)

  • SUMMARY: Many UI fixes that include UI elements that didn't respond when clicked and MSIE mistakenly being used as the web-browser
  • x Fixed: Group Manager: corrected right-click, context menu, for "Copy Group-List to Clipboard"
  • x Fixed: INTERNAL-CODE: correct *many* unwired events in the UI that had cropped up with the refactoring to Frames (v2014.x)
  • x Fixed: INTERNAL-CODE: moved opening web-pages to linkable function
  • x Fixed: INTERNAL-CODE: refactored the saving of saved position/size information for UI elements (FormStorageSavedValues)
  • x Fixed: LICENSE-CODE: Default web-browser will now be loaded for expired licenses (vs using default MSIE)
  • x Fixed: UI: OnMinimized to TrayIcon, corrected a problem where the Log wasn't suspended if OptionsLogDisabledWhenMinimized==TRUE
  • x Fixed: User Manager: UI corrected a problem that prevented the restoration of user-customized width for user-list
  • x Fixed: User Manger -> Edit User -> Group Name: corrected a problem that prevented the enabling of a group for a user

New in BulletProof FTP Server 2017.2.0.32 (Jan 21, 2017)

  • FIXED:
  • Management -> Settings -> Advanced -> Allow 0 byte files: When a ZERO byte file is uploaded, and this setting is ON (DEFAULT), every subsequently uploaded file (in the same session) would append (byte-for-byte) into the first file (0 byte file).
  • Management -> Settings: Resolved a problem in which the last depressed toolbutton is show, but the content is for a different toolbutton. Close BPS when viewing Management -> Settings -> Advanced, start BPS again, "Advanced" will be depressed, but it will display the content for "General".
  • Server Monitor -> Upload Summary: If "Allow 0 byte files" (default) is enabled, and a 0 byte file is uploaded, the filesize will now show "0" (vs "-1). Conversly, if "Allow 0 byte files" is disabled (not default), then files uploaded with 0 bytes, will say "-1" (as the file wasn't allowed and doesn't exist on the file-system).
  • Server Monitor -> Upload|Download Summary -> (right-click): "Clear List": Previously, this would just remove all items from the list, but would appear again as soon as you went back. Now it will stay cleared, until the software is restarted.
  • Server Monitor -> Upload|Download Summary -> (right-click): renamed "Stop Tracking" to "Tracking Enabled", as this more appropriately describes the behavior. Added a confirmation dialog as well.
  • Server Monitor -> Upload|Download Summary -> (right-click) -> "Tracking Enabled|Clear List": Added elilipsis to show a dialog will follow clicking menu item.

New in BulletProof FTP Server 2017.2.0.31 (Jan 21, 2017)

  • FIXED:
  • UNINSTALL: Corrected a problem in which uninstalling the software will present an error from bpftpserver-uacadmin.exe saying "[14] Internal Action Failed.nnService-Uninstall: Service is not installed." This error would then be presented X times, where X is the number of times the software was installed
  • IMPROVED:
  • VersionInfo: Changed the program description for two executables in order to give better descriptions in Windows's TaskManager (bpftpserver-uacadmin.exe and bpftpserver-service.exe)
  • INSTALLER:
  • Added a timeout when attempting to stop the SERVICE. Previously it could have looped forever if there was a problem in stopping the SERVICE.

New in BulletProof FTP Server 2017.2.0.30 (Jan 21, 2017)

  • FIXED:
  • START-UP: Corrected an EAccessViolation that was being triggered on start-up
  • UNINSTALL: Corrected a problem in which bpftpserver-uacadmin was being called incorrectly to uninstall the Windows System Service support
  • IMPROVED:
  • SecureFTP: OpenSSL updated to v1.1.0c

New in BulletProof FTP Server 2017.2.0.29 (Jan 21, 2017)

  • FIXED:
  • User Manager: fixed an internal exception which was preventing the deletion of user accounts
  • User/Group Manager: corrected a UI problem in which the list of users/groups would not fill the entire available area until a resize event was performed
  • INTERNAL: corrected the free()'ing of memory in the UserAccountsList in which it was attempting to free a NIL pointer User Manager: fixed an internal exception which was preventing the deletion of user accounts
  • User/Group Manager: corrected a UI problem in which the list of users/groups would not fill the entire available area until a resize event was performed
  • IMPROVED:
  • Group Manager: added right-click on list of group accounts to provide a popup context menu
  • Group Manager: added right-click on list of group accounts to provide a popup context menu
  • INTERNAL: Added a boolean paramter to BPUI_SwitchPage() to disable the execution of DoOnLoad()
  • Added:
  • Management -> Settings -> Email: Added a "Default Settings to Office365"
  • Management -> Settings -> Email: Added "Use Explicit (vs Implicit)" option to support Office365
  • i Information: SecureFTP: on start-up it will now report the OpenSSL version and Ciphers available
  • LICENSE-CODE: Added license codes to the list of stolen codes

New in BulletProof FTP Server 2017.2.0.28 (Jan 21, 2017)

  • FIXED:
  • SecureFTP: 'no shared cipher'. Corrected issue which was resulting in an inability to establish a connection via SecureFTP (TLS/SSL)
  • IMPROVED:
  • SecureFTP: Added the ability to create self-signed certificate/key under Management -> Security Options -> Secure FTP -> "Generate Self-Signed Certificate"
  • SecureFTP: The 5x fields detailing different file-paths will now expand as the form is resized
  • SecureFTP: Auto created self-signed certificates will use the storage-path and "overridden" storage-path for the default save location

New in BulletProof FTP Server 2017.2.0.27 (Jan 21, 2017)

  • FIXED:
  • Rename DIR/File and subsequent logging
  • IMPROVED:
  • Management -> Settings -> Advanced -> Allow 0 byte files to be recieved by the ftp-client (STOR)

New in BulletProof FTP Server 2017.2.0.26 (Jan 21, 2017)

  • FIXED:
  • FREEZE: Resolved a problem in which reverse-dns-lookups on LAN IPs would sit in timeout loop until DNS responded. While this can still happen, it will now adhere to the Settings -> Options -> "Reverse Lookup IPs to Hostnames"
  • LICENSE-CODE: Helper Apps (uacadmin, adduser, service) were not being wrapped with the same encryption template (BIZ|PRO-YEARLY and Master) or certificates (HOME-YEARLY) as main executable
  • IMPROVED:
  • SecureFTP: OpenSSL updated to v1.1.0b
  • INTERNAL-CODE: Migrated engine to 8.34 from 8.26
  • LICENSE-CODE: Attempt to correct report of LASTCP is '5-11' by lowering Adv-Prot and Data-After-Prog (feature-ics-v8.34 a1ccd70)
  • Server Monitor -> Dashboard: Check-for-Update is available by right/left/dbl-clicking "Version Information"
  • Auto-Update: Dialog box showing the "changelog" for the new version is now sizeable and a fixed font is used
  • Auto-Update:
  • Corrected a problem in which not all of the new files were delivered via the OTA update. (*.manifest, *.dat, 7z.dll, libcrypto-1_1.dll, libssl-1_1.dll, openssl.exe, openssl-license.txt)

New in BulletProof FTP Server 2016.2.0.25 (Nov 9, 2016)

  • Culminating a massive rewrite of the engine that drives BPFTP Server, I'm proud to announce the Secure Editions of BulletProof FTP Server! Included in this release is the ability to support Secure FTP, as support for NON-English filenames and various security improvements.
  • Added:
  • FEATURE: Secure FTP with Implicit/Explicit over TLS (v1.1/1.2)
  • FEATURE: UTF-8 Support for non-english characters
  • FEATURE: MODE Z for directory compression
  • FEATURE: MD5/CRC for on-the-fly error correction
  • Fixed: Management -> Security Options -> Encrypt Passwords: Changed the default back to FALSE (pre Secure-FTP), as it's better for customers to manage the setting
  • x Fixed: LICENSE-CODE: Resolved problem in which HOME Edition license-types were being misidentified as TRIAL/DEMO

New in BulletProof FTP Server 2014.1.2.22 (Nov 9, 2016)

  • Fixed: Management -> Events Manager -> SMTP: Added support for %VARIABLE in TO/CC/BCC
  • Fixed: Management -> Events Manager -> SMTP: TO was always using the Email address of the sender configured in Management -> Settings -> Email
  • Fixed: Management -> Events Manager -> SMTP: BCC/CC was not correctly being used
  • Fixed: Management -> Events Manager -> SMTP: Fixed a problem where the last-line of the email body was being duplicated
  • Fixed: Management -> Events Manager -> SMTP: Added UUENCODE and max-line-length of 76
  • Fixed: Management -> Events Manager -> SMTP: Resolved a problem parsing for the %VARIABLE in the message body. It was output all variables instead

New in BulletProof FTP Server 2014.1.2.21 (Mar 12, 2015)

  • Fixed: Management -> Events Manager -> SMTP: Added support for %VARIABLE in TO/CC/BCC
  • Fixed: Management -> Events Manager -> SMTP: TO was always using the Email address of the sender configured in Management -> Settings -> Email
  • Fixed: Management -> Events Manager -> SMTP: BCC/CC was not correctly being used
  • Fixed: Management -> Events Manager -> SMTP: Fixed a problem where the last-line of the email body was being duplicated
  • Fixed: Management -> Events Manager -> SMTP: Added UUENCODE and max-line-length of 76
  • Fixed: Management -> Events Manager -> SMTP: Resolved a problem parsing for the %VARIABLE in the message body. It was output all variables instead

New in BulletProof FTP Server 2014.1.0.21 (Sep 5, 2014)

  • Fix for crash-report on closing the program
  • Fix for passive-mode data-ports
  • Exception in Console -> Error Log

New in BulletProof FTP Server 2014.1.0.20 (Aug 27, 2014)

  • Fix for ftp-client unable to open data-connection on heavily used environments
  • Fix for freezing during "Configuring..."
  • Several speed enhancements for heavy use
  • Improvements to help defend brute-force-attacks
  • Support for importing information from older versions (Events, IP/ACL, Scheduler)
  • Internal code changes to prepare for SFTP/FTPS (soon)
  • Serveral cosmetic changes to the UI

New in BulletProof FTP Server 2014.1.0.19 (Aug 23, 2014)

  • Fixed: Management -> Auto|Manal-Import: Resolved a problem in Auto/Manual Import of previous version Settings, Users/Groups. (internal structure used to store these files was not being destroyed prior to new files being put into place, as a result the new files (aka imported) were being overwritten immediately by cached files stored in memory-structure)
  • Fixed: STARTUP: On new installation and first-start, fixed a problem that crept up in 2014.1.0.18, in which the "Auto Import Migrate Settings, Users/Groups" wasn't being triggered if there were no current files found

New in BulletProof FTP Server 2014.1.0.18 (Aug 22, 2014)

  • Improved: Console -> Error Messages: refactored and moved into private frame-container
  • Fixed: FREEZE ON STARTUP: Condition found in which the program appears to "freeze" during "Configuring..." and will not respond; added a timeout value of 10 seconds before it gives up. Condition was triggered when the computer was FIREWALLED and OUTBOUND connections on tcp/ip port 80 are BLOCKED. (http web-get on "http://bpftpserver.com")
  • Changed: INTERNAL-CODE: ARM added to bpftpserver-service.exe due to TBPSLicense inclusion in TBPSSettings
  • Changed: INTERNAL-CODE: DevEx (13.1.4 to 13.2.6)
  • Changed: INTERNAL-CODE: InnoSetup from 5.4.2a to 5.5.5a
  • Changed: INTERNAL-CODE: JCL 2.7.0.5175 (2.3.1.4197), JVCL 3.48 (3.45) ... it appears that JvFormStorage was generating a "divide by zero" exception on FormClose
  • Changed: INTERNAL-CODE: Refactored to create a DataModule specifically for ImageLists (TBPSDM_ImageLists)
  • Changed: INTERNAL-CODE: Refactored to create a DataModule specifically for Settings/Files (TBPSDM_SettingsAndFiles)
  • Changed: INTERNAL-CODE: Removed JvAppInstances from TFBPSAbout, as it wasn't used
  • Changed: INTERNAL-CODE: Rz migrated from 6.1.7 to 6.1.9 (stFilesCanBeFolders=FALSE, hides *.ZIP files from dialogs which ask for a folder)
  • Changed: INTERNAL-CODE: madExcept updated to 4.0.10 from 4.0.9 Fixed: Management -> Events Manager: Added support of loading configuration data migrated from older versions of the software produced before SEP 2013 (v2.x, v2010, v2011, before v2013.1.0.9)
  • Fixed: Management -> Events Manager: If an invalid file was specified for the EXE, an exception-error was incorrectly displayed as a result of a bug that displayed the filename for the file-not-found condition.
  • Improved: Management -> Security Options -> Defend Attacks -> Anti-Hammering: Added the ability to BAN-IP of guilty ftp-client, as well as Block (or ignore) for X minutes
  • Fixed: Management -> Security Options -> Defend Attacks -> Brute Force & Anti-Hammering: Resolved a problem with a corrupt/null pointer (EXCEPTION: BPSSettings_BannedIPs.Assign())
  • Improved: Management -> Security Options -> IP Access Control-List: On added item, the new item will be selected and made visible in the list
  • Improved: Management -> Security Options -> IP Access Control-List: added sort of list whenever it is updated
  • Improved: Management -> Security Options -> IP Access Control-List -> Add IP/ACL: Applied constraints to the values entered in an effort to help make sure rules are entered correctly. Only the following characters are valid for IP/DNS values: 0..9, A..Z, a..z, "*-[]."
  • Added: Management -> Security Options -> IP Access Control-List: Added notes at the bottom of the list of ACL to indicate that a "!" rule is from Anti-Hammer's "cool down" period.
  • Fixed: Management -> Security Options -> IP Access Control-List: Rewrote the way the internal list of rules is mananaged in order to discover and correct null-pointer reference (EXCEPTION: BPSettings_BannedIPs.Assign())
  • Fixed: Management -> Settings -> Scheduler: Added support of loading configuration data migrated from older versions of the software produced before JUNE 2011 (v2.x, v2010, and v2011.0.1.63).
  • Improved: Management -> Settings -> Visual and Misc -> "TrayIcon: Send Minimized program to the System-Tray as Tray-Icon": If the program is minimized as a tray-icon *and* another copy is started, the original instance is brought to the foreground. If it was minimized as tray-icon, it will now come out of tray-icon as well.
  • Fixed: Management -> Settings -> Windows System Service: If the service was turned-off and the GUI was started when the SERVICE was originally running: made change *not* to start SERVICE after terminating GUI (as there's no point, it was deinstalled)
  • Fixed: Management -> Settings -> Windows System Service: Resolved an issue where the SERVICE would not be installed, if the Override Storage-Path was defined
  • Improved: Server Monitor -> Current-Activity: refactored and moved into private frame-container
  • Improved: Server Monitor -> Download|Upload Summary: reworked the code and optimized for sort a..z,z..a
  • Improved: Server Monitor -> Log-Watch -> Update Every X Seconds: Added a function to allow customization on how often the log-window updates (0.1 to 60 seconds)
  • Improved: Server Monitor -> Log-Watch -> Use Color (Slightly Slower): Added the ability to toggle on/off the use of color. This shows to have a slight speed improvement.
  • Improved: Server Monitor -> Log-Watch: *Signficiant* improvement in speed for updates on log-window messages; window-control was moved from a RichEdit to a standard ListBox
  • Improved: Server Monitor -> Log-Watch: Added horizontal scroll-bars to list of messages
  • Fixed: Server Monitor -> Log-Watch: Moved trigging of log-window messages from a Threaded Timer to a normal Timer
  • Improved: Server Monitor -> Log-Watch: refactored and moved into private frame-container
  • Fixed: Server Monitor -> LogWatch -> Copy-To-Clipboard: If "Use Color" is turned on, resolved a problem where the text copied to the clipboard contained the 5 digit code + '~' (delimiter) for the color used on the line.
  • Fixed: Server Monitor -> LogWatch: Fixed a problem which would send a blank-line to the log, if the "client" passed is NIL (TBPSLogging.LogIt.ReplaceLog() aborted if client==NIL)
  • Improved: UNINSTALL: Fixed a problem which would cause the uninstallation of the service over-and-over-and-over (bpftpserver-uacadmin.exe) if the service was *NOT* installed. Error-Code of 14 was returned, installer appears to retry on errorlevel!=0
  • Improved: User|Group Manager -> Edit -> Access -> Folders -> Right-Click "Add": Removed the display of "Virtual Folders" from the dialog (aka Control Panel items and Recycle Bin)
  • Improved: User|Group Manager -> Edit -> Access -> Folders -> Right-Click "Add": Will now automatically navigate to the location of the first access-right or the currently highlighted access-right (Access-Rights will also be defaulted in the same way). (thx Paul E.)
  • Changed: User|Group Manager -> Edit -> Virtual Folders -> Virtual Folders are only visibile in User|Group-Account's "Home Folder": changed this to be the default, as I believe the option to have it display in every directory is confusing
  • Changed: User|Group Manager -> Edit -> Virtual Folders -> Virtual Folders are only visibile in User|Group-Account's "Home Folder": Made top/first option

New in BulletProof FTP Server 2014.1.0.17 (May 30, 2014)

  • Fixed: External API: "--storagepath=c:\somedir" has been corrected to *not* ask for "manual import" if the directory specified contains files
  • Improved: User|Group Manager -> Edit -> Bandwidth -> "Uploading|Downloading Files to the Server": The default has been changed to 15 KBytes/sec vs 512 bytes/sec, as the previous value is just too small to be reasonable. 15 KBytes/sec is, historically, a good low-value as most non-business internet will start bandwidth limitations at 30 KBytes/sec for upsteam.
  • Fixed: Management -> Summaries/Stats: Fixed a "Crash Report" that was activated when the file-size was over threshold (similar to the bug corrected in 2014.1.0.16, however this is related to continuing the process of loading the file into memory after the file has been rotated.
  • Improved: DEBUG-BUILD: removed the ZIPing of the debug-log if the program is compiled as DEBUG
  • Improved: Management -> Backup/Import -> Manual Import: Different messaging used. Buttons now labeled "Import","Cancel"|"Use Defaults", title changed to "Import Previous Installation"

New in BulletProof FTP Server 2014.1.0.16 (May 15, 2014)

  • Fixed: CHROME: Resolved a problem in which Google Chrome would sometimes return a blank directory-listing. This appears to have been a timing issue with OnClientDisconnect (wrapped each action in exception wrapper, moved Event-Handler before closing of sockets, added check for NULL references prior to close)
  • Fixed: Management -> Summaries/Stats: Fixed a "Crash Report" that was activated when the file-size was over threashold

New in BulletProof FTP Server 2014.1.0.15 (May 9, 2014)

  • Improved: Auto-Update: On daily check for new-version, changed the program to *not* display a dialog-box asking to install and relying on the one-screen "Update Available" to communicate to the user
  • Improved: External API: Command-Line Parameters can now be specified in typical posix||dos fashion ("--paramoption=value" || "-paramoption=value")
  • Added: External API: Created a new command-line paramater which can be used to specify the "storage path" ("--storagepath=c:\somedir\") for Settings, Users/Groups; which is very useful for the new "Allow Multiple Instances", as they should have their own files due to the high likelihood of conflict in sharing these files with other instances.
  • Improved: External API: When specifying "--storagepath" at the command-line, if the specified directory is empty OnStartUp, the program will activate the Auto-Import function to find previous installs; if none are found, it will execute the Manual-Import and provide a user-dialog to select the folder.
  • Improved: External API: bpftpserver-adduser.exe, Added a "Press Any Key" to all console-error messages at program start
  • Improved: INTERNAL-CODE: Consolidated all logging to the "Windows EventLog Viewer" into a common use function
  • Improved: INSTALLER: Added a new command-line parameter ("/exit-for-installer") to instruct BPS to close the GUI without restarting the SERVICE, this prevents a condition where the installer can't update the files because the SERVICE is running (because it was started when the INSTALLER instructed the GUI to close and the SERVICE was configured to run)
  • Improved: LICENSE-CODE: Repaired the check of expired-license during run-time and added the display of said license-information to log-window. This also corrects UI messages that indicated the "trial period" and not "license period" had expired.
  • Improved: LICENSE-CODE: Separated the expired-license check from the check-for-newversion/external-ip-refresh in order to reduce conflicts
  • Fixed: Management -> Backup/Import: Fixed a problem which resulted in a "Crash Report", this was caused when the function was moved out of "Settings" and into it's own sub-function of "Management"
  • Improved: Management -> Settings -> General -> Adv General Options -> Override Storage Path: Checkbox, Value and Button are not enabled if "--storagepath" is specified at the command-line
  • Added: Management -> Settings -> Options -> On Program Start: "Allow Multiple Instances"
  • Improved: Management -> Settings -> Windows System Service: Service will not start if "Allow Multiple Instances" is turned ON

New in BulletProof FTP Server 2014.1.0.14 (May 1, 2014)

  • Fixed: INTERNAL-CODE: Fixed a problem which incorrected sent the following message to the log-watch when ftp-user-account was denied due to invalid login, "INFO: logged in anonymously with login/password: xxx/xxx"
  • Fixed: INTERNAL-CODE: Re-enabled visual-styles in the manifest with "microsoft.windows.common-controls:6595b64144ccf1df". This was taken out in the previous release, as my development machine showed problems in the XML when the dependency was added. But I want modern visual-styles.
  • Fixed: LICENSE-CODE: Corrected a type-o in the message that is displayed with an expire-trial where it reads "2011" at the end of the product-name; this is a artifact of when the product name had the year included.
  • Improved: LICENSE-CODE: When the subscription-code has expired, the software will now redirect the customers to a special renewal area of the website and prompt for the new license code. The expiration-date of the code will be displayed, if it was stored (storing of date is new with this release)
  • Improved: LICENSE-CODE: Change the max-connections for the TRIAL from 1 to 2, in order to work with web-browsers which like to use more than 1 connection
  • Improved: Management -> Backup/Import -> Auto|Manual-Import: The number-of-accounts found in the files will now be displayed, as well as a big-red-warning if there are ZERO accounts in the specified files. (Helps prevent importing default aka "blank files" from previous installations that were not used)
  • Improved: Management -> Backup/Import -> Backup: Ability to backup the Users/Groups and Settings to a user-specified directory as a ZIP file containing all required files.
  • Improved: Management -> Backup/Import: New location, previous location was initially buried in Management -> Settings
  • Improved: Management -> Summaries/Stats: Added a setting for the max-file-size for the files (default 10MB)
  • Improved: Management -> Summaries/Stats: Added new options to turn ON|OFF the summary of files uploaded/downloaded as displayed in Server Monitor (as heavy file-activity on a private server generates incredible ammounts of data, function is more for publically available files for "anonymous" like accounts)
  • Fixed: Management -> Summaries/Stats: Added a CR/LF pair to the end-of-line (record) in "bpftpserver-transfer.log"
  • Added: Management -> Summaries/Stats: Added options to turn ON|OFF writing to special log-files which allow for third-parties programs to parse for information regarding the ftp-server's activities with ftp-user-accounts (bpftpserver-transfer.log and bpftpserver-xferlog.txt, default:FALSE, performance gain)
  • Added: Management -> Summaries/Stats: Added options to turn ON|OFF maintenance of the statistics for users or groups (slight performance gain)
  • Improved Management -> Security Options -> IP Access Control-List -> Add IP ACL: Typing of "+|-" into the "Access-Control Entry" will now auto-toggle the approriate "Access/Refusal Restrictions" and will not add the character to value entered. (this prevents a BAN rule with a "+" sign in it, which is very confusing).
  • Improved Management -> Security Options -> IP Access Control-List -> Rename of "IP-ACL" to "IP/ACL" on buttons and pop-up menus
  • Improved: Management -> Security Options -> IP Access Control-List: Depending on the contents of the current IP ACL, additional text is added to the header "IP Access Control-List" in order to help explain the current rule-set. Text: "(Rules inherit BAN|ALLOW on all IPs: [-|+]*.*.*.*)"
  • Improved: Management -> Settings -> NAT/Firewall -> Static IP Address -> Added the following language: "NOTE: If your network runs Stateful-Packet-Inspection (SPF), you may need to enter the LAN/NAT IP-Address for this computer into the "Static IP Address" above (vs the detected WAN-IP Address for your internet connection)."
  • Fixed: Management -> Settings -> Private P2P -> Free Files/Dirs: fixed an alignment program with the "help" button that was causing it to be fixed-pos in the window
  • Improved: Server Monitor -> Upload|Download Summaries: New title for this functionality, previously named "Files Download|Uploaded"
  • Improved: UI-Word Wrap: Went through the UI and fixed several instances where "wordwrap" would not increase the "height" of text and would trunctate words if they wrapped passed the default height of the control.

New in BulletProof FTP Server 2014.1.0.13 (Apr 8, 2014)

  • Improved: DEBUG-MODE: Added the executables file date/time to initial output of the debugger (helpful for development-debugging and running the same version, but different build)
  • Improved: INSTALLER: By default, the installer will not suggest the creation of a icon in the Quick-Launch-Bar (unless it was installed before); as Windows 7 removed this feature. (Quick-Launch was first introduced in the Windows Desktop Update to Windows XP and is a relic)
  • Improved: INSTALLER: Restart Service after installation of new version and GUI is closed. If the SERVICE was running during the installation of a new-version: the SERVICE is terminated and the GUI is started post-install. Resolved a problem in which the GUI would not start the SERVICE at terminatation, since it wasn't technically running when the GUI was started.
  • Fixed: INTERNAL-CODE: Embedded Manifest was causing a SideBySide (sxstrace) error. I could only replicate the problem on my DEV machine, the identical DEV-HOST machine had no problem. It appears to have been the result of a mix of TAB/SPACE characters used in the embedded manifest (TBPSMakeManifestEntry.WriteManifest()) ... "Activation context generation failed for "bpftpserver.exe".Error in manifest or policy file "bpftpserver.exe" on line 14. Invalid Xml syntax."
  • Changed: INTERNAL-CODE: Rz migrated from 6.1.4 to 6.1.7 (fixes for ListView flicker)
  • Fixed: INTERNAL-CODE: When running as service and impresonating a os-user, added code to CloseHandle(hServiceToken)
  • Improved: Management -> Logging: Added a "GUI|SVC" designator to the beginning of every line, stating if the log-message came from the SERVICE or GUI Mode.
  • Improved: Management -> Settings -> Email -> SMTP Port: Added an additional line of text to explain defaults more clearly.
  • Improved: Management -> Settings -> Save: Removed a redundant question that was posed, if the GUI was started when the SERVICE was running and the SERVICE is configured; there's no point to asking them "Would you like the SERVICE to start when the GUI is terminated?"
  • Improved: Management -> Settings -> Service: OnLogOff, If the GUI is running and the SERVICE, when the Windows Log-Off is issued the program does not have the opportunity to Restart-the-Windows-System-Service (permissions fail for start UACAdmin to start Service). As a result, a flag is set for displaying a message to the customer when it's ran via the GUI, that they need to close the program before issuing a Windows Log-Off.
  • Improved: Management -> Settings -> Service: OnStartup, If the SERVICE is running, the GUI will take over. This logic was improved to keep the GUI from issuing the BPS_APPMSGID_EXIT over and over (every 250 ms) while it waited for the shutdown. Now using a flag to issue the command only once (BPSIPCServer_OnPerform::PerformAction==BPSCServerPerformTerminate)
  • Fixed: Management -> Settings -> Visual/Misc -> "On Close: Confirm request to close...": Found a condition in which this was being set to FALSE: 1) when the service was closed after starting GUI or 2) closed from the command-line with the parameter "-exit" or 3) via the scheduler with the command GoOfflineAndExit or ExitAndOSLogout
  • Changed: Management -> Settings -> Visual/Misc -> "Visual": Added pre-fixes to the options in this category, "Tray-Icon:", "On Start:", "UI:" and "On Close:"
  • Changed: Management -> Settings -> Visual/Misc: Moved two options from the "Options" area to "Visual", as it makes more sense: "Confirm requests to close and terminate actively running ftp-server" and "Disable logging to screen when the program is minimized as a Tray-Icon"
  • Fixed: Management -> Settings -> Windows System Service: Changed the method of informing the customer that the service-mode was installed. From a question to a statement from "Would you like the SERVICE to start when the GUI is terminated?" to simply "...has been installed as a Windows System-Service and will now automatically start-up at Windows-Boot and run without logging into the computer."
  • Fixed: Management -> Settings -> Windows System Service: Resolved a problem that was informing the customer that the service-mode was installed, even if it already was and nothing was changed.
  • Improved: Management -> Settings -> Windows System Service: Validation of the Domain/Login/Password (credentials) entered. Previously, only the priveledge of LogonAsService was checked. However, this didn't check the ability to actually login with the password. Added check in order to help prevent service issues with incorrect password.
  • Improved: OnClose: Added the "ESCAPE" key to the dialog-box that asks "Stop BPFTP Server...Warning there are X user(s) connected...Abort All|Wait|Soon"
  • Fixed: OnClose: Resolved and centralized all close/exit methods into a single entity; this allowed for some fixes to the method in which the software waits for the ftp-client to (close-after-transfer and close-after-quit) to function correctly.
  • Changed: Server Monitor -> Log Watch: Renamed checkbox to simply "Default View on Start-Up" vs "Make this your default view on program-start"
  • Improved: Server Monitor -> Logging: Added prefixes to "SERVER-EXTERNALCMD" for messages that were triggered via command-line parameters
  • Improved: Server Monitor -> Logging: Added prefixes to all Client->Server and Server->Client messages, indicating just that; the labeling of the message as to it's source and destination
  • Improved: Server Monitor -> Server Info: Flicker Reduction, Eliminated a "panel" used to create a grey-padded-area around the information
  • x Fixed: Server Monitor -> Server-Info: Removed a "Check for Update" that could be executed by dbl-clicking the "Installed|Available" under "Version Information". Please use Management -> Check for Updates.
  • Improved: Server Monitor -> Server-Info: Reworked the update code to reduce the "flicker" that was appearing every few seconds.
  • Improved: UI: Flicker Reduction, Breadcrumb "panel", found several cases where the color was set to clBtnShadow vs clBtnFace and this causes a "flicker" of drawing a dark-color, then a light-color when sizing the program's main-window
  • Improved: UI: Flicker Reduction, Removed a "panel" that resided at the very bottom of the z-order and exposed a small grey-padded-gradient-area around everything under the "button".
  • Improved: UI: Flicker Reduction, Using DoubleBuffered for all Toolbars

New in BulletProof FTP Server 2014.1.0.12 (Mar 10, 2014)

  • Changed: BREAKING-CODE: Removal of the major-verison-number from the Windows-Registry-Entry needed to execute the GUI on Login. This will require retoggling the setting. (BPSConst.BPS_RUN_ENTRYNAME)
  • Changed: BREAKING-CODE: Removal of the major-version-number from the 5x Windows-Firewall-Rule-Names; new names: "BulletProof FTP Server (Service|Executable|Control-Port|Data-Ports|Remote-Debug)"
  • Improved: DEBUG-MODE: Added a limit of 100 MB to the resulting debug-log-file, after which the log-file will be "rotated" and a new one will be used with an incremented index number appended to the base-filename (ex:
  • Improved: DEBUG-MODE: After each "rotated" debug-log-file, the file will be compressed into a ZIP archive and the original *.CSL file will be removed. Compression runs nearly 20:1, so a 25 MB debug file will be around 1.3 MB (perfect for Email)
  • Improved: DEBUG-MODE: Drastically increased the speed of the debug-logging-subsystem. Previously each write-operation required opening/closing the debug-log-file, moved to a single point of open/close during the object's creation/destruction.
  • Improved: INSTALLER: Added a "Automatically Add Windows Firewall Rules" which will make a call to the UAC-Helper (bpftpserver-uacadmin.exe) with the parameter "--windows-firewall --add-all-default-rules". Previously, this installer option was available, but it only added the program-exe to the exclusion list in the windows-firewall (which does little).
  • Improved: INSTALLER: Added the ability for the installer to close the program if it's running as a GUI on the desktop (stopping the SERVICE automatically has been support for some time).
  • Improved: INTERNAL CODE: DevEx (13.1.4)
  • Improved: INTERNAL CODE: madExcept updated to 4.0.9 from 4.0.8
  • Changed: INTERNAL-CODE: ARM migrated from 9.62 to 9.64
  • Improved: INTERNAL-CODE: Change to the default storage-path and omitted the major-version-number from the path. This will allow for a more streamlined upgrade process in later versions. The new default storage-path is the same, but the version-number will no longer be appended to it. (%LOCALAPPDATA\BulletProof Software\BulletProof FTP Server\)
  • Fixed: INTERNAL-CODE: Corrected a problem in which file-uploads could not be resumed (REST/RETR), if the resume-point was over SINT32 (2,147,483,647) bytes; this was a result of TStream.Seek() stealthly denying supporting for 64-bit integers, moved to TStream.Position for 64-bit integer support. (source-code changes tagged "::SEEK!=64bit::")
  • Fixed: INTERNAL-CODE: Exception blocks have been auditted with the inclusion of "try..except..end" in conjuction with all "try..finally..end" (modules:init and main only)
  • Changed: INTERNAL-CODE: Removal of the major-version-number from the MUTEXT string used to coordinate actions in the GUI/SERVICE
  • Changed: INTERNAL-CODE: Removal of the major-version-number from the IPC name used for communication between the GUI/SERVICE
  • Changed: INTERNAL-CODE: Removal of the major-version-number from the "Source" stored in the Event Viewer; events will now be logged as just "BulletProof FTP Server"
  • Changed: INTERNAL-CODE: Removal of the major-version-number from the Tray-Icon's hint
  • Changed: INTERNAL-CODE: Updated 7z.dll to v9.20 from v9.07b
  • Fixed: LICENSE-CODE: Fixed a problem where the helper-programs were incorrectly being counted as a "another copy" of the software running on the network
  • Fixed: LICENSE-CODE: Make a change to prevent erroneous report of "you have surpassed the number of licenses purchased..." (CopiesAllowed returns 0)
  • Fixed: Management -> Events Manager -> Web: Clicking ON/OFF the "HTTP Post to Web-URL" was not disabling the "Username/Password" under "Requires Authentication".

New in BulletProof FTP Server 2013.1.0.11 (Oct 3, 2013)

  • Changed: LICENSE-CODE: Made a change to prevent "nagging" in the secondary helper-programs when the trial or license (aka certificate) expires. This helps to reduce confusion with multiple points of "entering a registration code".
  • Changed: LICENSE-CODE: On removal of a license-code, added additional code to UNREGISTER the helper-programs as well.
  • Changed: LICENSE-CODE: Added code when running as a Windows System-Service to make sure the license has not expired or not authorized to run as service (this prevents as "hung service" as a dialog-box is waiting for user-interaction in Session-0)
  • Changed: Management -> Events Manager: Moved the actions for an event to a Tabbed:Page-Control as it was just getting messy with all the UI elements
  • Changed: Management -> Events Manager: Added an ICON to the list of events, if an action has been set for the event
  • Fixed: Management -> Events Manager: Resolve a problem where the small-icon wasn't being displayed to the left of the Event-Entry-Name if it was set by the user
  • Fixed: Management -> Events Manager -> OnUserQUIT: Fixed a problem in which an "Access violation" was raised at the end of processing the event, as processing an event imposes a delay and the Data-Connection is already closed. (Check for Assigned(Client.DataSocket) before Client.DataSocket.Close())
  • Fixed: Management -> Events Manager: Wrapped all calls to the EVENT-MGR with try..except..end with logging in an effort to keep any "external processes as a result of events" from disrupting the servicing of ftp-clients
  • Changed: Management -> Events Manager: When clicking on an event with an assigned-action, the UI will switch to that action-tab
  • Changed: Management -> Settings -> Email: Increased verbosity and information displayed to the user in the user-interface when performing a test of the SMTP Settings (added output via ListBox, turning off/on UI elements that we being tested before/after test, abort test, disabling of the save/cancel buttons during test, moved from SSL-Implicit to SSL-Explicit)
  • Changed: Management -> Settings -> Email: Added a "Default Settings to GMAIL" link that will automatically populate the fields with information needed to access GMAIL's SMTP server via TLS/SSL
  • Changed: INTERNAL-CODE: MadExcept updated from 4.0.7 to 4.0.8
  • x Fixed: User Interface: Fixed a linkage problem where Bit-Buttons in the program had an ImageIndex defined, but the Imagelist was NULL; as the result of changes in 2013.1.0.7 to reduce the memory-footprint, I believe the imagelists were removed from the IDE and put back in, at this point the linkage was lost

New in BulletProof FTP Server 2013.1.0.10 (Sep 7, 2013)

  • Changed: Management -> Settings -> Service: Added dependencies on Windows Sub-Systems: Remote Procedure Call (rpcSs), Security Accounts Manager (samSs), TCP/IP Protocol Driver (Tcpip) for the BPFTP Server when running as a SERVICE. On some computers, especially older systems and those with slower peripherals; it is needed to "WAIT" for these SERVICES to load in order for the software to work correctly.
  • Changed: Management -> Settings -> Service: On Activate/Deactivate of the SERVICE, the program was not re-querying the windows-service-database for the status of the service-entry; as a result it was receiving the "cached" value stored in the UAC-helper object (to reduce UAC Notifications in Windows). Corrected this behavior and setting the new "cached" value based on the completed action (activate/deactivate).

New in BulletProof FTP Server 2013.1.0.9 (Sep 7, 2013)

  • Changed: AUTO-UPDATE: On failure to obtain the latest-version information, the error has been changed from a modal-dialog to "Console -> Error Messages" (as unattended consoles would fill with messages). This happens for computers which have firewalled outbound connections on tcp/ip port 80.
  • Fixed: AUTO-UPDATE: Resolved a problem where the program would fail to update, if the SERVICE was running when the GUI was launched and the subsequent check-for-update had been executed. This was because, then the program closed to apply the update; it restarted the SERVICE on terminate; this causes the update-program to fail to apply the binary (still-in-use) and the GUI is lauched and tells the user of the error.
  • Changed: INTERNAL-CODE: Added exception handlers to TBPSSettings.Destroy() in order to process and handle any problems during the FREE of internal objects
  • Fixed: INTERNAL-CODE: Resolved a problem in parsing ftp-client command "cd ...", where the number of periods is greater than two (parent-directory) and an stack-overflow occurs via too many recursive calls to resolve directory (Access Violation "LastCP='RF'")
  • Changed: Management -> Events Manager -> SMTP: Added the processing of variables (%CLIENTNAME, %FILENAME, etc) to the Email:Subject (Email:Body has always been processed)
  • Fixed: Management -> Settings -> NAT/Firewall -> Static IP: If the currently bound IP-Address for the NIC was not found, the address of 0.0.0.0 will be returned. Previously the valye "UNKNOWN" was used, but this caused an exception EConvertError to be raised; as it could not be converted from STRING to INTEGER.
  • Changed: Server Info -> IP Information/Version Info: If the version/ip could not be obtained, instead of showing UNKNOWN or "0.0.0.0"; it will now show "ERROR: Firewalled".
  • Changed: Server Info -> Version Info -> Available Version: Will now accept a dbl-click to trigger a manual-check-update
  • Fixed: User Interface: Fixed a condition with where the position/dimensions were not saved correctly if "Start Minimized to System-Tray as Tray-Icon" was enabled from Management -> Settings -> Options
  • Fixed: User Interface: When F9 is used to MIN/MAX to/from a System-Tray-Icon, the window position/size will now be retained with a save/load for MIN/MAX to System-Tray-Icon
  • Changed: User-Access-Control (UAC): Changed the text displayed during the process of executing the UAC helper (bpftpserver-uacadmin.exe) to show what the program is changing via the UAC.

New in BulletProof FTP Server 2013.1.0.8 (Aug 2, 2013)

  • Fixed: INTERNAL-CODE: Added logic to coordinate file-locking for files having to do with statistics; as these files could be written simultaneously by different functions in the program. (Hit-Meter, Top-Stat, Online-User Stats, TX-Files). Internally, this was resolved by replacing all AssignFile() functions with the new function.
  • Fixed: User Manager -> Edit -> Private P2P: "Credit XXbytes", fixed a problem when the field focus has "left" in which the control-for-the-value was being typecast incorrectly "TEdit vs TRzEdit"
  • Changed: Management -> Events Manager -> Execute: Added a field for parameters to the executable using the internal VARS, example: %CLIENTNAME %FILENAME
  • Fixed: User Manager -> Edit -> Login -> Home IP: Resolved a problem in which, if a Home-IP is assigned to the user; it would refuse to login the user and report "LOGIN-ERROR: No Account Matches" in Console -> Error Messages (Multi-Homed IPs are defined in Management -> Settings -> Multi-Homed IP)
  • Fixed: User Manager -> Edit -> Login -> Home IP: Fixed a problem where the drop-down wasn't being cleared between subsequent loads of information and resulted in duplicate entries.
  • Changed: Server Info -> IP Information -> Listening IP: Based on the information in Management -> Settings -> Multi-Homed IP, made a change to display either: *.*.*.(Toggled OFF), 127.0.0.1 (Toggled ON, but no IPs defined) or the list of IPs defined
  • Changed: Management -> Settings -> Multi-Homed IP: Added additional language as a "NOTE:" to describe the behavior when the option is TOGGLED-ON, but no IPs are specified.
  • Fixed: Server Monitor -> Log Watched: Discovered a rare condition in which certain log-messages were not being sent to the FILE log (TBPSLogging.LogIt(); initialization of bIsIPLoggedToFile along with bIsIPLoggedToScreen)
  • Changed: INTERNAL-CODE: Reduced the memory-footprint used by the IMAGES by coding them as a RESOUCE (ImageList) versus reading the bpftpserver-theme.dat file; parsing and loading, which was resulting in a doubling of the memory footprint, as well as delaying program load.
  • Fixed: Management -> Security -> IP Access Control-List -> Remove IP-ACL (button): Resolved a problem where; when an IP ACL is removed from the list, the program was reloading the list between each removal, which caused internal pointers to go haywire and a "Crash Report" to be generated.
  • Changed: Server Info: Cached the "License Info", instead of retrieving the information from the license-key; as this was being performed every second and could be the result of a Out-of-Memory condition after many hours of run-time in VerifyKey()
  • Changed: AUTO-UPDATE: Potentially isolated a problem in which the "What's New" dialog failed to properly initialize and resulted in a "Crash Report" being generated (BugID:0000017)
  • Fixed: AUTO-UPDATE: If there was a problem applying the update, BPS will create a dialog with "Auto-Update: There was a problem in applying the updated-version during our last attempt."; if MANUAL is chosen, it will come back and INCORRECTLY say "You have the latest version."; fixed the condition in which the program had the two version-number parameters reverse in a call to BPSVersionCompare.Compare()

New in BulletProof FTP Server 2013.1.0.7 (Jun 27, 2013)

  • Fixed: Console -> Error Messages: Fixed a problem where DEBUG log messages were displayed, regardless of whether or not the DEBUG-MODE was on.
  • Changed: Server Monitor -> Current Activity: There still appears to be an access-violation that occurs when the software is displaying information about currently-connected ftp-accounts; as a result, the display-routines and the ftp-connection "clash" and trigger an access-violation. In an effort to isolate the problem area, I've wrapped all display-routines that touch this area of the program with a "try..except..end" and display the exception in the Console -> Error Messages
  • Fixed: Server Monitor -> Current Activity: Located a condition in which a Divide-By-Zero exception is raised, wrapped with try...except...end (Line:71 in TFBPSMain.actionServerMonitor_CurrentActivity_RefreshAllExecute)
  • Fixed: User|Group Manager -> Access-Rights -> Quick Edit (right-click-menu-option): Corrected a problem where this menu option didn't do anything, in restoring this functionality, the ability to click-row-to-edit was enabled, as well as F2 to edit (EditOnRowClick:=TRUE)
  • Added: BPFTPSERVER-ADDUSER.EXE: Added the "--bulkimport-help-as-html" parameter to output help for bulk-imported-users-via-csv as HTML
  • Added: BPFTPSERVER-ADDUSER.EXE: Added the "--help" parameter to output help (vs no command-line parameters, which also outputs help)

New in BulletProof FTP Server 2013.1.0.6 (Jun 25, 2013)

  • Fixed: AUTO-UPDATE: Fixed a problem with "Update Available (CLICK HERE)" and "Management -> Check for Updates" which (INTERNALLY) was treating the update as a non-update and preventing the in-place update of the program
  • Changed: AUTO-UPDATE: Added code to change the mouse-pointer when hovered over "Update Available (CLICK HERE)"

New in BulletProof FTP Server 2013.1.0.2 (May 15, 2013)

  • Added: Auto-Update: If the update-server is unavailable, the program will now inform the user (instead of silent fail)

New in BulletProof FTP Server 2011.1.0.77 (Jun 2, 2012)

  • Fixed: Server Monitor -> Current Activity: Fixed a Crash-Report which occurred when a ftp-user disconnects, exactly the same instant that the user-data is refreshed to the screen.

New in BulletProof FTP Server 2011.1.0.76 (May 4, 2012)

  • Improved: Management -> Settings -> General -> Remote-Debug: When deactivating, if there's a failure to delete the "bpftpserver-remotedebug.txt" file; the user will be informed of the following "INSUFFICENT-RIGHTS: Windows has denied access to delete the following file. Please correct the permissions on this file and/or manually delete it."
  • Fixed: INTERNAL: Protection-Layer allows "SecuredSections" for all certificates.

New in BulletProof FTP Server 2011.1.0.75 (May 4, 2012)

  • Improved: Management -> Settings -> NAT/Firewall -> "Open Windows Firewall": On Error (insufficent rights), will now state that you "Windows Firewall: Unable to make new rule. Most likely, you do not have sufficent user-rights to create Firewall-Rules."
  • Changed: Management -> Settings -> General -> Remote-Debug: Turning on the remote-debug now requires a security-code to be entered.
  • Changed: Management -> Settings -> General -> Remote-Debug: Moved the debugging port, as the previous port has been over-run unauthorized debug-runs.
  • x Fixed: Management -> Settings -> NAT/Firewall -> "Open Windows Firewall": On Error (insufficent rights), the program was throwing an exception of "No argument for format '%s'."; corrected this problem as the CRLF was being omitted for the error-handler of "Adding Rule for Service..." and "Adding Rule for Data-Ports..."
  • Improved: Server Monitor -> Current Activity: Added right-click on a connected-user for "Kick User..., Stop Current Transfer, Deny IP Access, Spy User, Copy IP to Clipboard, Mass Kick, Give Credit, Take Credit, Send Message, Refresh, Show Grid)

New in BulletProof FTP Server 2011.1.0.74 (May 4, 2012)

  • Fixed: License-Code hard-codes and output of License-Info during start-up to log

New in BulletProof FTP Server 2011.1.0.71 (Oct 8, 2011)

  • Improved: START-UP: The program will now interrogate the Windows Registry to see if there's enough GDI-Desktop-Heapspace allocated, in order to prevent a problem with "Out of Memory" in Windows XP/2K (subsequent versions of Windows increased this setting). We prompt a warning if the value is < 8192 (HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SubSystems)
  • Changed: Server Info: When clicking the "Log File Path" entry, the program will now take you to "Management -> Logging -> Log Settings -> Saved Log-File Location"... instead of opening the folder that contains the log file.
  • Fixed: Console -> Error Messages: Fixed a couple of bugs that prevented the Copy & Clear menu-options (right-click) from working correctly.
  • Improved: Management -> Logging -> Log to File: On start-up, the logging-to-file option was not starting correctly
  • Improved: Management -> Logging -> Logged Events: Went through each and every menu option, fixed it's (mis)behavior in the UI and ensured that the options worked and did as described.
  • Improved: Management -> Logging -> Logging Options: Went through each and every menu option, fixed it's (mis)behavior in the UI and ensured that the options worked and did as described.
  • Improved: Management -> Logging -> Log Settings: Went through each and every menu option, fixed it's (mis)behavior in the UI and ensured that the options worked and did as described.
  • Fixed: Management -> User Manager -> Edit User -> Login -> Group Name: Rewrote the handling of group-membership for a user-account, as there was a random error in which the group-membership would be "lost" for a user-account. Part of the fix was an internal restructing of the user-account (object) to *not* store a pointer to the group-account (object), but rather it now dynamically looks up the group-account (object) from the list of group-accounts (TBPSGroupAcctList)
  • Changed: Moved to latest licensing-wrapper v8.60 (previous v8.40)
  • Fixed: Clicking the "X" to close the program: Fixed a problem in which, if there were connected clients and you clicked "X" to close the program, it would boot the ftp-clients, but not actually close the program until you clicked the "X" again.
  • Improved: Management -> Settings -> Security -> Block FXP: Changed the DEFAULT for Blocking server-to-server (FXP) to "FALSE" aka "UNCHECKED". As connecting with an ftp-client, from inside the network, to the external IP address of the network-connection would cause it to be falsely triggered (Client:192.168.0.11 connecting to InternetIP:24.2.23.2 is port-forwarded back inside the network to Server:192.168.0.12, FTP-Client would thus be connected from 192.x but asking for a PORT command back to 24.2.23.2)
  • Added: Management -> Settings -> Auto-Start -> Windows System-Service: "Open Windows Firewall" which will automatically create four firewall-rules in Windows Adv. Firewall for the program, service, control port and data-ports. (only in WinVista,7,2008,2008R2)
  • Improved: Management -> Settings -> Logging: Added "Log Watch" to list of options and made some performance tweaks for handling of windows-messages during fast-updates to the control.
  • Improved: Management -> Settings -> General -> Adv General Options -> Remote Debug: Made a change to keep the "Information: Remote-Debug is ON" message from displaying, if it was already ON when saving settings.
  • Improved: Management -> Settings -> Auto-Start -> Windows System-Service: Made some minor changes to better handle the turning ON|OFF of the Windows-System-Service and error handling for the DOMAIN/USER and PASSWD values.
  • Fixed: Management -> Settings -> Auto-Start -> Windows System-Service: Changed the default OS-USER for the SERVICE to "USERDOMAIN\USERNAME" (originally this was just ".\USERNAME")
  • Fixed: Management -> Settings -> Auto-Start -> Windows System-Service: Fixed a case where... if the main-executable failed to start or terminated abruptly, The THREAD that rain the main-executable was terminating, but the parent Service-Handler was never getting the Event-Raised and sat in a WaitForSingleObject(hKillServiceEvent,INFINITE) forever
  • Improved: Management -> Settings -> Auto-Start -> Windows System-Service: The service will now refuse to start if it's running under "Local System", as a User/Password must be granted to the program in order to the Settings,Users,Groups stored in %LOCALAPPDATA%
  • Improved: Management -> Settings -> Auto-Start -> Windows System-Service: The service will now refuse to start if no configuration files are found. This helps to resolve problems in which the SERVICE is ran under a different OS-USER than the GUI; as files are stored in %LOCALAPPDATA%, which is OS-User dependant
  • Changed: Management -> "Server Settings" renamed to "Settings"
  • Changed: Server Monitor -> "Server Statistics" renamed to "Statistics"
  • Improved: Vista/Win7 User-Access-Control (UAC): Added a manifest file to the installation in order to tell Vista/Win7 that "Admin Privledges are Needed"
  • Improved: Vista/Win7 User-Access-Control (UAC): In an effort to reduce program-compatibility problems when running under a NON-ADMIN account, the "Override Storage Path" file has been moved to CSIDL_COMMON_APPDATA, originally this was saved in the installation-directory for the software.
  • Improved: Vista/Win7 User-Access-Control (UAC): In an effort to reduce program-compatibility problems when running under a NON-ADMIN account, the "Remote-Debug" flag-file (bpftpserver-remotedebug.txt) has been moved to CSIDL_COMMON_APPDATA, originally this was saved in the installation-directory for the software.

New in BulletProof FTP Server 2011.1.0.70 (Aug 26, 2011)

  • Fixed: Server Monitor -> User Activity: Put several checks for NIL pointers (ListViewData)
  • Improved: Reorganized the start-up code in an effort to battle the "Freeze" during "User-Interface...". Moved the "Internal_Init_OSDriveScan|OutputOSInfo" to BPSBootstrap_InitAll()
  • Improved: Reorganized the start-up code in an effort to battle the "Freeze" during "User-Interface...". Moved the "AutoStartActivateOnExecute" to BPEngine_StartYourEngines()
  • Changed: Removed the 64x64 set of pixel images and enabled the x-small 24x24 set for Toolbars. This changed causes the internal memory footprint for graphic-resources to be cut in half. This should eliminate the start-up program on some computers which results in "Out of Resources" (Thx ALEXANDERL, "Error reading TCheckBox.Checked: Not enough storage is available to process this command.")
  • Fixed: Server Monitor -> Server|Error Log -> Right-Click for COPY/CLEAR: Fixed an Access-Violation which was being raised when these functions were executed. (Thanks Fr Philippe)
  • Improved: Management -> Server Settings -> Enable Remote-Debug: Changed to allow for the saving of remote-debug-files on a per-computername, per-day basis.
  • Fixed: Server Monitor -> Current Activity: Fixed a problem, caused by the last beta, which was not displaying any data.

New in BulletProof FTP Server 2011.1.0.69 Beta (Aug 24, 2011)

  • Improved: Main-Toolbar: Reorganized the menu-options by moving "User|Group Manager" to the main, added "Server Monitor" (renamed Console) and grouped liked functions, added "Management" and grouped liked functions, renamed "View Server Logs" to "Log Watch" (thx IBRAHIM)
  • Improved: Main-Toolbar: Removed the sub-toolbar that appears under the main-toolbar. This was replaced by the new "Classic: Use traditional Main-Menu" under Management -> Settings -> Visual (thx IBRAHIM)
  • Fixed: Management -> Server Settings -> Auto-Start -> After Logging into Windows: The program executable-path, that is written to the Windows-Registry, was not surrounded by dbl-quotes for cases in which the path contained spaces aka 0x20.
  • Fixed: Management -> Server Settings -> Auto-Start -> After Logging into Windows: Previously the program was writting to the Windows-Registry for HKLM:RunServices, while this could work.. it's really incorrect, the program should only be started for the current-user and moved to HKCU:Run.
  • Fixed: Management -> Server Settings -> Auto-Start -> Windows System Service: Fixed an exception that was generated if you click "Accept" in "Settings" and "Enable...Windows System Service" was left checked OFF and the service had never been enabled. It was essentially trying to Uninstall it, without it being Installed.
  • Wish-List:Management -> Settings -> Visual -> "Classic: Use traditional Main-Menu "Pull-Down" style vs the new "Button" look"... it's back! Some people think the old-skool Main-Pulldown-Menu "File, Edit, View" was dead... but I've had lots of people state they like the older-look and feel of the "Classic" v2.x better that we've put in another compatibility layer in place for those that wanted to get their Windows 3.1 fix.
  • Fixed: Go Online|Offline Button: If the configuration for the ftp-server is changed to a different port and that port is currently in-use by another process on the system... then a failure to BIND occurs and the user is presented an error message to fix the problem. However, in the UI the button still got depressed and would change to "Go Offline" (indicating that it was ONLINE). This behaviour was fixed and will no-longer show pressed when it shouldn't be.
  • Wish-List:Console -> Server Log -> Error Messages: In an effort to help in visibility for error-messages, a new panel common-panel has been added to the bottom of the UI that presents a list of all error messages... before the errors would be "lost" in the chaos of all the other logged-messages and would scroll off the screen and out of the user-defined buffer for number-of-lines-to-show.
  • Improved: Console -> Server Log: All code now goes through the central-loggging mechanism for logging to disk as well as screen. Some information was only sent to the screen, this change now sends everything to disk as well.
  • Improved: Main -> Server Info: Added a section for "Licensing" information which shows the current status of the installed license or the number of days left in the trial.
  • Improved: Main -> Server Info: Added a section for "logging" which shows the current status of logging to the screen|file as well as being able to open/view the log-file and open the directory containing the log-file.
  • Fixed: Management -> Group Manager -> Cancel: Fixed a problem in which the in-memory-list of pending-group-accounts was being .Free()'d but not .Remove()'d from the list... so the pointer still existed, but the memory was freed. When the program terminated and the list was cleaned up (with all the rest), it still had "items" in the list and when I went to free them .. blam-o and Access-Violation occurred. I had this problem fixed in 2011-06-06 for the Users, but the same fix didn't make it to Groups.
  • Improved: Management -> User|Group Manager: On Add|Clone of a user|group-account, adding a new account will automatically resort the list and automatically select the recently added account.
  • Fixed: Management -> User Manager -> Clone User: Resolved a UI problem where you could clone a single-user multiple times.. then stop cloning when you hit the ESC key for the cloned-user-name. This was confusing behaviour and removed the cloning of a user multiple times.
  • Fixed: Management -> User Manager: Right-click the list of user-accounts and select "Copy URL for Email to Clipboard" has been fixed to use the "External IP" in the case where Passive-Mode was defined but no Hostname or Static-IP was assigned for the passive-mode-ip.
  • Fixed: Management -> User|Group Manager: Right-click the list of user|group-accounts and selecting "Copy Account-List to Clipboard" has been fixed to correctly copy the entire list to the clipboard
  • Fixed: Management -> User|Group Manager -> Access-Rights: Resolved a problem where dbl-clicking on an existing-defined access-right for editting, was *not* preselecting the defined path in the "Select Directory" dialog-box's ShellTreeView.
  • Improved: Management -> User|Group Manager: When the list of user|group-accounts are populated, it will now default to sorted
  • Improved: Management -> User|Group Manager: Before the settings for the user-account (on the right) would only update to the currently selected user|group-account (on the left) if it was clicked-on with the mouse. Changed the behavior to update the settings when a new user-account is selected using the keyboard-arrows.
  • Improved: Management -> User|Group Manager: Increased the speed of populating the list of user|group-accounts (.beginupdate(), .endupdate())
  • Fixed: Internal: Fixed a problem where computers with over 3GB of RAM where being reported incorrectly at program-start. This is purely cosmetic, as we don't care about total physical-ram... but it's nice to be correct!
  • Improved: Initialization and Start-Up Time REDUCED: Optimized the query of the system-information (CPU,MEM,OS). Reduced the time from 6.5 seconds in this routine to roughly < 1ms.
  • Improved: Initialization and Start-Up Time REDUCED: Optimized the loading of user/group-accounts on start-up of the program. The loading of 620 user/group-accounts is now under 2 seconds vs 20 seconds on test platform.
  • Improved: Management -> User|Group Manager -> Save: Dramatically increased the speed of saving user/group-accounts. The saving of 620 user/group-accounts is under 2 seconds vs 16 seconds on test platform.
  • Changed: Changed the Icon-Names under "Console" to "User Activity" and "File Activity" from "Current User Activity" and "File Activity"
  • Improved: Management -> User|Group Manager -> Edit User|Group -> Restrictions: Added new "Access-Control List (ACL)" management, this allows the ability to ALLOW|DENY access to the ftp-server by IP-Address (exact match, address-range, wildcards) as well Hostname restriction based on the Reverse-DNS-Lookup of the IP.
  • Improved: Remote-Debug-Mode: Added functionality to echo any log-messages to the remote-debug-server to aid in reporting of current activity on the customer's machine.
  • Fixed: Management -> User Manager -> Edit User -> Login -> Group-Name(pulldown): fixed a problem where the pull-down was disabled at start-up, even if the check-box for "Group Name" was checked and the user was a member of a group.
  • Improved: Main Toolbar: Rearranged the User|Group Manager to be the first two options and Quick-Add User|Group to the last two items. In addition, a hot-key for User|Group Manager has been added of Ctrl-U and Ctrl-G.
  • Wish-List:Console -> Server Log: For the "Classic" (aka v2.x) lovers out there; Added a check-box at the bottom to "Make this your default view on program-start". While this option is also under Management -> Settings, it seemed fitting to put a quick-toggle under the Console-Log
  • Improved: Windows System Service: When the GUI is ran and BPS is running as a Windows-System-Service, the GUI will now automatically issue a termination of the service *and* restart it automatically when the GUI closes.
  • Improved: F9 HotKey-Added to Minimize Window
  • Fixed: Management -> Server Settings -> Visual -> "Send Minimized Program to the System Tray.."; fixed a problem where it wasn't *always* minimizing as TrayIcon
  • Fixed: Management -> Server Settings -> Visual -> "Start Minimized.."; fixed a problem where an icon would still show in the Task-Bar *and* in the System-Tray, instead of just in the System-Tray
  • Wish-List:Management -> Server Settings -> Auto-Start: We've tightly integrated Windows System-Service support into the codebase, by providing an option to install the service *as well* as provide the OS-User and Password for the Service to run under.
  • Improved: Management -> Server Settings -> Auto-Start: Created a new "tab" called "Auto-Start" which will house all of the options related to the program's start-up
  • Wish-List:STORAGE-PATHS. Starting in v2011.1.0.63 the program was changed to use LOCALAPPDATA as the storage-path for all files (settings, users, groups, etc). This was done to adhere more strictly with Microsoft's recommendations for the placement of files used by applications. However, we've found that customers like to control the location of these files for many purposes; such as redudancy, load-sharing and better user-security (running BPS as a Service under a OS-User without desktop-permissions, a great reason!). So we've implemented a method of overriding the location of these files by placing a file called "bpftpserver-storagepath.txt" in the installation directory for the software with a single line that reads "storage=c:\somewhere\on\my\computer".
  • Wish-List:Management -> Settings -> Adv. General Options: Override Storage-Path that will allow you to specify a directory where the Settings, Users, Groups, etc are stored... (see the notes for the above change for technical info)
  • Improved: Management -> Settings -> Adv. General Options: Added the ability to turn-ON off the Remote-Debug feature for sending verbose logging to the remote-debug-server for analysis

New in BulletProof FTP Server 2011.1.0.67 (Jul 6, 2011)

  • Fixed: Resolved a problem regarding changing-directories (CWD, CD). In the version released a couple days ago, a bug inadvertently made it's way in due to the restructuring of the initialization-code and the handling of the change-of-working-directory (CWD).

New in BulletProof FTP Server 2011.1.0.66 (Jul 4, 2011)

  • Fixed: Resolved a problem in the external batch-files which are used to stop/start the windows-system-service from the windows-start-menu, it was making a call to the wrong string-description of the bpftpserver-service ("BulletProof FTP Server 2010" not "BulletProof FTP Server 2011")
  • Improved: Added version-check functionality to the "Server Info" main-panel on the left of the UI; it will now report back the current version installed / available and take you to a web-page for updating
  • Improved: In prepartion for Secure-SSL, internal restructuring of the code for initialization of the ftp-server-component (on-events) has been moved from design-time to run-time.

New in BulletProof FTP Server 2011.1.0.65 (Jul 1, 2011)

  • Fixed: (User|Group) Manager -> Edit User|Group -> Access-Rights: Resolved a problem where an Access-Violation (Crash-Report) is generated when right-clicking the "access-rights" for a context-menu and selecting "Explore"; it was not evaluating the selected-item for NIL. Updated the popup-menu-code for enabling/disabling items that are not available if nothing is selected. On that note, I went through *every* context-popup-menu and checked for the same condition, found several and fixed them.
  • Improved: Added the ability to change the icon-size for all toolbars in the program. Version 2011.1.0.63 was the first to allow this ability, but only the MainToolbar; this expands this ability to all and syncs them to the same size/caption.
  • Fixed: Management -> Server Settings -> Logging -> Log Settings -> "Saved Log-File Location" (Click Browse Button) was causing an access-violation. The variable was being set to the save-dialog-object, but the object was never created and was referencing a random location in memory.
  • Fixed: Management -> Server Settings -> Logging -> Log Settings -> "Saved Log-File Location" wrapped new folder-validation-code around the field to confirm that the dir/file can be created and an invalid path wasn't specified.
  • Fixed: Group Manager -> Edit Group -> Access-Rights: Fixed a problem where an Access-Violation was generated when dbl-clicking on an access-right, then hitting cancel in the "Access-Rights for Folder" dialog... (an empty list-item was being added to the list, with no data and caused the AV)
  • Fixed: Browse for File Dialogs: Corrected a problem where an exception of EOleSysError was raised when asking to browser-for-a-folder|file. This was result of setting the "dialog.initialdir" to a fully-qualified-filename and not just the path to the file.

New in BulletProof FTP Server 2011.1.0.64 (Jun 20, 2011)

  • Fixed: Resolved a problem where a HOME-license would not allow the full TWO-concurrent-connections, but was limited to ONE
  • Improved: Under the Hood -> Migrate from Previous-Version: added the ability to select a directory for the previous-version-files, if it was not found automatically
  • Improved: Under the Hood -> Migrate from Previous-Version: added a "manual" option that will allow the user to select a directory which contains the previous-version-files.
  • Improved: If running the HOME version under Windows-Server, the software now asks if the user would like to see the upgrade from HOME to CORP information
  • Fixed: Management -> Server Settings -> Options -> Refuse Multiple Connection the Same IP: Resolved a language problem in the message that was sent to the ftp-client. It now correctly specifies that the limit is imposed at the server-level and *not* the user-level (as it previously indicated)

New in BulletProof FTP Server 2011.1.0.63 (Jun 20, 2011)

  • Improved: Added migration utility for moving settings from previous versions to the latest version
  • Improved: Better initial settings on first-run for main-form horiz/vertical centering and size of "Server Info"
  • Improved: Main-Screen Change: Added a secondary-toolbar under the main-toolbar for quick-access to common-functions. This allowed the elimination of the Group-Bar under "Server Info" on the main-screen, which grouped the exact same functions; but in the end, I never liked it and felt like it hid the information, while reducing the amount of information that could be displayed.
  • WISHLIST: Toolbar Change: You can now customize the main-toolbar-buttons by right-clicking the toolbar and selecting the desired SIZE and turning ON|OFF the CAPTIONs. Changed the default Toolbar-ImageSize from 64x64 to 48x48
  • Fixed: Management -> Settings: Located a problem when using default values for settings/configuration. If the value had never been customized by the user, then the default value should be used. Unfortunately, the default value that we configured was not being used and TRUE was always reported back. In many cases, FALSE is what is needed. (TBPSSettings.GetConfigValue())
  • WISHLIST: FOR CLASSIC-LOVERS: Settings -> General: We've added a setting for all you lovers of the older "Classic" version which showed the "Server Log" on the main screen. "On Launch, start watching the "Console - View Console Log" (Default is to view: "Overview -> Settings")"
  • Improved: Toolbar Change: When "Logins Allowed" the button will now be DOWN, when "Logins Denied" the button will now be UP. This change was made to make the UI more consistent as the DOWN state indicates active better "in my mind"(tm).
  • Improved: Overview -> Stats: Reduced flicker and maintained currently highlighted item
  • Fixed: Memory-Leak and Access-Violations when dealing with internal memory-lists for Users and Groups and "BreadCrumbs"
  • Improved: Added "FTP Accounts" with a count of the number of Users/Group ftp-accounts under "Server Info" on the Main-Screen
  • Improved: Reduced memory-footprint and initialization speed by changing statically created windows at program-initialization to dynamically creating the windows when needed
  • Improved: System-Service: Made significant reworking to the launching of BPS as a system-service; including fixes to detect other concurrent instances, condition of failing to fully launch ("Creating Windows..." with Shell TreeView), mutexes were being created and checked out of order, increased remote-debugging support
  • Improved: Changed the Stats:Value column from Right-Align to Left-Align in both User/Group Editor (User|Group Manager -> Edit User|Group -> Stats)
  • Improved: Internal coding style changed: removed all occurrences of with...do statements
  • Improved: Replaced the older win2k dialog-boxes (TAg) used to select text files with standard RC5 style
  • Improved: Changed the message displayed in the TrayIcon and Application's Title to: "BulletProof FTP Server 2010: 999 ftp-clients using 999 kbps"
  • Fixed: Overview -> Server Stats ; resolved a problem where clicking "Reset" would reset the stats in the UI for the user/group, but would not correctly write the data out the storage.
  • Improved: Reworked the initialization of the program in hopes of tracking down an elusive bug which causes the program to hang and additional Remote-Debugging code to send settings used in the program for future debugging
  • Improved: Added confirmation for resetting server-stats in Overview -> Server Statistics
  • Fixed: Access-Violation and Groups, with the help of Milan B. we isolated two distinct places in the group-management-system where an access-violation can be generated if the user was a member of a group
  • Fixed: Hot-Keys and Short-Cuts.. removed them all as many short-cuts were being re-used and trampling over each other. For Instance: DEL and INS was being hooked by the almost every UI function. This was causing an Access-Violation and unexpected behaviour on which function would execute for the shortcuts. The short-cut system needs to be rethought, especially in today's web and mouse ui world. Better to take it out for now.
  • Improved: Changed the OnHover-Message that is displayed from BPFTP Server when the program is running in the TrayIcon. New Format: "BPFTP Server: 999 MB/s from 99 ftp-clients" ... old "999 MB/s from 99 clients"
  • Improved: Added "External IP" to Server-Info ... additional aids to getting PASV-Mode setup and performing NAT/Traversal
  • Fixed: An error message that is displayed when you attempt to run a second copy of the software *and* a copy was already running in GUI-Mode. NEW:"Please exit the Interactive-Mode (GUI-Mode) before running another instance of the program." OLD:"Please exit the Interactive-Mode (GUI-Mode) before running the program as a Windows-System Service."
  • Improved: Server Settings -> Scheduler: Redefined the layout of the user-interface to make more logical-sense on the flow of inputting options for the new event. Fixed mislabeling of the "Update" button as "Refresh".
  • Fixed: Scheduler: Saving new scheduler events was causing an access-violation, resolved the problem and corrected a potentional for other settings to not be written correctly to the storage.
  • Fixed: Scheduler: There was a problem in which the trigger that activates and executes scheduler events was not being activated at program-initiation.
  • Fixed: Introduced a problem in handing MKDIR where it would refuse to create a directory. *ONLY A PROBLEM THAT WAS INTRODUCED IN THIS BETA SERIES*
  • Fixed: Made changes to resolve problems with the splitter-bar on the main-screen for Saving/Restoring it's location and Closed/Open state
  • Fixed: Made a change to force a termination of the program if a OS-System-Shutdown message is received from Windows, this bypasses the "Are you sure" message when attempting to shutdown/reboot Windows
  • Fixed: User Manager -> Edit User -> Group Name ; after setting this value, it would be stored; however, when reloading the user-accounts at program-start, the users were loaded before the groups and it would reset the values to default-init and act like the user was never part of a group
  • Fixed: On termination of the program; resolved a problem where the program may refuse to terminate if an exception is raised during the process of determining if it would *not* "want" to close at this time. src:BPEngine_CanTerminate()
  • Fixed: Management -> Group Manager -> Edit Group -> Access resolved a problem in which you could not change the access-rights for a given folder; as it would just jump back out of the section on click
  • Improved: Added a confirmation on toggling the server on|off from the Main -> Server Info -> Server Status list-box that is displayed on the main-screen's left-side (UI_Overview_ServerInfo_TabbedListBox)
  • Fixed: Resolved a display issue for Overview -> Downloaded|Uploaded Files in which the Filename column wasn't being sized correctly due to the method of populating it (Virtual::OnData)
  • Added: User Manager -> Edit User -> Additional -> IP Restrictions adds access-control for IP-Addresses in the form of ALLOW|DENY for an IP-Address with explicity,range and wildcard operators
  • Added: User Manager -> Edit User -> Additional -> Banned Files adds the ability to explicitly allow or deny access to files based on file-mask
  • Added: User Manager -> Edit User -> Additional -> Contact Info adds the ability to store Name, Address, City, Phone, Fax, Email and Notes for a given ftp-user-account
  • Added: User Manager -> Edit User -> Additional -> Message Files adds the ability to attach custom text files which will be sent to the ftp-client for "Welcome Message (MOTD)" and "Change Dir Message (CWD)"
  • Added: User Manager -> Edit User -> Additional -> Misc adds several features to customize the directory-listing sent to the ftp-user (relative paths and show-hidden-files), as well as the custom commands (NOOP, SITE PSWD, SITE CHAT and SITE WHO).
  • Improved: Added sorting of the users/groups by clicking the column header [BUG:0000004]
  • Fixed: Hints with Mouse-Roll-Over are were not working for Console and Overview [BUG:0000006]
  • Improved: Upgraded third-party components to the latest version (LMD v2011)
  • Fixed: The StatusBar at the bottom of the main-screen (2nd panel from left) was not displaying the server status correctly. Improved it to display ONLINE|OFFLINE & OPEN|CLOSED.
  • Improved: Outputting the location of all files used by application to Console during the program's bootstap phase.
  • Improved: Upgraded third-party UI components to the latest version (RC5 v5.5)
  • Fixed: Resolved a problem under Management -> Settings -> Security where all of the options were not being displayed (Block FXP)
  • Improved: Moved to latest version of InnoSetup v5.4.2-UNICODE (previous v5.3.5)
  • Improved: Moved to latest licensing-wrapper v8.20 (previous v6)... 20110518: Moved from 8.20 to 8.40
  • Improved: Windows-System-Service: while running as a system-service, the memory resources have been reduced by ~45% with the removal of code to load image-resources at run-time (56MB vs 29MB in tests).
  • Improved: Windows-System-Service: reworked and optimized the handling of commands received and sent to the Windows-Service-Control-Manager. Fixed several problems with invalid handling and reporting.
  • Improved: Windows-System-Service: prevented the running of the GUI and Service at the same time, which will resolve several problems related to Settings/Users/Group corruption stored in the INI-files.
  • Improved: Removed the centering of the "Home Page" for Overview, Management.
  • Fixed: Removed several visible bevels in Group Manager under the "Group Password" field that was accidently left in debugging control placements
  • Improved: Optimized access of the "bpftpserver.ini" file and only opening/closing the file once (versus every access for information)
  • Fixed: The "Additional" panels under User/Group have been added for "Banned Files", "Contact Info", "Message Files" and "Misc"
  • Improved: Set the default "Root" directory for the Access-Rights (Select Directory) dialog to be "Drives" versus "Desktop". This also prevents an error when the program is running as a Windows System Service.
  • Improved: Set a MinWidth of 150 pixels for the list of accounts in User/Group Editor
  • Improved: Installer now supports UNICODE; languages files and installation paths now support non-USASCII character sets
  • Fixed: Resolved an issue in the "User Manager" under Additional -> IP Restrictions which was generating the error "Format '%s' is invalid or incompatible with argument".
  • Improved: Moved the storage of Settings, Users/Groups, etc from the INSTALL-DIR to the local APPDATA (non-roaming)
  • Fixed: Resolved a problem where the VFS System would ONLY show the virtual-directories if it was toggled for "Only Visible in the User-Account's 'Home Folder'", would not show if "Visible in Every Folder" was selected)
  • Fixed: Solved an issue in the User/Group-Manager where the VFS-System-Enabled option could not be enabled, unless the method for determining a VFS File was defined. While this makes sense, it doesn't from a UI standpoint.
  • Fixed: On initial GUI-startup for BPS, the "breadcrumb" trail was being incorrectly set to Management -> Settings -> Log Settings (as a result of invisible OnChange event occurring when the form was rendered). Fixed the code and set the HOME to Overview -> Statistics for the server.
  • Fixed: RangeCheck exception when saving a group-edit, problem came from GroupMgr_Ratio_CountMethod_Value.ItemIndex being uninitialized and set to -1

New in BulletProof FTP Server 2010.1.0.43 (Oct 28, 2009)

  • Updates to the user-interface to accomidate smaller resolution sizes found in server environment, enhanced compatibility with Windows 7 and Windows Server 2008.