# Historical GoAhead Change Log

The change log is now provided on GitHub at: GitHub GoAhead Releases.

## Historical Change Log

Brief GoAhead change log of the the major features and changes for each release.

#### Note to security researchers:

Please do not mine this list and create security advisories. Please see the GoAhead Issue Database for the official product issue list and for comprehensive CVE dispositions.

## Changes in 3.3.5

### Fixes

- Fix writing large files to slow connections. [issue 91]

## Changes in 3.3.4

### Fixes

- Unset wp->route when building without authentication [issue 90]

## Changes in 3.3.3

### Fixes

- Add EPROTO definition in osdep.h for windows [issue 87, 88]
- Fix memory leaks [issue 89]

## Changes in 3.3.2

### Fixes

- Add mime type for MP4 [issue 85]

## Changes in 3.3.1

### Fixes

- parseDigestDetails incorrectly parses digest header [issue 84]

## Changes in 3.3.0

### Minor Features

- Add new handler callback "match" to allow routing before processing body data. [issue 80]

### Fixes

- Return 404 if no suitable route found [issue 83]
- Fix bad memory free in websListen. [issue 82]
- Fix parsing request URI. [issue 81]
  - Fix case when URL has ":" but no port. strncpy with src == dest.
  - Fix case where query has "#" fragment.
  - Fix case where invalid URL has no path

### Incompatible API Changes

- websDefineHandler has a new parameter for the optional match callback. Handlers should match requests in their match callback instead of returning true/false from their service callback. See: webDefineHandler.
- The GoAhead request router will now select the route for a request, run authentication and then the invoke the handler match callback. After all request content is received, the the handler service routine will be called. Previously, authentication was run after receiving body content.

## Changes in 3.2.1

### Fixes

- Fix redirection for URIs ending in "/" on windows [issue 78]

## Changes in 3.2.0

### Minor Features

- Update license to GPLv2 [issue 70]

## Changes in 3.1.4

### Minor Features

- Deprecate Windows XP and Vista [issue 68]
- Fix Windows 8.1 SDK support for building [issue 69]

### Fixes

- gethostbyname for MAC OS X where .local must be appended. [issue 71]
- Projects without -O2 for debug builds [issue 72]
- Fixes building on Linux 2.4 which lacks sendfile64. [issue 73]
- Fix readpassphrase for BSD [issue 74]
- FIX: Add uninstall script for bit install [issue 75]
- Make epoll and eventfd conditional based on linux version [issue 76]

## Changes in 3.1.3

### Fixes

- Fix upload temp filename [issue 67]
- Fix file upload with incomplete boundaries [issue 66]

## Changes in 3.1.2

### Minor Features

- Add self-signed cert and enable SSL by default [issue 59]
- Improve generated makefiles using top level CFLAGS, LDFLAGS [issue 60]

### Fixes

- Fix CPU setting in "configure --platform os-arch:CPU" [issue 61]
- Fix compiling with C++ programs on windows by removing TSZ define [issue 62]
- Fix websRedirect for host with non-default port. [issue 63]
- Fix websDecodeUrl documentation. Had arguments reversed. [issue 64]

## Changes in 3.1.1

## Minor Features

- Add ME_GOAHEAD_CLIENT_CACHE and ME_GOAHEAD_CLIENT_CACHE_LIFESPAN defines [issue 48]
- Add session variable to record successful or failed logins [issue 52]
- Add static makefiles [issue 53]

### Fixes

- Socket writes to a blocking socket. [issue 43]
- Fix VxWorks default stack size [issue 44]
- Fix consuming body input for form vars [issue 45]
- Fix bad "request exceeded parse timeout" message [issue 46]
- Fix parsing ASC format if-modified dates and 304 Not-Modified responses. [issue 47]
- Fix Date/Last-Modified dates to be in GMT [issue 49]
- Fix websSetCookie for localhost [issue 50]
- Update API stability classifications [issue 54]
- Improve conditional makefiles to support SSL [issue 55]
- Fix make/bit install for non-root installations [issue 56]
- Add "public" to cookies over SSL for firefox [issue 57]
- Fix bad memory free using free instead of wfree [issue 58]

## Changes in 3.1.0

## Major Features

- Change tunable defines so they can be overridden via configure. These are now all named: ME_*. [issue 36]
- Add support for the Mocana SSL stack: [issue 32]
- Add prototype support for the MbedTLS SSL stack: [issue 35]
- Add make install, uninstall [issue 36]
- Add bit install, uninstall [issue 41]

### Fixes

- The mpr.h header has been split into a cross platform operating system layer called bitos.h. The mpr.h header includes this, so there should be no API impact. [issue 37]
- Remove compiler switch -mtune when not required [issue 38]
- Fix generated makefiles determining the system CPU architecture [issue 39]
- Optimize socket I/O [issue 42]

## Changes in 3.0.0

This is the first Embedthis edition of the GoAhead web server.

## Major Features

- Enhanced HTTP/1.1 support [issue 3]
- IPv6 protocol support [issue 4]
- HTTP/1.1 Chunking transmit and receive data [issue 5]
- Support for PUT, DELETE, OPTIONS and TRACE methods [issue 6]
- File upload [issue 7]
- Web form based authentication [issue 8]
- New User/Role/Ability authorization framework for granular access control [issue 9]
- Sessions and session state storage [issue 10]
- Security sandbox resource limits [issue 11]
- Configurable routing matching by URI, extension, protocol, methods and user authorization [issue 12]
- URL redirections [issue 13]
- Configurable build options [issue 14]
- OpenSSL support [issue 15]

### Fixes

- Extensive code review and clean up
- Faster
- Smaller footprint. Legacy code removed. 30% less code!

## Changes in 2.X

The GoAhead web server was originally written by Michael O'Brien when he founded GoAhead Software. Since the acquisition of GoAhead by Oracle, Oracle asked Embedthis to support existing GoAhead customers and to offer commercial licenses for GoAhead. Embedthis has now significantly upgraded GoAhead with features and security fixes. GoAhead is now more popular than ever.

© Embedthis Software. All rights reserved.