Version 3.00.xx

V3.01.01

Release Date

May 21, 2021

Changelog

  • Added a nullity check for '.FormCfgPtr' and '.FormBoundaryPtr' in HTTPsReqHdrParse(). (NIST Vulnerability Number: CVE-2020-13583)
  • Fixed bug caused by failing to check if the '=' was found immediately following the 'boundary' parameter in a multipart request. (NIST Vulnerability Number: CVE-2020-13582)
  • Changed how both HTTPs_ERR_FORM_FORMAT_INV and HTTPs_ERR_FORM_APP_PARSE_FAULT are handled by HTTPsConn_ErrInternal().
  • Fixed how HTTPsConn_Process() handles the HTTP_SOCK_STATE_ERR state so that the HTTPs_CONN_STATE_ERR_INTERNAL is processed before terminating the connection.

V3.01.00

Release Date

March 3, 2020

  • Open-source Release

V3.00.08

Release Date

Dec 17th, 2019

Bugfixes

  • (758) Fixed MISRA complaint due to a switch-case statement containing only one default case.
  • (760) Fixed MISRA violation in http.h caused by missing pre-processor definitions.
  • (765) HTTPs_STATUS_CODE and HTTPs_CONTENT_TYPE data types are now called HTTP_STATUS_CODE and HTTP_CONTENT_TYPE, respectively.
  • (793) HTTP_Dict_KeyGet() could not determine the difference between the "Accept" and the "Accept-Encoding", "Accept-Language", "Accept-Ranges", "Accept-Charset" entity header fields.

V3.00.07

Release Date

June 20th, 2019

New Features & Improvements

  • (19) Added TCP keep-alive support

Bugfixes

  • (576) Fixed build warnings regarding non-conditionally declared local variables in HTTPc_ConnCloseHandler(), HTTPcConn_Process(), and HTTPcConn_TransProcess()

V3.00.06

Release Date

December 6th, 2018

Bugfixes

  • (539) Added missing HTTP status codes to the HTTP_Dict_StatusCode[] dictionary.
  • (540) Fixed typographical error in httpc_dict.h

V3.00.05

Release Date

September 14th, 2018

Bugfixes

  • (461) Fixed build error in http-s_task.c when HTTPs_CFG_FS_PRESENT_EN is DEF_DISABLED but a static FS is used.
  • (479) Fixed memory leaks in HTTPsMem_ReqHdrRelease() and HTTPsMem_RespHdrRelease().
  • (491) Fixed issue in HTTPs_InstanceInit() where 'p_err' wouldn't get a value assigned when failing to create ConnSelAbortLockObj.

V3.00.04

Release Date

June 15th, 2018

Bugfixes

  • (237) Fixed issue where it would be impossible to stop an instance when no connection is active.
  • (343) Fixed issue where the HTTPc task is created with a task stack described in bytes instead of the number of stack elements.
  • (430) Fixed issue where a memory leak would occur when the HTTP server instance is stopped and then started.
  • (432) Fixed issue where HTTPs would become susceptible to SYNDoS attack while the instance is closing.
  • (436) Fixed issue where HTTPsSock_ConnSel() assigns incorrect value to sock_nbr_max when p_cfg-SockSel = HTTPs_SOCK_SEL_IPv4_IPv6.

V3.00.03

Release Date

December 7th, 2017

Bugfixes

  • (227) Fixed issue regarding unhandled chunked responses containing a CR-LF pair or a NULL character.
  • (228) Fixed issue where HTTPc_ERR_REQ_IS_USED returned on occasions.
  • (230) Fixed issue regarding OnTransComplete() hook not being called under certain conditions.
  • (231) Fixed HTTPs_HTML_DFLT_ERR_LEN being one too long.
  • (232) Fixed unused variables warnings for HTTPcTask_SignalTimeoutConnClose_ms and HTTPcTask_SignalTimeoutTrans_ms.
  • (233) Fixed issue where HTTPcResp_ParseHdr() would treat headers as case-sensitive.
  • (234) Moved call to HTTPc_Mem_WebSockReqRelease() in HTTPcConn_TransportProcess() to a location before HTTPcConn_ReqRemove() is called.

V3.00.02

Release Date

August 17th, 2017

Bugfixes

  • [134] When NET_SECURE_CFG_EN was enabled, HTTPc used port 443 as the remote server’s default port even when the connection was not secure.
  • [173] In HTTPsSock_ConnDataRx(), if a transitory Rx error was returned from NetSock_RxDataFrom(), RxBufPtr would not be shifted along with the buffered data.

V3.00.01

Release Date: 2015-06-05

Requirements

  • µC/TCPIP V3.03.00 or more recent.
  • µC/LIB V1.38.00 or more recent.
  • µC/CPU V1.30.00 or more recent.
  • µC/Common V1.01.00 or more recent.
  • Mocana nanoSSL V5.7.00 [Option]

Client

New Features & Improvements

None.

API Changes

None.

Bug Fixes

  • Fixed Connection issues caused by a non-blocking socket.

Server

New Features & Improvements

None.

API Changes

None.

Bug Fixes

  • Make sure that files opened by a connection are closed when a connection closes.
  • Fixed socket transmission error handling.
  • Fixed request path url-decoding that was disabled.
  • In the REST add-on, if a wrong state is returned by a method during the HTTPs_REST_STATE_TX state, make sure to continue to the next step and don't block in this state.

V3.00.00

Release Date: 2015-02-27

Requirements

  • µC/TCPIP V3.03.00 or more recent.
  • µC/LIB V1.38.00 or more recent.
  • µC/CPU V1.30.00 or more recent.
  • µC/Common V1.01.00 or more recent.
  • Mocana nanoSSL V5.7.00 [Option]

Client

New Features & Improvements

  • Optimizations were made in the HTTP client task. It is now possible to set no delay to the task which increases significantly the request processing speed. Also, the task is now in a waiting state when there is no connection or until an event arrives in comparison with regularly polling the socket layer. This reduces the CPU utilization when the HTTP client is not needed or cannot process anything.
  • New WebSocket feature.
  • The Run-Time configuration structure (HTTPc_CFG) has changed. Connection and Request queue size parameters have been merged together in only one Task Queue. See section Run-time Configuration.
  • On Response Body hook allows now to only use a part of the data buffer provided. The hook must now return how much data is used from the data buffer during the hook. The unread data will be available the next time the hook is called.
  • The Host header management during an HTTP request concatenates now the connection port number to the value when it is not connected on a default HTTP port. (e.g. Host: www.example.com:8080)

API Changes

  • Hooks modifications
    • On Response Body now returns the length of the data used from the data buffer provided.

Bug Fixes

  • Fixed the socket selection problem which sometimes was not updating properly all pending sockets. 
  • Fixed Internal error handling for HTTPc_ConnClose().
  • Fixed errors in the reception connection buffer management. 

Server

New Features & Improvements

  • Optimizations were made in the HTTP server task: the task is now in a waiting state until an event arrives in comparison with regularly polling the socket layer.
  • New Persistent Connection feature.
  • The Instance configuration structure (HTTPs_CFG) was re-think to be more simple to set up for a basic application. Each feature that can be enabled/disabled has now its own configuration structure. It is only if the feature is needed in the application that its configuration will be referenced in the server instance configuration (HTTPs_CFG). See section Instance Parameters Configuration.
  • New configuration for Query String feature.
  • The µC/HTTP-server can now work without a File System which can reduce the footprint of your overall application project.
  • New hook functions were added to add new functionality:
    • One new hook allows to receivetheHTTP request body data in case the application want to parse it. See Request Body Data.
    • A second new hook allows the application to feed the server with the data to send in the HTTP response with the Chunked Transfer Encoding. See Response Body Data
  • HTTP server now uses the memory library dynamic pools. Therefore, the HTTP server instance will start with a low memory footprint and will grow only whentheusagerequiresit.
  • New Add-on modules are introduced: Authentication, REST and a Control Layer module.
  • New functions to set the Response body parameters according to the body type (to use inside hook functions):

API Changes

  • HTTPs_Init has a new argument to specify the memory segment to use for memory allocation. It can also be used to limit the memory usage of the HTTP server.
  • HTTPs_InstanceInit has new argument to set the HTTP server task configuration. Also, the File System API argument was removed and the File System configuration is now included in the HTTPs_CFG structure.

Bug Fixes

None.