1 |
* A new API: protosockets that are similar to BSD sockets but does not |
---|
2 |
require any underlying multithreading system. |
---|
3 |
|
---|
4 |
* Very rudimentary IPv6 support |
---|
5 |
|
---|
6 |
* New application: DHCP client. Web server rewritten with protosockets. |
---|
7 |
|
---|
8 |
* Removed uIP zero-copy functionality in order to simplify uIP device |
---|
9 |
driver coding: outbound packets are now *always* stored in full in |
---|
10 |
the uip_buf buffer. |
---|
11 |
|
---|
12 |
* Checksum computation is now part of uip.c, but it still is possible |
---|
13 |
to implement them in assembly code by specifying a configuration |
---|
14 |
option. Checksum code now runs on architectures with 2-byte alignment. |
---|
15 |
|
---|
16 |
* Added TCP persistent timer. |
---|
17 |
|
---|
18 |
* Made all IP address representations use the new uip_ipaddr_ip |
---|
19 |
datatype for clarity. |
---|
20 |
|
---|
21 |
* Updated window behavior so that sending to a host with a small open |
---|
22 |
window works better now. |
---|
23 |
|
---|
24 |
* UDP API change: uip_udp_new() now takes port numbers in network byte |
---|
25 |
order like TCP functions. |
---|
26 |
|
---|
27 |
* Allow reception of packets when no IP address is configured to make |
---|
28 |
DHCP work. |
---|
29 |
|
---|
30 |
* Moved Ethernet address into main uIP module from ARP module. |
---|
31 |
|
---|
32 |
* Made constants explicit #defines and moved them out of the code |
---|
33 |
(header sizes, TCP options, TCP header length field). |
---|
34 |
|
---|
35 |
* If uip_len is less than that reported by the IP header, the packet |
---|
36 |
is discarded. If uip_len is greater than the length reported by the |
---|
37 |
IP header, uip_len is adjusted. |
---|
38 |
|
---|
39 |
* Moved header size definitions into header file. |
---|
40 |
|
---|
41 |
* Added uIP call for polling an application without triggering any |
---|
42 |
timer events. Removed redundant assignments of uip_len and uip_slen. |
---|
43 |
|
---|
44 |
* Removed compiler warning about icmp_input label being defined when |
---|
45 |
UIP_PINGADDRCONF was not used. |
---|
46 |
|
---|
47 |
* Added UIP_APPDATA_SIZE macro that holds the available buffer size |
---|
48 |
for user data. |
---|
49 |
|
---|
50 |
* Added uip_udp_bind() call. |
---|
51 |
|
---|
52 |
* Moved checksum code into main uIP module. |
---|
53 |
|
---|
54 |
* Switched the TCP, UDP and IP header structures to be structs rather |
---|
55 |
than typedefs. |
---|
56 |
|
---|
57 |
* Prefixed TCP state names with UIP_ to avoid name space |
---|
58 |
contamination. |
---|
59 |
|
---|
60 |
* Changed declarations of uip_appdatap and friends to void * to avoid |
---|
61 |
explicit typecasts. |
---|
62 |
|
---|
63 |
* Bugfixes |
---|
64 |
|
---|
65 |
o TCP: Fixed bug with high byte of peer window size. |
---|
66 |
|
---|
67 |
o TCP: Fixed bug that in some cases prevented concurrent reception and |
---|
68 |
transmission of TCP data. |
---|
69 |
|
---|
70 |
o TCP: uip_connect() didn't correctly calculate age of TIME_WAIT |
---|
71 |
connections. |
---|
72 |
|
---|
73 |
o TCP: Array index for uip_conns[] array was out of bounds in |
---|
74 |
comparison. Comparison changed to make index within bounds. |
---|
75 |
|
---|
76 |
o TCP: if the remote host crashes and tries to reestablish an old |
---|
77 |
connection, uIP should respond with an ACK with the correct |
---|
78 |
sequence and acknowledgment numbers, to which the remote host |
---|
79 |
should respond with an ACK. uIP did not respond with the correct |
---|
80 |
ACK. |
---|
81 |
|
---|
82 |
o TCP: Fixed check for SYNACK segment: now checks only relevant TCP |
---|
83 |
control flags and discards flags reserved for future expansion. |
---|
84 |
|
---|
85 |
o TCP: Fixed bug where uIP did not inform application that a connection |
---|
86 |
had been aborted during an active open. |
---|
87 |
|
---|
88 |
o TCP: FIN segment was accepted even though application had stopped |
---|
89 |
incoming data with uip_stop(). |
---|
90 |
|
---|
91 |
o TCP: A FINACK segment would not always correctly acknowledge data. |
---|
92 |
|
---|
93 |
o UDP: checksums are now calculated after all fields have been |
---|
94 |
filled in. |
---|
95 |
|
---|
96 |
o UDP: network byte order on lastport in uip_udp_new(). |
---|
97 |
|
---|
98 |
o IP: memset() bugs in IP fragment reassembly code fixed. |
---|