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.