This page describes all changes made to the ip_app_http package, the HTTP Server, since its release.
4.6r2 (2020-12-08, 12:16):
- Set HTTP_SECURE_ENABLE configuration option default to disabled.
4.6 (2020-05-26, 10:16):
- Changed TLS version check to be compatible with version 4.x.
4.5 (2020-02-04, 08:45):
- HTTP requests could not be processed if the request was split into multiple packets. Minimum chunk size is now 1 byte.
- Bugfix: Connection task is not running continuously in socket mode. Lower priority tasks could not run while connection task was handling a connection.
- Bugfix: could not establish connection when socket was used without OS and without SO_LINGER support.
- Typo fixed: HTTP_SOCKET_NO_LINGER was renamed to HTTP_SOCKET_SO_LINGER.
4.4 (2019-03-10, 16:01):
- Invalid content-length header was sent when content length was zero.
- HTTP connection was not disconnected properly if the socket interface was used.
4.3 (2018-12-06, 19:02):
- Allow PUT requests with zero content-length
4.2 (2018-02-20, 12:13):
- Applied Socket API changes.
4.1 (2017-06-14, 08:00):
- User defined type is used to store pointers instead of uint32_t.
- Corrected dynamic variables unsafe char decoding.
- Removed URI decoding when receiving message, now user can correctly decode dynamic variables in callback.
- Added filling of peer address data, when HTTP server is configured to use socket interface.
- Fixed compilation warnings.
- Modified HTTP server to work with standard socket interface (tested with LwIP).
- LwIP found issues:
- SO_LINGER option is not handled.
- SO_SNDTIMEO option is handled incorrectly when timeout set to -1 (after setting option cannot send any data).
- ioctl(FIONREAD) casts argument pointer to uin16_t (it should use uint32_t ).
- when enabling ERRNO, project misses declaration of variable errno (added in config_std_sockets.c).
- poll() function is not implemented.
- LwIP SOCKET implementation do not support IP V6.
- Options HTTP_SOCKET_NO_LINGER, HTTP_SOCKET_SO_SNDTIMEO should be disabled when using LwIP and enabled when using HCC sockets.
- Corrected accept for secure connection when OS is used (previously user needed to open first the standard connection, then secure).
- Added HTTPS functionality to the socket interface.
- When using secure connections it is recommended to increase IDLE timeout value (HTTP_IDLE_TIMEOUT) because establishing TLS connections is a long process.
- Corrected HTTP connection task loop that was infinite (configuration No OS, socket interface enabled). Setting of b_end was replaced by setting event HTTP_CONN_TR_EVENT_FLAG.
- Transmit buffer was not cleared during closing of connection
- Added closing of opened request/response file to expire state, because they were not closed if connection was dropped by host.
- Events in http_conn_task are handled now independently, dependent handling caused that transmit flag could be masked out and no data on other connection was not send.
- Removed closing of opened server ports in http_delete(); this was already done in http_stop().
- Fixed compilation error for configuration HTTP_USE_SOCKET 1, HTTP_DYNAMIC_LENGTH 0.
- Fixed crash when dynamic variables and socket interface was enabled simultaneously
- Module can be configured to use BSD sockets.
- Updated to work with TCP major version 6.
- Updated to work with IP base major version 6.
- Updated to work with TCP major version 5.
- Updated to work with IP base major version 5.
- When HTTP_DYNAMIC_VARIABLES was enabled, HTTP server could stop working because dynamic variable resources were not correctly released at some state transitions (e.g. heavy load, error conditions, etc.).
- http_stop() closes HTTP server TCP port.
- User demo moved to ip_app_http_demo package.
- Initialization was fixed to avoid possible failure of http_register_cb() after http_init().
- Added support for PUT, POST and DELETE methods.
- Request/response data access restructured and user callback functions introduced instead of using file system abstraction layer.
- Updated to work with TCP major version 4.
- Required package version checks added.
receive data handling fixed (unprocessed packet could stay in a queue; this could lead to slower performance).
use of variables declared in config_ip_app_http.c corrected.
make use of the modified tcp_get_buf() function.
Dynamic variables reorganized.
Dynamic length reorganized.
HTTP module reorganized for more efficient connection handling.
uninitialized stack variable initialized in process_buffer().
upgraded for the multi interface IP stack.
changes needed after introduction of new FSAL.
separated dynamic variables and dynamic length handling.
file could stay open, refreshing a page too quickly.
unknown size used from FSAL to tell the server to use dynamic length.