Changes since the 160112 release FTP : now has ipconfigFTP_HAS_USER_PROPERTIES_HOOK Each user can be assigned a different root directory and different access rights. Read-only access for FTP is now possible. Adapted to comply a bit more to MISRA rules. The introduction of unsigned true/false, e.g. pdTRUE_UNSIGNED. 'ipBUFFER_PADDING' now configurable (expert option). Added ipconfigFTP_HAS_USER_PROPERTIES_HOOK. ipconfigHAS_TX_CRC_OFFLOADING Improve support for read only file systems in the FTP server. Depending on priorities: FreeRTOS_accept() could fail if the priority of the application task is higher than the priority of the IP-task. Now with a higher priority FreeRTOS_accept() will still work correctly. Depending on the tick rate: A TCP socket could freeze (stop working) when the FreeRTOS tick rate was lower than 1,000 Hz. Now also tested with 100 Hz. When "ipconfigZERO_COPY_TX_DRIVER = 0", sometime xNetworkInterfaceOutput() was called to send out a small TCP ACK. The network buffer would refer to space on the TCP socket ("lastPacket"), which was not 8-byte aligned. Repaired: from now on the buffer will have a proper 8-byte alignment. "#if __cplusplus" is been replaced with the more proper test "#ifdef __cplusplus". These are the recent commits: 565 Initial check-in of +TCP/multi 566 LPC18xx : updated and re-tested the TCP and FAT drivers 569 +TCP : protocols: Added an installable application hook: "CheckDrivesHook" 570 +TCP : will now work properly when configTICK_RATE_HZ < 1000 571 +TCP : will now work properly when configTICK_RATE_HZ < 1000 572 +TCP : FreeRTOS_recvfrom now recognises "FREERTOS_MSG_PEEK" 573 +FAT : Zynq : writing may fail if it goes too fast. Introduced pauses but not yet satisfied Changes between 160112 and 160111 releases + Updated the STM32 network driver so checksums are calculated by the hardware. + Implemented a simple "quit" command in the TCP command console. Changes between 150825 and 160111 releases + New device support: Demo applications and example drivers are provided for Atmel SAM4E and ST STM32F4 microcontrollers. + Various updates to improve compliance with the FreeRTOS coding standard. + Added a command console example that uses TCP/IP for input and output (the pre-existing command console example uses UDP/IP). + Updated the UDP logging example so it will send log messages to the local UDP broadcast address if a specific IP address is not provided. This simplifies configuration, but note not all switches and routers will pass broadcast messages. + Add TCP echo client and TCP echo server examples to the Zynq demo. + Minor updates to the Zynq network driver. + Update the Zynq project to use version 2015.4 of the Xilinx SDK. + Introduce FreeRTOS_SignalSocket(), which can be used to interrupt a task that is blocked while reading from a socket ( FreeRTOS_recv[from] ). + Make use of FreeRTOS_SignalSocket() in the FTP and HTTP servers. + Major updates to the NTP client, although this is not included in any of the pre-configured demo applications yet. + Added support for DHCP zero pad option. + Added uxGetMinimumIPQueueSpace(), a function to monitor the minimum amount of space on the message queue. + Better handling of zero length files in the FTP server. + Fixed a bug reported by Andrey Ivanov from swissEmbedded that affects users of 'ipconfigZERO_COPY_TX_DRIVER'. Changes between 150825 150825 (?) + Added xApplicationDHCPUserHook() so a user defined hook will be called at certain points in the DHCP process if ipconfigDHCP_USES_USER_HOOK is set to 1. + Added FreeRTOS_get_tx_head() to improve TCP zero copy behaviour - for expert use only. + RST is no longer sent if only the ACK flag is set. + Previously, an immediate ACK was only sent when buffer space was exhausted. Now, to improve performance, it is possible to send an immediate ACK earlier - dependent on the ipconfigTCP_ACK_EARLIER_PACKET setting. + LLMNR and NBNS requests can now be sent to locate other devices - previously these protocols would only be replied to, not generated. + Added Auto-IP functionality (still in test) in case DHCP fails. Dependent on the ipconfigDHCP_FALL_BACK_LINK_LAYER_ADDRESS and ipconfigARP_USE_CLASH_DETECTION settings. + Added NTP code and demo. + FTP can now STOR and RETR zero-length files. + Added LLMNR demo to Win32 demo - so now the Win32 responds to "ping RTOSDemo". Changes between 141019 and 150825 + Added FTP server, which uses the new FreeRTOS+FAT component. + Added basic HTTP server, which uses the new FreeRTOS+FAT component. + Multiple definitions that are now common with FreeRTOS+FAT have been moved into FreeRTOS's ProjDefs.h header file, and so prefixed with 'pd'. + Introduced ipconfigZERO_COPY_TX_DRIVER, which defines who is responsible for freeing a buffer sent to to the MAC driver for transmission, and facilitates the development of zero copy drivers. + Introduced the FREERTOS_MSG_DONTWAIT flag. The flag can be used as a simpler and faster alternative to using FreeRTOS_setsockopt() to set the send or receive timeout to 0. + A few functions that were previously all lower case are now mixed case, as lower case function names are only used when they are equivalent to a a Berkeley sockets API function of the same name. + Introduced uxGetMinimumFreeNetworkBuffers() to return the minimum number of network buffers that have ever existed since the application started executing. + Introduce ipconfigETHERNET_MINIMUM_PACKET_BYTES to allow the application writer to set their own minimum buffer size should the hardware not be capable of padding under-sized Ethernet frames. + vNetworkBufferRelease() renamed vReleaseNetworkBuffer() - just for consistency with the names of other functions in the same file. + Grouped DHCP status data into a structure. + DHCP is now tried both with and without the broadcast flag. + Replaced occurrences of configASSERT_VOID() with configASSERT(). + ipconfigDNS_USE_CALLBACKS introduced to allow FreeRTOS_gethostbyname() to be used without blocking. + Fix: LLMNR and NBNS behaviour when the reply is in a larger buffer than the request, and BufferAllocation_2 was used. + Introduced ipMAX_IP_TASK_SLEEP_TIME to allow the application writer to override the default value of 10 seconds. + Fix: Correct error in *pxUDPPayloadBuffer_to_NetworkBuffer(). + FreeRTOS_recv() now recognises the FREERTOS_ZERO_COPY flag, which, when set, the void *pvBuffer parameter is interpreted as void **pvBuffer. + FreeRTOS_listen() now returns an error code. Previously it always returned 0. + Fix: Previously if a listening socket was reused, and a connection failed, the TCP/IP stack closed the socket, now the socket is correctly left unclosed as it is owned by the application. + Various other formatting and minor fix alterations.