| * A new API: protosockets that are similar to BSD sockets but does not | |
| require any underlying multithreading system. | |
| * Very rudimentary IPv6 support | |
| * New application: DHCP client. Web server rewritten with protosockets. | |
| * Removed uIP zero-copy functionality in order to simplify uIP device | |
| driver coding: outbound packets are now *always* stored in full in | |
| the uip_buf buffer. | |
| * Checksum computation is now part of uip.c, but it still is possible | |
| to implement them in assembly code by specifying a configuration | |
| option. Checksum code now runs on architectures with 2-byte alignment. | |
| * Added TCP persistent timer. | |
| * Made all IP address representations use the new uip_ipaddr_ip | |
| datatype for clarity. | |
| * Updated window behavior so that sending to a host with a small open | |
| window works better now. | |
| * UDP API change: uip_udp_new() now takes port numbers in network byte | |
| order like TCP functions. | |
| * Allow reception of packets when no IP address is configured to make | |
| DHCP work. | |
| * Moved Ethernet address into main uIP module from ARP module. | |
| * Made constants explicit #defines and moved them out of the code | |
| (header sizes, TCP options, TCP header length field). | |
| * If uip_len is less than that reported by the IP header, the packet | |
| is discarded. If uip_len is greater than the length reported by the | |
| IP header, uip_len is adjusted. | |
| * Moved header size definitions into header file. | |
| * Added uIP call for polling an application without triggering any | |
| timer events. Removed redundant assignments of uip_len and uip_slen. | |
| * Removed compiler warning about icmp_input label being defined when | |
| UIP_PINGADDRCONF was not used. | |
| * Added UIP_APPDATA_SIZE macro that holds the available buffer size | |
| for user data. | |
| * Added uip_udp_bind() call. | |
| * Moved checksum code into main uIP module. | |
| * Switched the TCP, UDP and IP header structures to be structs rather | |
| than typedefs. | |
| * Prefixed TCP state names with UIP_ to avoid name space | |
| contamination. | |
| * Changed declarations of uip_appdatap and friends to void * to avoid | |
| explicit typecasts. | |
| * Bugfixes | |
| o TCP: Fixed bug with high byte of peer window size. | |
| o TCP: Fixed bug that in some cases prevented concurrent reception and | |
| transmission of TCP data. | |
| o TCP: uip_connect() didn't correctly calculate age of TIME_WAIT | |
| connections. | |
| o TCP: Array index for uip_conns[] array was out of bounds in | |
| comparison. Comparison changed to make index within bounds. | |
| o TCP: if the remote host crashes and tries to reestablish an old | |
| connection, uIP should respond with an ACK with the correct | |
| sequence and acknowledgment numbers, to which the remote host | |
| should respond with an ACK. uIP did not respond with the correct | |
| ACK. | |
| o TCP: Fixed check for SYNACK segment: now checks only relevant TCP | |
| control flags and discards flags reserved for future expansion. | |
| o TCP: Fixed bug where uIP did not inform application that a connection | |
| had been aborted during an active open. | |
| o TCP: FIN segment was accepted even though application had stopped | |
| incoming data with uip_stop(). | |
| o TCP: A FINACK segment would not always correctly acknowledge data. | |
| o UDP: checksums are now calculated after all fields have been | |
| filled in. | |
| o UDP: network byte order on lastport in uip_udp_new(). | |
| o IP: memset() bugs in IP fragment reassembly code fixed. |