I'm happy to announce that GoAhead 4 is now available for immediate Download.
GoAhead 4 is an evolutionary upgrade for all GoAhead 3.X. It preserves application compatibility while strengthening API contracts.
All users are encouraged to always update to the latest release and to upgrade now to GoAhead 4.
Enhancements and Fixes
GoAhead 4 has several important enhancements:
- Strengthen API contracts
- Visual Studio 2017 support
- Cleanup old code
- New runtime limits
- Important Fixes
Strengthen API contracts
To make the code more robust against coding errors and accidental or malicious modification, all relevant APIs that use read-only strings have had their signatures changed from "char*" to "const char*". The equivalent typedef "cchar *" is used.
This should not impact user code as the underlying intent of the APIs remains the same. This will help catch compile-time code errors in GoAhead and application code that permits modification to strings that are meant to be read-only.
Visual Studio 2017 Support
This update adds support to find the VS 2017 command line tools in their new locations. The stdbool.h header is now explicitly included to resolve the bool type definition.
Cleanup Old Code
While writing new code is fun, nothing is as satisfying as deleting old code!
Previously deprecated APIs have been removed. These include:
New Runtime Limits
A configurable limit has been added for the number of CGI args. This is set in main.me by the limitCgiArgs property.
A potential DoS was possible due to malformed upload requests that omit the required "name" field. This fix correctly rejects such requests. There is also a fix for a potential invalid memory access reference in the upload handler.
Some minor documentation updates.