History: ip_app_http

This page describes all changes made to the ip_app_http package, the HTTP Server, since its release.


4.7 (2021-03-02, 9:30):

  • Updated to use new TLS_BASE package.

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.

3.2 r3:

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


 Initial release.