99 lines
3.3 KiB
Plaintext
99 lines
3.3 KiB
Plaintext
* 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.
|