NEW RELEASE: BulletProof FTP Server 2014.1.0.13

New Release: BulletProof FTP Server 2013.1.0.13

Today, we are proud to announce a new release of our BulletProof FTP Server for Windows.

Demo Version (Free 15-Day Trial)

Product Information

Purchasing Information

What’s New aka Changelog

Join us on Facebook

Follow us on Twitter

Version 2014.1.0.32 - 2014-APR-07
* 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.

x 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)

x 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)

x 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"

x 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."

x 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"

x 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 RELEASE: BulletProof FTP Server 2014.1.0.12

New Release: BulletProof FTP Server 2013.1.0.12

Today, we are proud to announce a new release of our BulletProof FTP Server for Windows.

Demo Version (Free 15-Day Trial)

Product Information

Purchasing Information

What’s New aka Changelog

Join us on Facebook

Follow us on Twitter

Version 2014.1.0.12 - 2014-MAR-07
* 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

* 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\)

x 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::")

x 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

x 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

x Fixed: LICENSE-CODE: Make a change to prevent erroneous report of "you have surpassed the number of licenses purchased..." (CopiesAllowed returns 0)

x Fixed: Management -> Events Manager -> Web: Clicking ON/OFF the "HTTP Post to Web-URL" was not disabling the "Username/Password" under "Requires Authentication".

TIPS: Poor Network Performance in Windows under Virtual Machine

TCP Chimney Offload, Receive Side Scaling, and Network Direct Memory Access

Sounds super awesome huh?!? But what is it?

I have around 20 virtual-machines, running under VMware Workstation, they allow me to test BulletProof FTP Server for Windows under all the different versions, editions and flavors of Windows that now exist. It’s exhausting actually, mostly because I need to perform Windows Updates every few months.

The host for all these virtual-machines, as well as my development, runs on a custom built ASUS Rampage III with Intel Core i7 970 with 6/12 physical/logical cores, 24 GB DDR2 RAM, storage is via ARC-1880i in RAID0+1 of 4x Samsung SSD. Why does any of that matter? Because, I’m trying to underscore that it’s a blazing fast computer.

But I noticed some network-speed problems, specially under Windows 2008 R1 and R2. Part of the issue was that “vmware tools” on the machines were not updated (do this asap, it will run much better), but Windows Update was taking almost an hour; just to see if there were updates. I dig some digging and found a bunch of articles, linked below. If you are having network-performance issues, please look to see if you are affected by this feature…

NOTE: TCP Chimney Offload does not appear to be a feature that is unique to Windows 2008, as I’ve found it set to “automatic” in default installs of Windows 7, 8, Server 2008; “disabled” in Vista.

HOWTO: Is the MAGIC on?

c:\] netsh int tcp show global
Querying active state...

TCP Global Parameters
Receive-Side Scaling State : enabled
Chimney Offload State : automatic
NetDMA State : enabled
Direct Cache Acess (DCA) : disabled
Receive Window Auto-Tuning Level : normal
Add-On Congestion Control Provider : none
ECN Capability : disabled
RFC 1323 Timestamps : disabled
** The above autotuninglevel setting is the result of Windows Scaling heuristics
overriding any local/policy configuration on at least one profile.

HOWTO: Turn Off the MAGIC

c:\] netsh interface tcp set global rss=disabled chimney=disabled autotuninglevel=disabled

Information about the TCP Chimney Offload, Receive Side Scaling, and Network Direct Memory Access features in Windows Server 2008

Poor network performance on Windows 2008 Server virtual machine (1009517)

Windows Server 2008 R2 Windows updates very slow download time

NETSH to disable advanced features

The effect of TCP Chimney offload on viewing network traffic

HOWTO: Upgrade Your License to a new Edition

BulletProof FTP Server is licensed via different Editions and include unique features.

As an example, while using the software you encounter a feature that isn’t available in your current license. You purchased the “Professional Edition”, but you recently discovered the very powerful “Management -> Events Manager”, and you’d like to email someone whenever a file is uploaded.

No problem! We’ve built the software to allow upgrading your license and we’ll apply 100% of your original purchase towards the upgrade! This allows you the flexibility to scale up, at anytime, without a penalty!

Upgrade License (Step 1 of 8)

Upgrade License (Step 2 of 8)

Upgrade License (Step 3 of 8)

Upgrade License (Step 4 of 8)

Upgrade License (Step 5 of 8)

Upgrade License (Step 6 of 8)

Upgrade License (Step 7 of 8)

The "Technical Support Permission Key" is: 902djlx0qojs

The “Technical Support Permission Key” is:

KNOWN PROBLEM: Slow Startup after Several Weeks of Heavy Usage

KNOWN PROBLEM: Slow Startup after Several Weeks of Heavy Usage

In order to provide information on Server Monitor -> Files Uploaded/Downloaded, the software writes entries into secondary files stored in the Storage-Location directory. These files contain one-line per file uploaded/downloaded and as the usage of the program increases, these files get bigger and bigger. Start-Up of the program will be effected as these files increase in size and the time to load the file into memory increases (and the footprint in memory increases).

Server Monitor -> Files Downloaded/Uploaded

Server Monitor -> Files Downloaded/Uploaded

To resolve this problem, it’s necessary to manually archive these files to another location; this will “reset” the statistics found in Server Monitor -> Files Uploaded/Downloaded.

You can manually archive these files:
1) Closing BulletProof FTP Server and ensure the SERVICE is not current running/active
2) Use My Computer or a Command-Prompt and navigate to the Storage-Location.
3) Locate the files named below and move them to some archive directory of your choosing (or delete them):


4) Start BulletProof FTP Server

NOTE: In a later version, this will be resolved with a re-organization and re-write of this function in order to save the information in a way that doesn’t affect performance.

NEW RELEASE: BulletProof FTP Server 2013.1.0.11

New Release: BulletProof FTP Server 2013.1.0.11

Today, we are proud to announce a new release of our BulletProof FTP Server for Windows.

Demo Version (Free 15-Day Trial)

Product Information

Purchasing Information

What’s New aka Changelog

Version 2013.1.0.11 - 2013-OCT-02
* 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

Join us on Facebook

Follow us on Twitter

NEW RELEASE: BulletProof FTP Server 2013.1.0.10

New Release: BulletProof FTP Server 2013.1.0.10

Today, we are proud to announce a new release of our BulletProof FTP Server for Windows.

Demo Version (Free 15-Day Trial)

Product Information

Purchasing Information

What’s New aka Changelog

Version 2013.1.0.10 - 2013-SEP-06
* 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).

Join us on Facebook

Follow us on Twitter

NEW RELEASE: BulletProof FTP Server 2013.1.0.9

New Release: BulletProof FTP Server 2013.1.0.9

Today, we are proud to announce a new release of our BulletProof FTP Server for Windows.

Demo Version (Free 15-Day Trial)

Product Information

Purchasing Information

What’s New aka Changelog

Version 2013.1.0.9 - 2013-SEP-05
* 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.

x 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

x 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)

x Fixed: Management -> Settings -> NAT/Firewall -> Static IP: If the currently bound IP-Address for the NIC was not found, the address of 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 ""; 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

x 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

x 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.

Join us on Facebook

Follow us on Twitter

NEW RELEASE: BulletProof FTP Server 2013.1.0.8

New Release: BulletProof FTP Server 2013.1.0.8

Today, we are proud to announce a new release of our BulletProof FTP Server for Windows.

Demo Version (Free 15-Day Trial)

Product Information

Purchasing Information

What’s New aka Changelog

Version 2013.1.0.8 - 2013-AUG-01
x 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.

x Fixed: User Manager -> Edit -> Private P2P: "Credit XXX bytes", 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

x 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)

x 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), (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.

x 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.

x 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)

x 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()

Join us on Facebook

Follow us on Twitter

HOWTO: Enable Debug-Mode

This graphics details a list of 4 steps used to toggle the "DEBUG-MODE" in BulletProof FTP Server.

This graphics details a list of 4 steps used to toggle the “DEBUG-MODE” in BulletProof FTP Server. Using the DEBUG-MODE in BulletProof FTP Server will cause the program to write extensive debugging information to a file on the desktop. This file can then be emailed to us, along with a description of the exact steps used to produce the error. Using this information, we can trace through all of the logic in the program in order to identify the problem and provide a solution.