lwip-1.4.1 (partial)

Dependents:   IGLOO_board

Committer:
ua1arn
Date:
Tue Jul 24 17:36:01 2018 +0000
Revision:
1:119c4f7144c8
Parent:
0:c2ca3c5ded62
lwip 1.4.1 with necessary servers

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ua1arn 0:c2ca3c5ded62 1 HISTORY
ua1arn 0:c2ca3c5ded62 2
ua1arn 0:c2ca3c5ded62 3 (CVS HEAD)
ua1arn 0:c2ca3c5ded62 4
ua1arn 0:c2ca3c5ded62 5 * [Enter new changes just after this line - do not remove this line]
ua1arn 0:c2ca3c5ded62 6
ua1arn 0:c2ca3c5ded62 7 ++ New features:
ua1arn 0:c2ca3c5ded62 8
ua1arn 0:c2ca3c5ded62 9
ua1arn 0:c2ca3c5ded62 10 ++ Bugfixes:
ua1arn 0:c2ca3c5ded62 11
ua1arn 0:c2ca3c5ded62 12
ua1arn 0:c2ca3c5ded62 13
ua1arn 0:c2ca3c5ded62 14
ua1arn 0:c2ca3c5ded62 15 (STABLE-1.4.1)
ua1arn 0:c2ca3c5ded62 16
ua1arn 0:c2ca3c5ded62 17 ++ New features:
ua1arn 0:c2ca3c5ded62 18
ua1arn 0:c2ca3c5ded62 19 2012-03-25: Simon Goldschmidt (idea by Mason)
ua1arn 0:c2ca3c5ded62 20 * posix/*: added posix-compatibility include files posix/netdb.h and posix/sys/socket.h
ua1arn 0:c2ca3c5ded62 21 which are a simple wrapper to the correct lwIP include files.
ua1arn 0:c2ca3c5ded62 22
ua1arn 0:c2ca3c5ded62 23 2012-01-16: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 24 * opt.h, icmp.c: Added option CHECKSUM_GEN_ICMP
ua1arn 0:c2ca3c5ded62 25
ua1arn 0:c2ca3c5ded62 26 2011-12-17: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 27 * ip.h: implemented API functions to access so_options of IP pcbs (UDP, TCP, RAW)
ua1arn 0:c2ca3c5ded62 28 (fixes bug #35061)
ua1arn 0:c2ca3c5ded62 29
ua1arn 0:c2ca3c5ded62 30 2011-09-27: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 31 * opt.h, tcp.c, tcp_in.c: Implemented limiting data on ooseq queue (task #9989)
ua1arn 0:c2ca3c5ded62 32 (define TCP_OOSEQ_MAX_BYTES / TCP_OOSEQ_MAX_PBUFS in lwipopts.h)
ua1arn 0:c2ca3c5ded62 33
ua1arn 0:c2ca3c5ded62 34 2011-09-21: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 35 * opt.h, api.h, api_lib.c, api_msg.h/.c, sockets.c: Implemented timeout on
ua1arn 0:c2ca3c5ded62 36 send (TCP only, bug #33820)
ua1arn 0:c2ca3c5ded62 37
ua1arn 0:c2ca3c5ded62 38 2011-09-21: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 39 * init.c: Converted runtime-sanity-checks into compile-time checks that can
ua1arn 0:c2ca3c5ded62 40 be disabled (since runtime checks can often not be seen on embedded targets)
ua1arn 0:c2ca3c5ded62 41
ua1arn 0:c2ca3c5ded62 42 2011-09-11: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 43 * ppp.h, ppp_impl.h: splitted ppp.h to an internal and external header file
ua1arn 0:c2ca3c5ded62 44 to get a clear separation of which functions an application or port may use
ua1arn 0:c2ca3c5ded62 45 (task #11281)
ua1arn 0:c2ca3c5ded62 46
ua1arn 0:c2ca3c5ded62 47 2011-09-11: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 48 * opt.h, tcp_impl.h, tcp.c, udp.h/.c: Added a config option to randomize
ua1arn 0:c2ca3c5ded62 49 initial local TCP/UDP ports (so that different port ranges are used after
ua1arn 0:c2ca3c5ded62 50 a reboot; bug #33818; this one added tcp_init/udp_init functions again)
ua1arn 0:c2ca3c5ded62 51
ua1arn 0:c2ca3c5ded62 52 2011-09-03: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 53 * dhcp.c: DHCP uses LWIP_RAND() for xid's (bug #30302)
ua1arn 0:c2ca3c5ded62 54
ua1arn 0:c2ca3c5ded62 55 2011-08-24: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 56 * opt.h, netif.h/.c: added netif remove callback (bug #32397)
ua1arn 0:c2ca3c5ded62 57
ua1arn 0:c2ca3c5ded62 58 2011-07-26: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 59 * etharp.c: ETHARP_SUPPORT_VLAN: add support for an external VLAN filter
ua1arn 0:c2ca3c5ded62 60 function instead of only checking for one VLAN (define ETHARP_VLAN_CHECK_FN)
ua1arn 0:c2ca3c5ded62 61
ua1arn 0:c2ca3c5ded62 62 2011-07-21: Simon Goldschmidt (patch by hanhui)
ua1arn 0:c2ca3c5ded62 63 * ip4.c, etharp.c, pbuf.h: bug #33634 ip_forward() have a faulty behaviour:
ua1arn 0:c2ca3c5ded62 64 Added pbuf flags to mark incoming packets as link-layer broadcast/multicast.
ua1arn 0:c2ca3c5ded62 65 Also added code to allow ip_forward() to forward non-broadcast packets to
ua1arn 0:c2ca3c5ded62 66 the input netif (set IP_FORWARD_ALLOW_TX_ON_RX_NETIF==1).
ua1arn 0:c2ca3c5ded62 67
ua1arn 0:c2ca3c5ded62 68 2011-06-26: Simon Goldschmidt (patch by Cameron Gutman)
ua1arn 0:c2ca3c5ded62 69 * tcp.c, tcp_out.c: bug #33604: added some more asserts to check that
ua1arn 0:c2ca3c5ded62 70 pcb->state != LISTEN
ua1arn 0:c2ca3c5ded62 71
ua1arn 0:c2ca3c5ded62 72 2011-05-14: Simon Goldschmidt (patch by Stéphane Lesage)
ua1arn 0:c2ca3c5ded62 73 * tcpip.c/.h: patch #7449 allow tcpip callback from interrupt with static
ua1arn 0:c2ca3c5ded62 74 memory message
ua1arn 0:c2ca3c5ded62 75
ua1arn 0:c2ca3c5ded62 76
ua1arn 0:c2ca3c5ded62 77 ++ Bugfixes:
ua1arn 0:c2ca3c5ded62 78
ua1arn 0:c2ca3c5ded62 79 2012-09-26: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 80 * api_msg.c: fixed bug #37405 'err_tcp()' uses already freed 'netconn' object
ua1arn 0:c2ca3c5ded62 81
ua1arn 0:c2ca3c5ded62 82 2012-09-26: patch by Henrik Persson
ua1arn 0:c2ca3c5ded62 83 * dhcp.c: patch #7843 Fix corner case with dhcp timeouts
ua1arn 0:c2ca3c5ded62 84
ua1arn 0:c2ca3c5ded62 85 2012-09-26: patch by Henrik Persson
ua1arn 0:c2ca3c5ded62 86 * dhcp.c: patch #7840 Segfault in dhcp_parse_reply if no end marker in dhcp packet
ua1arn 0:c2ca3c5ded62 87
ua1arn 0:c2ca3c5ded62 88 2012-08-22: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 89 * memp.c: fixed bug #37166: memp_sanity check loops itself
ua1arn 0:c2ca3c5ded62 90
ua1arn 0:c2ca3c5ded62 91 2012-05-08: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 92 * tcp_out.c: fixed bug: #36380 unsent_oversize mismatch in 1.4.1RC1 (this was
ua1arn 0:c2ca3c5ded62 93 a debug-check issue only)
ua1arn 0:c2ca3c5ded62 94
ua1arn 0:c2ca3c5ded62 95 2012-03-27: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 96 * vj.c: fixed bug #35756 header length calculation problem in ppp/vj.c
ua1arn 0:c2ca3c5ded62 97
ua1arn 0:c2ca3c5ded62 98 2012-03-27: Simon Goldschmidt (patch by Mason)
ua1arn 0:c2ca3c5ded62 99 * tcp_out.c: fixed bug #35945: SYN packet should provide the recv MSS not the
ua1arn 0:c2ca3c5ded62 100 send MSS
ua1arn 0:c2ca3c5ded62 101
ua1arn 0:c2ca3c5ded62 102 2012-03-22: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 103 * ip4.c: fixed bug #35927: missing refragmentaion in ip_forward
ua1arn 0:c2ca3c5ded62 104
ua1arn 0:c2ca3c5ded62 105 2012-03-20: Simon Goldschmidt (patch by Mason)
ua1arn 0:c2ca3c5ded62 106 * netdb.c: fixed bug #35907: lwip_gethostbyname_r returns an invalid h_addr_list
ua1arn 0:c2ca3c5ded62 107
ua1arn 0:c2ca3c5ded62 108 2012-03-12: Simon Goldschmidt (patch by Bostjan Meglic)
ua1arn 0:c2ca3c5ded62 109 * ppp.c: fixed bug #35809: PPP GetMask(): Compiler warning on big endian,
ua1arn 0:c2ca3c5ded62 110 possible bug on little endian system
ua1arn 0:c2ca3c5ded62 111
ua1arn 0:c2ca3c5ded62 112 2012-02-23: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 113 * etharp.c: fixed bug #35595: Impossible to send broadcast without a gateway
ua1arn 0:c2ca3c5ded62 114 (introduced when fixing bug# 33551)
ua1arn 0:c2ca3c5ded62 115
ua1arn 0:c2ca3c5ded62 116 2012-02-16: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 117 * ppp.c: fixed pbuf leak when PPP session is aborted through pppSigHUP()
ua1arn 0:c2ca3c5ded62 118 (bug #35541: PPP Memory Leak)
ua1arn 0:c2ca3c5ded62 119
ua1arn 0:c2ca3c5ded62 120 2012-02-16: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 121 * etharp.c: fixed bug #35531: Impossible to send multicast without a gateway
ua1arn 0:c2ca3c5ded62 122 (introduced when fixing bug# 33551)
ua1arn 0:c2ca3c5ded62 123
ua1arn 0:c2ca3c5ded62 124 2012-02-16: Simon Goldschmidt (patch by Stéphane Lesage)
ua1arn 0:c2ca3c5ded62 125 * msg_in.c, msg_out.c: fixed bug #35536 SNMP: error too big response is malformed
ua1arn 0:c2ca3c5ded62 126
ua1arn 0:c2ca3c5ded62 127 2012-02-15: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 128 * init.c: fixed bug #35537: MEMP_NUM_* sanity checks should be disabled with
ua1arn 0:c2ca3c5ded62 129 MEMP_MEM_MALLOC==1
ua1arn 0:c2ca3c5ded62 130
ua1arn 0:c2ca3c5ded62 131 2012-02-12: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 132 * tcp.h, tcp_in.c, tcp_out.c: partly fixed bug #25882: TCP hangs on
ua1arn 0:c2ca3c5ded62 133 MSS > pcb->snd_wnd (by not creating segments bigger than half the window)
ua1arn 0:c2ca3c5ded62 134
ua1arn 0:c2ca3c5ded62 135 2012-02-11: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 136 * tcp.c: fixed bug #35435: No pcb state check before adding it to time-wait
ua1arn 0:c2ca3c5ded62 137 queue while closing
ua1arn 0:c2ca3c5ded62 138
ua1arn 0:c2ca3c5ded62 139 2012-01-22: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 140 * tcp.c, tcp_in.c: fixed bug #35305: pcb may be freed too early on shutdown(WR)
ua1arn 0:c2ca3c5ded62 141
ua1arn 0:c2ca3c5ded62 142 2012-01-21: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 143 * tcp.c: fixed bug #34636: FIN_WAIT_2 - Incorrect shutdown of TCP pcb
ua1arn 0:c2ca3c5ded62 144
ua1arn 0:c2ca3c5ded62 145 2012-01-20: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 146 * dhcp.c: fixed bug #35151: DHCP asserts on incoming option lengths
ua1arn 0:c2ca3c5ded62 147
ua1arn 0:c2ca3c5ded62 148 2012-01-20: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 149 * pbuf.c: fixed bug #35291: NULL pointer in pbuf_copy
ua1arn 0:c2ca3c5ded62 150
ua1arn 0:c2ca3c5ded62 151 2011-11-25: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 152 * tcp.h/.c, tcp_impl.h, tcp_in.c: fixed bug #31177: tcp timers can corrupt
ua1arn 0:c2ca3c5ded62 153 tcp_active_pcbs in some cases
ua1arn 0:c2ca3c5ded62 154
ua1arn 0:c2ca3c5ded62 155 2011-11-23: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 156 * sys.c: fixed bug #34884: sys_msleep() body needs to be surrounded with
ua1arn 0:c2ca3c5ded62 157 '#ifndef sys_msleep'
ua1arn 0:c2ca3c5ded62 158
ua1arn 0:c2ca3c5ded62 159 2011-11-22: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 160 * netif.c, etharp.h/.c: fixed bug #34684: Clear the arp table cache when
ua1arn 0:c2ca3c5ded62 161 netif is brought down
ua1arn 0:c2ca3c5ded62 162
ua1arn 0:c2ca3c5ded62 163 2011-10-28: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 164 * tcp_in.c: fixed bug #34638: Dead code in tcp_receive - pcb->dupacks
ua1arn 0:c2ca3c5ded62 165
ua1arn 0:c2ca3c5ded62 166 2011-10-23: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 167 * mem.c: fixed bug #34429: possible memory corruption with
ua1arn 0:c2ca3c5ded62 168 LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT set to 1
ua1arn 0:c2ca3c5ded62 169
ua1arn 0:c2ca3c5ded62 170 2011-10-18: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 171 * arch.h, netdb.c: fixed bug #34592: lwip_gethostbyname_r uses nonstandard
ua1arn 0:c2ca3c5ded62 172 error value
ua1arn 0:c2ca3c5ded62 173
ua1arn 0:c2ca3c5ded62 174 2011-10-18: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 175 * opt.h: fixed default values of TCP_SNDLOWAT and TCP_SNDQUEUELOWAT for small
ua1arn 0:c2ca3c5ded62 176 windows (bug #34176 select after non-blocking send times out)
ua1arn 0:c2ca3c5ded62 177
ua1arn 0:c2ca3c5ded62 178 2011-10-18: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 179 * tcp_impl.h, tcp_out.c: fixed bug #34587: TCP_BUILD_MSS_OPTION doesn't
ua1arn 0:c2ca3c5ded62 180 consider netif->mtu, causes slow network
ua1arn 0:c2ca3c5ded62 181
ua1arn 0:c2ca3c5ded62 182 2011-10-18: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 183 * sockets.c: fixed bug #34581 missing parentheses in udplite sockets code
ua1arn 0:c2ca3c5ded62 184
ua1arn 0:c2ca3c5ded62 185 2011-10-18: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 186 * sockets.h: fixed bug #34580 fcntl() is missing in LWIP_COMPAT_SOCKETS
ua1arn 0:c2ca3c5ded62 187
ua1arn 0:c2ca3c5ded62 188 2011-10-17: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 189 * api_msg.c: fixed bug #34569: shutdown(SHUT_WR) crashes netconn/socket api
ua1arn 0:c2ca3c5ded62 190
ua1arn 0:c2ca3c5ded62 191 2011-10-13: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 192 * tcp_in.c, tcp_out.c: fixed bug #34517 (persist timer is started although no
ua1arn 0:c2ca3c5ded62 193 zero window is received) by starting the persist timer when a zero window is
ua1arn 0:c2ca3c5ded62 194 received, not when we have more data queued for sending than fits into the
ua1arn 0:c2ca3c5ded62 195 window
ua1arn 0:c2ca3c5ded62 196
ua1arn 0:c2ca3c5ded62 197 2011-10-13: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 198 * def.h, timers.c: fixed bug #34541: LWIP_U32_DIFF is unnecessarily complex
ua1arn 0:c2ca3c5ded62 199
ua1arn 0:c2ca3c5ded62 200 2011-10-13: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 201 * sockets.c, api_lib.c: fixed bug #34540: compiler error when CORE_LOCKING is
ua1arn 0:c2ca3c5ded62 202 used and not all protocols are enabled
ua1arn 0:c2ca3c5ded62 203
ua1arn 0:c2ca3c5ded62 204 2011-10-12: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 205 * pbuf.c: fixed bug #34534: Error in sending fragmented IP if MEM_ALIGNMENT > 4
ua1arn 0:c2ca3c5ded62 206
ua1arn 0:c2ca3c5ded62 207 2011-10-09: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 208 * tcp_out.c: fixed bug #34426: tcp_zero_window_probe() transmits incorrect
ua1arn 0:c2ca3c5ded62 209 byte value when pcb->unacked != NULL
ua1arn 0:c2ca3c5ded62 210
ua1arn 0:c2ca3c5ded62 211 2011-10-09: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 212 * ip4.c: fixed bug #34447 LWIP_IP_ACCEPT_UDP_PORT(dst_port) wrong
ua1arn 0:c2ca3c5ded62 213
ua1arn 0:c2ca3c5ded62 214 2011-09-27: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 215 * tcp_in.c, tcp_out.c: Reset pcb->unsent_oversize in 2 more places...
ua1arn 0:c2ca3c5ded62 216
ua1arn 0:c2ca3c5ded62 217 2011-09-27: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 218 * tcp_in.c: fixed bug #28288: Data after FIN in oos queue
ua1arn 0:c2ca3c5ded62 219
ua1arn 0:c2ca3c5ded62 220 2011-09-27: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 221 * dhcp.c: fixed bug #34406 dhcp_option_hostname() can overflow the pbuf
ua1arn 0:c2ca3c5ded62 222
ua1arn 0:c2ca3c5ded62 223 2011-09-24: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 224 * mem.h: fixed bug #34377 MEM_SIZE_F is not defined if MEM_LIBC_MALLOC==1
ua1arn 0:c2ca3c5ded62 225
ua1arn 0:c2ca3c5ded62 226 2011-09-23: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 227 * pbuf.h, tcp.c, tcp_in.c: fixed bug #33871: rejecting TCP_EVENT_RECV() for
ua1arn 0:c2ca3c5ded62 228 the last packet including FIN can lose data
ua1arn 0:c2ca3c5ded62 229
ua1arn 0:c2ca3c5ded62 230 2011-09-22: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 231 * tcp_impl.h: fixed bug #34355: nagle does not take snd_buf/snd_queuelen into
ua1arn 0:c2ca3c5ded62 232 account
ua1arn 0:c2ca3c5ded62 233
ua1arn 0:c2ca3c5ded62 234 2011-09-21: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 235 * opt.h: fixed default value of TCP_SND_BUF to not violate the sanity checks
ua1arn 0:c2ca3c5ded62 236 in init.c
ua1arn 0:c2ca3c5ded62 237
ua1arn 0:c2ca3c5ded62 238 2011-09-20: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 239 * timers.c: fixed bug #34337 (possible NULL pointer in sys_check_timeouts)
ua1arn 0:c2ca3c5ded62 240
ua1arn 0:c2ca3c5ded62 241 2011-09-11: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 242 * tcp_out.c: use pcb->mss instead of TCP_MSS for preallocate mss-sized pbufs
ua1arn 0:c2ca3c5ded62 243 (bug #34019)
ua1arn 0:c2ca3c5ded62 244
ua1arn 0:c2ca3c5ded62 245 2011-09-09: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 246 * udp.c: fixed bug #34072: UDP broadcast is received from wrong UDP pcb if
ua1arn 0:c2ca3c5ded62 247 udp port matches
ua1arn 0:c2ca3c5ded62 248
ua1arn 0:c2ca3c5ded62 249 2011-09-03: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 250 * tcp_in.c: fixed bug #33952 PUSH flag in incoming packet is lost when packet
ua1arn 0:c2ca3c5ded62 251 is aggregated and sent to application
ua1arn 0:c2ca3c5ded62 252
ua1arn 0:c2ca3c5ded62 253 2011-09-01: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 254 * opt.h: fixed bug #31809 LWIP_EVENT_API in opts.h is inconsistent compared
ua1arn 0:c2ca3c5ded62 255 to other options
ua1arn 0:c2ca3c5ded62 256
ua1arn 0:c2ca3c5ded62 257 2011-09-01: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 258 * tcp_in.c: fixed bug #34111 RST for ACK to listening pcb has wrong seqno
ua1arn 0:c2ca3c5ded62 259
ua1arn 0:c2ca3c5ded62 260 2011-08-24: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 261 * api_msg.c, sockets.c: fixed bug #33956 Wrong error returned when calling
ua1arn 0:c2ca3c5ded62 262 accept() on UDP connections
ua1arn 0:c2ca3c5ded62 263
ua1arn 0:c2ca3c5ded62 264 2011-08-24: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 265 * sockets.h: fixed bug #34057 socklen_t should be a typedef
ua1arn 0:c2ca3c5ded62 266
ua1arn 0:c2ca3c5ded62 267 2011-08-24: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 268 * pbuf.c: fixed bug #34112 Odd check in pbuf_alloced_custom (typo)
ua1arn 0:c2ca3c5ded62 269
ua1arn 0:c2ca3c5ded62 270 2011-08-24: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 271 * dhcp.c: fixed bug #34122 dhcp: hostname can overflow
ua1arn 0:c2ca3c5ded62 272
ua1arn 0:c2ca3c5ded62 273 2011-08-24: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 274 * netif.c: fixed bug #34121 netif_add/netif_set_ipaddr fail on NULL ipaddr
ua1arn 0:c2ca3c5ded62 275
ua1arn 0:c2ca3c5ded62 276 2011-08-22: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 277 * tcp_out.c: fixed bug #33962 TF_FIN not always set after FIN is sent. (This
ua1arn 0:c2ca3c5ded62 278 merely prevents nagle from not transmitting fast after closing.)
ua1arn 0:c2ca3c5ded62 279
ua1arn 0:c2ca3c5ded62 280 2011-07-22: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 281 * api_lib.c, api_msg.c, sockets.c, api.h: fixed bug #31084 (socket API returns
ua1arn 0:c2ca3c5ded62 282 always EMSGSIZE on non-blocking sockets if data size > send buffers) -> now
ua1arn 0:c2ca3c5ded62 283 lwip_send() sends as much as possible for non-blocking sockets
ua1arn 0:c2ca3c5ded62 284
ua1arn 0:c2ca3c5ded62 285 2011-07-22: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 286 * pbuf.c/.h, timers.c: freeing ooseq pbufs when the pbuf pool is empty implemented
ua1arn 0:c2ca3c5ded62 287 for NO_SYS==1: when not using sys_check_timeouts(), call PBUF_CHECK_FREE_OOSEQ()
ua1arn 0:c2ca3c5ded62 288 at regular intervals from main level.
ua1arn 0:c2ca3c5ded62 289
ua1arn 0:c2ca3c5ded62 290 2011-07-21: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 291 * etharp.c: fixed bug #33551 (ARP entries may time out although in use) by
ua1arn 0:c2ca3c5ded62 292 sending an ARP request when an ARP entry is used in the last minute before
ua1arn 0:c2ca3c5ded62 293 it would time out.
ua1arn 0:c2ca3c5ded62 294
ua1arn 0:c2ca3c5ded62 295 2011-07-04: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 296 * sys_arch.txt: Fixed documentation after changing sys arch prototypes for 1.4.0.
ua1arn 0:c2ca3c5ded62 297
ua1arn 0:c2ca3c5ded62 298 2011-06-26: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 299 * tcp.c: fixed bug #31723 (tcp_kill_prio() kills pcbs with the same prio) by
ua1arn 0:c2ca3c5ded62 300 updating its documentation only.
ua1arn 0:c2ca3c5ded62 301
ua1arn 0:c2ca3c5ded62 302 2011-06-26: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 303 * mem.c: fixed bug #33545: With MEM_USE_POOLS==1, mem_malloc can return an
ua1arn 0:c2ca3c5ded62 304 unaligned pointer.
ua1arn 0:c2ca3c5ded62 305
ua1arn 0:c2ca3c5ded62 306 2011-06-26: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 307 * mem.c: fixed bug #33544 "warning in mem.c in lwip 1.4.0 with NO_SYS=1"
ua1arn 0:c2ca3c5ded62 308
ua1arn 0:c2ca3c5ded62 309 2011-05-25: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 310 * tcp.c: fixed bug #33398 (pointless conversion when checking TCP port range)
ua1arn 0:c2ca3c5ded62 311
ua1arn 0:c2ca3c5ded62 312
ua1arn 0:c2ca3c5ded62 313
ua1arn 0:c2ca3c5ded62 314 (STABLE-1.4.0)
ua1arn 0:c2ca3c5ded62 315
ua1arn 0:c2ca3c5ded62 316 ++ New features:
ua1arn 0:c2ca3c5ded62 317
ua1arn 0:c2ca3c5ded62 318 2011-03-27: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 319 * tcp_impl.h, tcp_in.c, tcp_out.c: Removed 'dataptr' from 'struct tcp_seg' and
ua1arn 0:c2ca3c5ded62 320 calculate it in tcp_zero_window_probe (the only place where it was used).
ua1arn 0:c2ca3c5ded62 321
ua1arn 0:c2ca3c5ded62 322 2010-11-21: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 323 * dhcp.c/.h: Added a function to deallocate the struct dhcp from a netif
ua1arn 0:c2ca3c5ded62 324 (fixes bug #31525).
ua1arn 0:c2ca3c5ded62 325
ua1arn 0:c2ca3c5ded62 326 2010-07-12: Simon Goldschmidt (patch by Stephane Lesage)
ua1arn 0:c2ca3c5ded62 327 * ip.c, udp.c/.h, pbuf.h, sockets.c: task #10495: Added support for
ua1arn 0:c2ca3c5ded62 328 IP_MULTICAST_LOOP at socket- and raw-API level.
ua1arn 0:c2ca3c5ded62 329
ua1arn 0:c2ca3c5ded62 330 2010-06-16: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 331 * ip.c: Added an optional define (LWIP_IP_ACCEPT_UDP_PORT) that can allow
ua1arn 0:c2ca3c5ded62 332 link-layer-addressed UDP traffic to be received while a netif is down (just
ua1arn 0:c2ca3c5ded62 333 like DHCP during configuration)
ua1arn 0:c2ca3c5ded62 334
ua1arn 0:c2ca3c5ded62 335 2010-05-22: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 336 * many many files: bug #27352: removed packing from ip_addr_t, the packed
ua1arn 0:c2ca3c5ded62 337 version is now only used in protocol headers. Added global storage for
ua1arn 0:c2ca3c5ded62 338 current src/dest IP address while in input functions.
ua1arn 0:c2ca3c5ded62 339
ua1arn 0:c2ca3c5ded62 340 2010-05-16: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 341 * def.h: task #10391: Add preprocessor-macros for compile-time htonl
ua1arn 0:c2ca3c5ded62 342 calculation (and use them throughout the stack where applicable)
ua1arn 0:c2ca3c5ded62 343
ua1arn 0:c2ca3c5ded62 344 2010-05-16: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 345 * opt.h, memp_std.h, memp.c, ppp_oe.h/.c: PPPoE now uses its own MEMP pool
ua1arn 0:c2ca3c5ded62 346 instead of the heap (moved struct pppoe_softc from ppp_oe.c to ppp_oe.h)
ua1arn 0:c2ca3c5ded62 347
ua1arn 0:c2ca3c5ded62 348 2010-05-16: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 349 * opt.h, memp_std.h, dns.h/.c: DNS_LOCAL_HOSTLIST_IS_DYNAMIC uses its own
ua1arn 0:c2ca3c5ded62 350 MEMP pool instead of the heap
ua1arn 0:c2ca3c5ded62 351
ua1arn 0:c2ca3c5ded62 352 2010-05-13: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 353 * tcp.c, udp.c: task #6995: Implement SO_REUSEADDR (correctly), added
ua1arn 0:c2ca3c5ded62 354 new option SO_REUSE_RXTOALL to pass received UDP broadcast/multicast
ua1arn 0:c2ca3c5ded62 355 packets to more than one pcb.
ua1arn 0:c2ca3c5ded62 356
ua1arn 0:c2ca3c5ded62 357 2010-05-02: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 358 * netbuf.h/.c, sockets.c, api_msg.c: use checksum-on-copy for sending
ua1arn 0:c2ca3c5ded62 359 UDP data for LWIP_NETIF_TX_SINGLE_PBUF==1
ua1arn 0:c2ca3c5ded62 360
ua1arn 0:c2ca3c5ded62 361 2010-04-30: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 362 * udp.h/.c, pbuf.h/.c: task #6849: added udp_send(_to/_if) functions that
ua1arn 0:c2ca3c5ded62 363 take a precalculated checksum, added pbuf_fill_chksum() to copy data
ua1arn 0:c2ca3c5ded62 364 into a pbuf and at the same time calculating the checksum for that data
ua1arn 0:c2ca3c5ded62 365
ua1arn 0:c2ca3c5ded62 366 2010-04-29: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 367 * ip_addr.h, etharp.h/.c, autoip.c: Create overridable macros for copying
ua1arn 0:c2ca3c5ded62 368 2-byte-aligned IP addresses and MAC addresses
ua1arn 0:c2ca3c5ded62 369
ua1arn 0:c2ca3c5ded62 370 2010-04-28: Patch by Bill Auerbach
ua1arn 0:c2ca3c5ded62 371 * ip.c: Inline generating IP checksum to save a function call
ua1arn 0:c2ca3c5ded62 372
ua1arn 0:c2ca3c5ded62 373 2010-04-14: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 374 * tcpip.h/.c, timers.c: Added an overridable define to get informed when the
ua1arn 0:c2ca3c5ded62 375 tcpip_thread processes messages or timeouts to implement a watchdog.
ua1arn 0:c2ca3c5ded62 376
ua1arn 0:c2ca3c5ded62 377 2010-03-28: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 378 * ip_frag.c: create a new (contiguous) PBUF_RAM for every outgoing
ua1arn 0:c2ca3c5ded62 379 fragment if LWIP_NETIF_TX_SINGLE_PBUF==1
ua1arn 0:c2ca3c5ded62 380
ua1arn 0:c2ca3c5ded62 381 2010-03-27: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 382 * etharp.c: Speedup TX by moving code from find_entry to etharp_output/
ua1arn 0:c2ca3c5ded62 383 etharp_query to prevent unnecessary function calls (inspired by
ua1arn 0:c2ca3c5ded62 384 patch #7135).
ua1arn 0:c2ca3c5ded62 385
ua1arn 0:c2ca3c5ded62 386 2010-03-20: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 387 * opt.h, tcpip.c/.h: Added an option to disable tcpip_(un)timeout code
ua1arn 0:c2ca3c5ded62 388 since the linker cannot do this automatically to save space.
ua1arn 0:c2ca3c5ded62 389
ua1arn 0:c2ca3c5ded62 390 2010-03-20: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 391 * opt.h, etharp.c/.h: Added support for static ARP table entries
ua1arn 0:c2ca3c5ded62 392
ua1arn 0:c2ca3c5ded62 393 2010-03-14: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 394 * tcp_impl.h, tcp_out.c, inet_chksum.h/.c: task #6849: Calculate checksum
ua1arn 0:c2ca3c5ded62 395 when creating TCP segments, not when (re-)transmitting them.
ua1arn 0:c2ca3c5ded62 396
ua1arn 0:c2ca3c5ded62 397 2010-03-07: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 398 * sockets.c: bug #28775 (select/event_callback: only check select_cb_list
ua1arn 0:c2ca3c5ded62 399 on change) plus use SYS_LIGHTWEIGHT_PROT to protect the select code.
ua1arn 0:c2ca3c5ded62 400 This should speed up receiving data on sockets as the select code in
ua1arn 0:c2ca3c5ded62 401 event_callback is only executed when select is waiting.
ua1arn 0:c2ca3c5ded62 402
ua1arn 0:c2ca3c5ded62 403 2010-03-06: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 404 * tcp_out.c: task #7013 (Create option to have all packets delivered to
ua1arn 0:c2ca3c5ded62 405 netif->output in one piece): Always copy to try to create single pbufs
ua1arn 0:c2ca3c5ded62 406 in tcp_write.
ua1arn 0:c2ca3c5ded62 407
ua1arn 0:c2ca3c5ded62 408 2010-03-06: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 409 * api.h, api_lib.c, sockets.c: task #10167 (sockets: speed up TCP recv
ua1arn 0:c2ca3c5ded62 410 by not allocating a netbuf): added function netconn_recv_tcp_pbuf()
ua1arn 0:c2ca3c5ded62 411 for tcp netconns to receive pbufs, not netbufs; use that function
ua1arn 0:c2ca3c5ded62 412 for tcp sockets.
ua1arn 0:c2ca3c5ded62 413
ua1arn 0:c2ca3c5ded62 414 2010-03-05: Jakob Ole Stoklundsen / Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 415 * opt.h, tcp.h, tcp_impl.h, tcp.c, tcp_in.c, tcp_out.c: task #7040:
ua1arn 0:c2ca3c5ded62 416 Work on tcp_enqueue: Don't waste memory when chaining segments,
ua1arn 0:c2ca3c5ded62 417 added option TCP_OVERSIZE to prevent creating many small pbufs when
ua1arn 0:c2ca3c5ded62 418 calling tcp_write with many small blocks of data. Instead, pbufs are
ua1arn 0:c2ca3c5ded62 419 allocated larger than needed and the space is used for later calls to
ua1arn 0:c2ca3c5ded62 420 tcp_write.
ua1arn 0:c2ca3c5ded62 421
ua1arn 0:c2ca3c5ded62 422 2010-02-21: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 423 * stats.c/.h: Added const char* name to mem- and memp-stats for easier
ua1arn 0:c2ca3c5ded62 424 debugging.
ua1arn 0:c2ca3c5ded62 425
ua1arn 0:c2ca3c5ded62 426 2010-02-21: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 427 * tcp.h (and usages), added tcp_impl.h: Splitted API and internal
ua1arn 0:c2ca3c5ded62 428 implementation of tcp to make API usage cleare to application programmers
ua1arn 0:c2ca3c5ded62 429
ua1arn 0:c2ca3c5ded62 430 2010-02-14: Simon Goldschmidt/Stephane Lesage
ua1arn 0:c2ca3c5ded62 431 * ip_addr.h: Improved some defines working on ip addresses, added faster
ua1arn 0:c2ca3c5ded62 432 macro to copy addresses that cannot be NULL
ua1arn 0:c2ca3c5ded62 433
ua1arn 0:c2ca3c5ded62 434 2010-02-13: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 435 * api.h, api_lib.c, api_msg.c, sockets.c: task #7865 (implement non-
ua1arn 0:c2ca3c5ded62 436 blocking send operation)
ua1arn 0:c2ca3c5ded62 437
ua1arn 0:c2ca3c5ded62 438 2010-02-12: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 439 * sockets.c/.h: Added a minimal version of posix fctl() to have a
ua1arn 0:c2ca3c5ded62 440 standardised way to set O_NONBLOCK for nonblocking sockets.
ua1arn 0:c2ca3c5ded62 441
ua1arn 0:c2ca3c5ded62 442 2010-02-12: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 443 * dhcp.c/.h, autoip.c/.h: task #10139 (Prefer statically allocated
ua1arn 0:c2ca3c5ded62 444 memory): added autoip_set_struct() and dhcp_set_struct() to let autoip
ua1arn 0:c2ca3c5ded62 445 and dhcp work with user-allocated structs instead of callin mem_malloc
ua1arn 0:c2ca3c5ded62 446
ua1arn 0:c2ca3c5ded62 447 2010-02-12: Simon Goldschmidt/Jeff Barber
ua1arn 0:c2ca3c5ded62 448 * tcp.c/h: patch #6865 (SO_REUSEADDR for TCP): if pcb.so_options has
ua1arn 0:c2ca3c5ded62 449 SOF_REUSEADDR set, allow binding to endpoint in TIME_WAIT
ua1arn 0:c2ca3c5ded62 450
ua1arn 0:c2ca3c5ded62 451 2010-02-12: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 452 * sys layer: task #10139 (Prefer statically allocated memory): converted
ua1arn 0:c2ca3c5ded62 453 mbox and semaphore functions to take pointers to sys_mbox_t/sys_sem_t;
ua1arn 0:c2ca3c5ded62 454 converted sys_mbox_new/sys_sem_new to take pointers and return err_t;
ua1arn 0:c2ca3c5ded62 455 task #7212: Add Mutex concept in sys_arch (define LWIP_COMPAT_MUTEX
ua1arn 0:c2ca3c5ded62 456 to let sys.h use binary semaphores instead of mutexes - as before)
ua1arn 0:c2ca3c5ded62 457
ua1arn 0:c2ca3c5ded62 458 2010-02-09: Simon Goldschmidt (Simon Kallweit)
ua1arn 0:c2ca3c5ded62 459 * timers.c/.h: Added function sys_restart_timeouts() from patch #7085
ua1arn 0:c2ca3c5ded62 460 (Restart system timeout handling)
ua1arn 0:c2ca3c5ded62 461
ua1arn 0:c2ca3c5ded62 462 2010-02-09: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 463 * netif.c/.h, removed loopif.c/.h: task #10153 (Integrate loopif into
ua1arn 0:c2ca3c5ded62 464 netif.c) - loopif does not have to be created by the port any more,
ua1arn 0:c2ca3c5ded62 465 just define LWIP_HAVE_LOOPIF to 1.
ua1arn 0:c2ca3c5ded62 466
ua1arn 0:c2ca3c5ded62 467 2010-02-08: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 468 * inet.h, ip_addr.c/.h: Added reentrant versions of inet_ntoa/ipaddr_ntoa
ua1arn 0:c2ca3c5ded62 469 inet_ntoa_r/ipaddr_ntoa_r
ua1arn 0:c2ca3c5ded62 470
ua1arn 0:c2ca3c5ded62 471 2010-02-08: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 472 * netif.h: Added netif_s/get_igmp_mac_filter() macros
ua1arn 0:c2ca3c5ded62 473
ua1arn 0:c2ca3c5ded62 474 2010-02-05: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 475 * netif.h: Added function-like macros to get/set the hostname on a netif
ua1arn 0:c2ca3c5ded62 476
ua1arn 0:c2ca3c5ded62 477 2010-02-04: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 478 * nearly every file: Replaced struct ip_addr by typedef ip_addr_t to
ua1arn 0:c2ca3c5ded62 479 make changing the actual implementation behind the typedef easier.
ua1arn 0:c2ca3c5ded62 480
ua1arn 0:c2ca3c5ded62 481 2010-02-01: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 482 * opt.h, memp_std.h, dns.h, netdb.c, memp.c: Let netdb use a memp pool
ua1arn 0:c2ca3c5ded62 483 for allocating memory when getaddrinfo() is called.
ua1arn 0:c2ca3c5ded62 484
ua1arn 0:c2ca3c5ded62 485 2010-01-31: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 486 * dhcp.h, dhcp.c: Reworked the code that parses DHCP options: parse
ua1arn 0:c2ca3c5ded62 487 them once instead of parsing for every option. This also removes
ua1arn 0:c2ca3c5ded62 488 the need for mem_malloc from dhcp_recv and makes it possible to
ua1arn 0:c2ca3c5ded62 489 correctly retrieve the BOOTP file.
ua1arn 0:c2ca3c5ded62 490
ua1arn 0:c2ca3c5ded62 491 2010-01-30: simon Goldschmidt
ua1arn 0:c2ca3c5ded62 492 * sockets.c: Use SYS_LIGHTWEIGHT_PROT instead of a semaphore to protect
ua1arn 0:c2ca3c5ded62 493 the sockets array.
ua1arn 0:c2ca3c5ded62 494
ua1arn 0:c2ca3c5ded62 495 2010-01-29: Simon Goldschmidt (patch by Laura Garrett)
ua1arn 0:c2ca3c5ded62 496 * api.h, api_msg.c, sockets.c: Added except set support in select
ua1arn 0:c2ca3c5ded62 497 (patch #6860)
ua1arn 0:c2ca3c5ded62 498
ua1arn 0:c2ca3c5ded62 499 2010-01-29: Simon Goldschmidt (patch by Laura Garrett)
ua1arn 0:c2ca3c5ded62 500 * api.h, sockets.h, err.h, api_lib.c, api_msg.c, sockets.c, err.c:
ua1arn 0:c2ca3c5ded62 501 Add non-blocking support for connect (partly from patch #6860),
ua1arn 0:c2ca3c5ded62 502 plus many cleanups in socket & netconn API.
ua1arn 0:c2ca3c5ded62 503
ua1arn 0:c2ca3c5ded62 504 2010-01-27: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 505 * opt.h, tcp.h, init.c, api_msg.c: Added TCP_SNDQUEUELOWAT corresponding
ua1arn 0:c2ca3c5ded62 506 to TCP_SNDLOWAT and added tcp_sndqueuelen() - this fixes bug #28605
ua1arn 0:c2ca3c5ded62 507
ua1arn 0:c2ca3c5ded62 508 2010-01-26: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 509 * snmp: Use memp pools for snmp instead of the heap; added 4 new pools.
ua1arn 0:c2ca3c5ded62 510
ua1arn 0:c2ca3c5ded62 511 2010-01-14: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 512 * ppp.c/.h: Fixed bug #27856: PPP: Set netif link- and status-callback
ua1arn 0:c2ca3c5ded62 513 by adding ppp_set_netif_statuscallback()/ppp_set_netif_linkcallback()
ua1arn 0:c2ca3c5ded62 514
ua1arn 0:c2ca3c5ded62 515 2010-01-13: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 516 * mem.c: The heap now may be moved to user-defined memory by defining
ua1arn 0:c2ca3c5ded62 517 LWIP_RAM_HEAP_POINTER as a void pointer to that memory's address
ua1arn 0:c2ca3c5ded62 518 (patch #6966 and bug #26133)
ua1arn 0:c2ca3c5ded62 519
ua1arn 0:c2ca3c5ded62 520 2010-01-10: Simon Goldschmidt (Bill Auerbach)
ua1arn 0:c2ca3c5ded62 521 * opt.h, memp.c: patch #6822 (Add option to place memory pools in
ua1arn 0:c2ca3c5ded62 522 separate arrays)
ua1arn 0:c2ca3c5ded62 523
ua1arn 0:c2ca3c5ded62 524 2010-01-10: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 525 * init.c, igmp.c: patch #6463 (IGMP - Adding Random Delay): added define
ua1arn 0:c2ca3c5ded62 526 LWIP_RAND() for lwip-wide randomization (to be defined in cc.h)
ua1arn 0:c2ca3c5ded62 527
ua1arn 0:c2ca3c5ded62 528 2009-12-31: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 529 * tcpip.c, init.c, memp.c, sys.c, memp_std.h, sys.h, tcpip.h
ua1arn 0:c2ca3c5ded62 530 added timers.c/.h: Separated timer implementation from semaphore/mbox
ua1arn 0:c2ca3c5ded62 531 implementation, moved timer implementation to timers.c/.h, timers are
ua1arn 0:c2ca3c5ded62 532 now only called from tcpip_thread or by explicitly checking them.
ua1arn 0:c2ca3c5ded62 533 (TASK#7235)
ua1arn 0:c2ca3c5ded62 534
ua1arn 0:c2ca3c5ded62 535 2009-12-27: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 536 * opt.h, etharp.h/.c, init.c, tcpip.c: Added an additional option
ua1arn 0:c2ca3c5ded62 537 LWIP_ETHERNET to support ethernet without ARP (necessary for pure PPPoE)
ua1arn 0:c2ca3c5ded62 538
ua1arn 0:c2ca3c5ded62 539
ua1arn 0:c2ca3c5ded62 540 ++ Bugfixes:
ua1arn 0:c2ca3c5ded62 541
ua1arn 0:c2ca3c5ded62 542 2011-04-20: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 543 * sys_arch.txt: sys_arch_timeouts() is not needed any more.
ua1arn 0:c2ca3c5ded62 544
ua1arn 0:c2ca3c5ded62 545 2011-04-13: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 546 * tcp.c, udp.c: Fixed bug #33048 (Bad range for IP source port numbers) by
ua1arn 0:c2ca3c5ded62 547 using ports in the IANA private/dynamic range (49152 through 65535).
ua1arn 0:c2ca3c5ded62 548
ua1arn 0:c2ca3c5ded62 549 2011-03-29: Simon Goldschmidt, patch by Emil Lhungdahl:
ua1arn 0:c2ca3c5ded62 550 * etharp.h/.c: Fixed broken VLAN support.
ua1arn 0:c2ca3c5ded62 551
ua1arn 0:c2ca3c5ded62 552 2011-03-27: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 553 * tcp.c: Fixed bug #32926 (TCP_RMV(&tcp_bound_pcbs) is called on unbound tcp
ua1arn 0:c2ca3c5ded62 554 pcbs) by checking if the pcb was bound (local_port != 0).
ua1arn 0:c2ca3c5ded62 555
ua1arn 0:c2ca3c5ded62 556 2011-03-27: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 557 * ppp.c: Fixed bug #32280 (ppp: a pbuf is freed twice)
ua1arn 0:c2ca3c5ded62 558
ua1arn 0:c2ca3c5ded62 559 2011-03-27: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 560 * sockets.c: Fixed bug #32906: lwip_connect+lwip_send did not work for udp and
ua1arn 0:c2ca3c5ded62 561 raw pcbs with LWIP_TCPIP_CORE_LOCKING==1.
ua1arn 0:c2ca3c5ded62 562
ua1arn 0:c2ca3c5ded62 563 2011-03-27: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 564 * tcp_out.c: Fixed bug #32820 (Outgoing TCP connections created before route
ua1arn 0:c2ca3c5ded62 565 is present never times out) by starting retransmission timer before checking
ua1arn 0:c2ca3c5ded62 566 route.
ua1arn 0:c2ca3c5ded62 567
ua1arn 0:c2ca3c5ded62 568 2011-03-22: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 569 * ppp.c: Fixed bug #32648 (PPP code crashes when terminating a link) by only
ua1arn 0:c2ca3c5ded62 570 calling sio_read_abort() if the file descriptor is valid.
ua1arn 0:c2ca3c5ded62 571
ua1arn 0:c2ca3c5ded62 572 2011-03-14: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 573 * err.h/.c, sockets.c, api_msg.c: fixed bug #31748 (Calling non-blocking connect
ua1arn 0:c2ca3c5ded62 574 more than once can render a socket useless) since it mainly involves changing
ua1arn 0:c2ca3c5ded62 575 "FATAL" classification of error codes: ERR_USE and ERR_ISCONN just aren't fatal.
ua1arn 0:c2ca3c5ded62 576
ua1arn 0:c2ca3c5ded62 577 2011-03-13: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 578 * sockets.c: fixed bug #32769 (ESHUTDOWN is linux-specific) by fixing
ua1arn 0:c2ca3c5ded62 579 err_to_errno_table (ERR_CLSD: ENOTCONN instead of ESHUTDOWN), ERR_ISCONN:
ua1arn 0:c2ca3c5ded62 580 use EALRADY instead of -1
ua1arn 0:c2ca3c5ded62 581
ua1arn 0:c2ca3c5ded62 582 2011-03-13: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 583 * api_lib.c: netconn_accept: return ERR_ABRT instead of ERR_CLSD if the
ua1arn 0:c2ca3c5ded62 584 connection has been aborted by err_tcp (since this is not a normal closing
ua1arn 0:c2ca3c5ded62 585 procedure).
ua1arn 0:c2ca3c5ded62 586
ua1arn 0:c2ca3c5ded62 587 2011-03-13: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 588 * tcp.c: tcp_bind: return ERR_VAL instead of ERR_ISCONN when trying to bind
ua1arn 0:c2ca3c5ded62 589 with pcb->state != CLOSED
ua1arn 0:c2ca3c5ded62 590
ua1arn 0:c2ca3c5ded62 591 2011-02-17: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 592 * rawapi.txt: Fixed bug #32561 tcp_poll argument definition out-of-order in
ua1arn 0:c2ca3c5ded62 593 documentation
ua1arn 0:c2ca3c5ded62 594
ua1arn 0:c2ca3c5ded62 595 2011-02-17: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 596 * many files: Added missing U/UL modifiers to fix 16-bit-arch portability.
ua1arn 0:c2ca3c5ded62 597
ua1arn 0:c2ca3c5ded62 598 2011-01-24: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 599 * sockets.c: Fixed bug #31741: lwip_select seems to have threading problems
ua1arn 0:c2ca3c5ded62 600
ua1arn 0:c2ca3c5ded62 601 2010-12-02: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 602 * err.h: Fixed ERR_IS_FATAL so that ERR_WOULDBLOCK is not fatal.
ua1arn 0:c2ca3c5ded62 603
ua1arn 0:c2ca3c5ded62 604 2010-11-23: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 605 * api.h, api_lib.c, api_msg.c, sockets.c: netconn.recv_avail is only used for
ua1arn 0:c2ca3c5ded62 606 LWIP_SO_RCVBUF and ioctl/FIONREAD.
ua1arn 0:c2ca3c5ded62 607
ua1arn 0:c2ca3c5ded62 608 2010-11-23: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 609 * etharp.c: Fixed bug #31720: ARP-queueing: RFC 1122 recommends to queue at
ua1arn 0:c2ca3c5ded62 610 least 1 packet -> ARP_QUEUEING==0 now queues the most recent packet.
ua1arn 0:c2ca3c5ded62 611
ua1arn 0:c2ca3c5ded62 612 2010-11-23: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 613 * tcp_in.c: Fixed bug #30577: tcp_input: don't discard ACK-only packets after
ua1arn 0:c2ca3c5ded62 614 refusing 'refused_data' again.
ua1arn 0:c2ca3c5ded62 615
ua1arn 0:c2ca3c5ded62 616 2010-11-22: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 617 * sockets.c: Fixed bug #31590: getsockopt(... SO_ERROR ...) gives EINPROGRESS
ua1arn 0:c2ca3c5ded62 618 after a successful nonblocking connection.
ua1arn 0:c2ca3c5ded62 619
ua1arn 0:c2ca3c5ded62 620 2010-11-22: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 621 * etharp.c: Fixed bug #31722: IP packets sent with an AutoIP source addr
ua1arn 0:c2ca3c5ded62 622 must be sent link-local
ua1arn 0:c2ca3c5ded62 623
ua1arn 0:c2ca3c5ded62 624 2010-11-22: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 625 * timers.c: patch #7329: tcp_timer_needed prototype was ifdef'ed out for
ua1arn 0:c2ca3c5ded62 626 LWIP_TIMERS==0
ua1arn 0:c2ca3c5ded62 627
ua1arn 0:c2ca3c5ded62 628 2010-11-20: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 629 * sockets.c: Fixed bug #31170: lwip_setsockopt() does not set socket number
ua1arn 0:c2ca3c5ded62 630
ua1arn 0:c2ca3c5ded62 631 2010-11-20: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 632 * sockets.h: Fixed bug #31304: Changed SHUT_RD, SHUT_WR and SHUT_RDWR to
ua1arn 0:c2ca3c5ded62 633 resemble other stacks.
ua1arn 0:c2ca3c5ded62 634
ua1arn 0:c2ca3c5ded62 635 2010-11-20: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 636 * dns.c: Fixed bug #31535: TCP_SND_QUEUELEN must be at least 2 or else
ua1arn 0:c2ca3c5ded62 637 no-copy TCP writes will never succeed.
ua1arn 0:c2ca3c5ded62 638
ua1arn 0:c2ca3c5ded62 639 2010-11-20: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 640 * dns.c: Fixed bug #31701: Error return value from dns_gethostbyname() does
ua1arn 0:c2ca3c5ded62 641 not match documentation: return ERR_ARG instead of ERR_VAL if not
ua1arn 0:c2ca3c5ded62 642 initialized or wrong argument.
ua1arn 0:c2ca3c5ded62 643
ua1arn 0:c2ca3c5ded62 644 2010-10-20: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 645 * sockets.h: Fixed bug #31385: sizeof(struct sockaddr) is 30 but should be 16
ua1arn 0:c2ca3c5ded62 646
ua1arn 0:c2ca3c5ded62 647 2010-10-05: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 648 * dhcp.c: Once again fixed #30038: DHCP/AutoIP cooperation failed when
ua1arn 0:c2ca3c5ded62 649 replugging the network cable after an AutoIP address was assigned.
ua1arn 0:c2ca3c5ded62 650
ua1arn 0:c2ca3c5ded62 651 2010-08-10: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 652 * tcp.c: Fixed bug #30728: tcp_new_port() did not check listen pcbs
ua1arn 0:c2ca3c5ded62 653
ua1arn 0:c2ca3c5ded62 654 2010-08-03: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 655 * udp.c, raw.c: Don't chain empty pbufs when sending them (fixes bug #30625)
ua1arn 0:c2ca3c5ded62 656
ua1arn 0:c2ca3c5ded62 657 2010-08-01: Simon Goldschmidt (patch by Greg Renda)
ua1arn 0:c2ca3c5ded62 658 * ppp.c: Applied patch #7264 (PPP protocols are rejected incorrectly on big
ua1arn 0:c2ca3c5ded62 659 endian architectures)
ua1arn 0:c2ca3c5ded62 660
ua1arn 0:c2ca3c5ded62 661 2010-07-28: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 662 * api_lib.c, api_msg.c, sockets.c, mib2.c: Fixed compilation with TCP or UDP
ua1arn 0:c2ca3c5ded62 663 disabled.
ua1arn 0:c2ca3c5ded62 664
ua1arn 0:c2ca3c5ded62 665 2010-07-27: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 666 * tcp.c: Fixed bug #30565 (tcp_connect() check bound list): that check did no
ua1arn 0:c2ca3c5ded62 667 harm but never did anything
ua1arn 0:c2ca3c5ded62 668
ua1arn 0:c2ca3c5ded62 669 2010-07-21: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 670 * ip.c: Fixed invalid fix for bug #30402 (CHECKSUM_GEN_IP_INLINE does not
ua1arn 0:c2ca3c5ded62 671 add IP options)
ua1arn 0:c2ca3c5ded62 672
ua1arn 0:c2ca3c5ded62 673 2010-07-16: Kieran Mansley
ua1arn 0:c2ca3c5ded62 674 * msg_in.c: Fixed SNMP ASN constant defines to not use ! operator
ua1arn 0:c2ca3c5ded62 675
ua1arn 0:c2ca3c5ded62 676 2010-07-10: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 677 * ip.c: Fixed bug #30402: CHECKSUM_GEN_IP_INLINE does not add IP options
ua1arn 0:c2ca3c5ded62 678
ua1arn 0:c2ca3c5ded62 679 2010-06-30: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 680 * api_msg.c: fixed bug #30300 (shutdown parameter was not initialized in
ua1arn 0:c2ca3c5ded62 681 netconn_delete)
ua1arn 0:c2ca3c5ded62 682
ua1arn 0:c2ca3c5ded62 683 2010-06-28: Kieran Mansley
ua1arn 0:c2ca3c5ded62 684 * timers.c remove unportable printing of C function pointers
ua1arn 0:c2ca3c5ded62 685
ua1arn 0:c2ca3c5ded62 686 2010-06-24: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 687 * init.c, timers.c/.h, opt.h, memp_std.h: From patch #7221: added flag
ua1arn 0:c2ca3c5ded62 688 NO_SYS_NO_TIMERS to drop timer support for NO_SYS==1 for easier upgrading
ua1arn 0:c2ca3c5ded62 689
ua1arn 0:c2ca3c5ded62 690 2010-06-24: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 691 * api(_lib).c/.h, api_msg.c/.h, sockets.c/.h: Fixed bug #10088: Correctly
ua1arn 0:c2ca3c5ded62 692 implemented shutdown at socket level.
ua1arn 0:c2ca3c5ded62 693
ua1arn 0:c2ca3c5ded62 694 2010-06-21: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 695 * pbuf.c/.h, ip_frag.c/.h, opt.h, memp_std.h: Fixed bug #29361 (ip_frag has
ua1arn 0:c2ca3c5ded62 696 problems with zero-copy DMA MACs) by adding custom pbufs and implementing
ua1arn 0:c2ca3c5ded62 697 custom pbufs that reference other (original) pbufs. Additionally set
ua1arn 0:c2ca3c5ded62 698 IP_FRAG_USES_STATIC_BUF=0 as default to be on the safe side.
ua1arn 0:c2ca3c5ded62 699
ua1arn 0:c2ca3c5ded62 700 2010-06-15: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 701 * dhcp.c: Fixed bug #29970: DHCP endian issue parsing option responses
ua1arn 0:c2ca3c5ded62 702
ua1arn 0:c2ca3c5ded62 703 2010-06-14: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 704 * autoip.c: Fixed bug #30039: AutoIP does not reuse previous addresses
ua1arn 0:c2ca3c5ded62 705
ua1arn 0:c2ca3c5ded62 706 2010-06-12: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 707 * dhcp.c: Fixed bug #30038: dhcp_network_changed doesn't reset AUTOIP coop
ua1arn 0:c2ca3c5ded62 708 state
ua1arn 0:c2ca3c5ded62 709
ua1arn 0:c2ca3c5ded62 710 2010-05-17: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 711 * netdb.c: Correctly NULL-terminate h_addr_list
ua1arn 0:c2ca3c5ded62 712
ua1arn 0:c2ca3c5ded62 713 2010-05-16: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 714 * def.h/.c: changed the semantics of LWIP_PREFIX_BYTEORDER_FUNCS to prevent
ua1arn 0:c2ca3c5ded62 715 "symbol already defined" i.e. when linking to winsock
ua1arn 0:c2ca3c5ded62 716
ua1arn 0:c2ca3c5ded62 717 2010-05-05: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 718 * def.h, timers.c: Fixed bug #29769 (sys_check_timeouts: sys_now() may
ua1arn 0:c2ca3c5ded62 719 overflow)
ua1arn 0:c2ca3c5ded62 720
ua1arn 0:c2ca3c5ded62 721 2010-04-21: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 722 * api_msg.c: Fixed bug #29617 (sometime cause stall on delete listening
ua1arn 0:c2ca3c5ded62 723 connection)
ua1arn 0:c2ca3c5ded62 724
ua1arn 0:c2ca3c5ded62 725 2010-03-28: Luca Ceresoli
ua1arn 0:c2ca3c5ded62 726 * ip_addr.c/.h: patch #7143: Add a few missing const qualifiers
ua1arn 0:c2ca3c5ded62 727
ua1arn 0:c2ca3c5ded62 728 2010-03-27: Luca Ceresoli
ua1arn 0:c2ca3c5ded62 729 * mib2.c: patch #7130: remove meaningless const qualifiers
ua1arn 0:c2ca3c5ded62 730
ua1arn 0:c2ca3c5ded62 731 2010-03-26: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 732 * tcp_out.c: Make LWIP_NETIF_TX_SINGLE_PBUF work for TCP, too
ua1arn 0:c2ca3c5ded62 733
ua1arn 0:c2ca3c5ded62 734 2010-03-26: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 735 * various files: Fixed compiling with different options disabled (TCP/UDP),
ua1arn 0:c2ca3c5ded62 736 triggered by bug #29345; don't allocate acceptmbox if LWIP_TCP is disabled
ua1arn 0:c2ca3c5ded62 737
ua1arn 0:c2ca3c5ded62 738 2010-03-25: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 739 * sockets.c: Fixed bug #29332: lwip_select() processes readset incorrectly
ua1arn 0:c2ca3c5ded62 740
ua1arn 0:c2ca3c5ded62 741 2010-03-25: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 742 * tcp_in.c, test_tcp_oos.c: Fixed bug #29080: Correctly handle remote side
ua1arn 0:c2ca3c5ded62 743 overrunning our rcv_wnd in ooseq case.
ua1arn 0:c2ca3c5ded62 744
ua1arn 0:c2ca3c5ded62 745 2010-03-22: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 746 * tcp.c: tcp_listen() did not copy the pcb's prio.
ua1arn 0:c2ca3c5ded62 747
ua1arn 0:c2ca3c5ded62 748 2010-03-19: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 749 * snmp_msg.c: Fixed bug #29256: SNMP Trap address was not correctly set
ua1arn 0:c2ca3c5ded62 750
ua1arn 0:c2ca3c5ded62 751 2010-03-14: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 752 * opt.h, etharp.h: Fixed bug #29148 (Incorrect PBUF_POOL_BUFSIZE for ports
ua1arn 0:c2ca3c5ded62 753 where ETH_PAD_SIZE > 0) by moving definition of ETH_PAD_SIZE to opt.h
ua1arn 0:c2ca3c5ded62 754 and basing PBUF_LINK_HLEN on it.
ua1arn 0:c2ca3c5ded62 755
ua1arn 0:c2ca3c5ded62 756 2010-03-08: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 757 * netif.c, ipv4/ip.c: task #10241 (AutoIP: don't break existing connections
ua1arn 0:c2ca3c5ded62 758 when assiging routable address): when checking incoming packets and
ua1arn 0:c2ca3c5ded62 759 aborting existing connection on address change, filter out link-local
ua1arn 0:c2ca3c5ded62 760 addresses.
ua1arn 0:c2ca3c5ded62 761
ua1arn 0:c2ca3c5ded62 762 2010-03-06: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 763 * sockets.c: Fixed LWIP_NETIF_TX_SINGLE_PBUF for LWIP_TCPIP_CORE_LOCKING
ua1arn 0:c2ca3c5ded62 764
ua1arn 0:c2ca3c5ded62 765 2010-03-06: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 766 * ipv4/ip.c: Don't try to forward link-local addresses
ua1arn 0:c2ca3c5ded62 767
ua1arn 0:c2ca3c5ded62 768 2010-03-06: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 769 * etharp.c: Fixed bug #29087: etharp: don't send packets for LinkLocal-
ua1arn 0:c2ca3c5ded62 770 addresses to gw
ua1arn 0:c2ca3c5ded62 771
ua1arn 0:c2ca3c5ded62 772 2010-03-05: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 773 * dhcp.c: Fixed bug #29072: Correctly set ciaddr based on message-type
ua1arn 0:c2ca3c5ded62 774 and state.
ua1arn 0:c2ca3c5ded62 775
ua1arn 0:c2ca3c5ded62 776 2010-03-05: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 777 * api_msg.c: Correctly set TCP_WRITE_FLAG_MORE when netconn_write is split
ua1arn 0:c2ca3c5ded62 778 into multiple calls to tcp_write.
ua1arn 0:c2ca3c5ded62 779
ua1arn 0:c2ca3c5ded62 780 2010-02-21: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 781 * opt.h, mem.h, dns.c: task #10140: Remove DNS_USES_STATIC_BUF (keep
ua1arn 0:c2ca3c5ded62 782 the implementation of DNS_USES_STATIC_BUF==1)
ua1arn 0:c2ca3c5ded62 783
ua1arn 0:c2ca3c5ded62 784 2010-02-20: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 785 * tcp.h, tcp.c, tcp_in.c, tcp_out.c: Task #10088: Correctly implement
ua1arn 0:c2ca3c5ded62 786 close() vs. shutdown(). Now the application does not get any more
ua1arn 0:c2ca3c5ded62 787 recv callbacks after calling tcp_close(). Added tcp_shutdown().
ua1arn 0:c2ca3c5ded62 788
ua1arn 0:c2ca3c5ded62 789 2010-02-19: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 790 * mem.c/.h, pbuf.c: Renamed mem_realloc() to mem_trim() to prevent
ua1arn 0:c2ca3c5ded62 791 confusion with realloc()
ua1arn 0:c2ca3c5ded62 792
ua1arn 0:c2ca3c5ded62 793 2010-02-15: Simon Goldschmidt/Stephane Lesage
ua1arn 0:c2ca3c5ded62 794 * netif.c/.h: Link status does not depend on LWIP_NETIF_LINK_CALLBACK
ua1arn 0:c2ca3c5ded62 795 (fixes bug #28899)
ua1arn 0:c2ca3c5ded62 796
ua1arn 0:c2ca3c5ded62 797 2010-02-14: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 798 * netif.c: Fixed bug #28877 (Duplicate ARP gratuitous packet with
ua1arn 0:c2ca3c5ded62 799 LWIP_NETIF_LINK_CALLBACK set on) by only sending if both link- and
ua1arn 0:c2ca3c5ded62 800 admin-status of a netif are up
ua1arn 0:c2ca3c5ded62 801
ua1arn 0:c2ca3c5ded62 802 2010-02-14: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 803 * opt.h: Disable ETHARP_TRUST_IP_MAC by default since it slows down packet
ua1arn 0:c2ca3c5ded62 804 reception and is not really necessary
ua1arn 0:c2ca3c5ded62 805
ua1arn 0:c2ca3c5ded62 806 2010-02-14: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 807 * etharp.c/.h: Fixed ARP input processing: only add a new entry if a
ua1arn 0:c2ca3c5ded62 808 request was directed as us (RFC 826, Packet Reception), otherwise
ua1arn 0:c2ca3c5ded62 809 only update existing entries; internalized some functions
ua1arn 0:c2ca3c5ded62 810
ua1arn 0:c2ca3c5ded62 811 2010-02-14: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 812 * netif.h, etharp.c, tcpip.c: Fixed bug #28183 (ARP and TCP/IP cannot be
ua1arn 0:c2ca3c5ded62 813 disabled on netif used for PPPoE) by adding a new netif flag
ua1arn 0:c2ca3c5ded62 814 (NETIF_FLAG_ETHERNET) that tells the stack the device is an ethernet
ua1arn 0:c2ca3c5ded62 815 device but prevents usage of ARP (so that ethernet_input can be used
ua1arn 0:c2ca3c5ded62 816 for PPPoE).
ua1arn 0:c2ca3c5ded62 817
ua1arn 0:c2ca3c5ded62 818 2010-02-12: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 819 * netif.c: netif_set_link_up/down: only do something if the link state
ua1arn 0:c2ca3c5ded62 820 actually changes
ua1arn 0:c2ca3c5ded62 821
ua1arn 0:c2ca3c5ded62 822 2010-02-12: Simon Goldschmidt/Stephane Lesage
ua1arn 0:c2ca3c5ded62 823 * api_msg.c: Fixed bug #28865 (Cannot close socket/netconn in non-blocking
ua1arn 0:c2ca3c5ded62 824 connect)
ua1arn 0:c2ca3c5ded62 825
ua1arn 0:c2ca3c5ded62 826 2010-02-12: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 827 * mem.h: Fixed bug #28866 (mem_realloc function defined in mem.h)
ua1arn 0:c2ca3c5ded62 828
ua1arn 0:c2ca3c5ded62 829 2010-02-09: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 830 * api_lib.c, api_msg.c, sockets.c, api.h, api_msg.h: Fixed bug #22110
ua1arn 0:c2ca3c5ded62 831 (recv() makes receive window update for data that wasn't received by
ua1arn 0:c2ca3c5ded62 832 application)
ua1arn 0:c2ca3c5ded62 833
ua1arn 0:c2ca3c5ded62 834 2010-02-09: Simon Goldschmidt/Stephane Lesage
ua1arn 0:c2ca3c5ded62 835 * sockets.c: Fixed bug #28853 (lwip_recvfrom() returns 0 on receive time-out
ua1arn 0:c2ca3c5ded62 836 or any netconn_recv() error)
ua1arn 0:c2ca3c5ded62 837
ua1arn 0:c2ca3c5ded62 838 2010-02-09: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 839 * ppp.c: task #10154 (PPP: Update snmp in/out counters for tx/rx packets)
ua1arn 0:c2ca3c5ded62 840
ua1arn 0:c2ca3c5ded62 841 2010-02-09: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 842 * netif.c: For loopback packets, adjust the stats- and snmp-counters
ua1arn 0:c2ca3c5ded62 843 for the loopback netif.
ua1arn 0:c2ca3c5ded62 844
ua1arn 0:c2ca3c5ded62 845 2010-02-08: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 846 * igmp.c/.h, ip.h: Moved most defines from igmp.h to igmp.c for clarity
ua1arn 0:c2ca3c5ded62 847 since they are not used anywhere else.
ua1arn 0:c2ca3c5ded62 848
ua1arn 0:c2ca3c5ded62 849 2010-02-08: Simon Goldschmidt (Stéphane Lesage)
ua1arn 0:c2ca3c5ded62 850 * igmp.c, igmp.h, stats.c, stats.h: Improved IGMP stats
ua1arn 0:c2ca3c5ded62 851 (patch from bug #28798)
ua1arn 0:c2ca3c5ded62 852
ua1arn 0:c2ca3c5ded62 853 2010-02-08: Simon Goldschmidt (Stéphane Lesage)
ua1arn 0:c2ca3c5ded62 854 * igmp.c: Fixed bug #28798 (Error in "Max Response Time" processing) and
ua1arn 0:c2ca3c5ded62 855 another bug when LWIP_RAND() returns zero.
ua1arn 0:c2ca3c5ded62 856
ua1arn 0:c2ca3c5ded62 857 2010-02-04: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 858 * nearly every file: Use macros defined in ip_addr.h (some of them new)
ua1arn 0:c2ca3c5ded62 859 to work with IP addresses (preparation for bug #27352 - Change ip_addr
ua1arn 0:c2ca3c5ded62 860 from struct to typedef (u32_t) - and better code).
ua1arn 0:c2ca3c5ded62 861
ua1arn 0:c2ca3c5ded62 862 2010-01-31: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 863 * netif.c: Don't call the link-callback from netif_set_up/down() since
ua1arn 0:c2ca3c5ded62 864 this invalidly retriggers DHCP.
ua1arn 0:c2ca3c5ded62 865
ua1arn 0:c2ca3c5ded62 866 2010-01-29: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 867 * ip_addr.h, inet.h, def.h, inet.c, def.c, more: Cleanly separate the
ua1arn 0:c2ca3c5ded62 868 portability file inet.h and its contents from the stack: moved htonX-
ua1arn 0:c2ca3c5ded62 869 functions to def.h (and the new def.c - they are not ipv4 dependent),
ua1arn 0:c2ca3c5ded62 870 let inet.h depend on ip_addr.h and not the other way round.
ua1arn 0:c2ca3c5ded62 871 This fixes bug #28732.
ua1arn 0:c2ca3c5ded62 872
ua1arn 0:c2ca3c5ded62 873 2010-01-28: Kieran Mansley
ua1arn 0:c2ca3c5ded62 874 * tcp.c: Ensure ssthresh >= 2*MSS
ua1arn 0:c2ca3c5ded62 875
ua1arn 0:c2ca3c5ded62 876 2010-01-27: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 877 * tcp.h, tcp.c, tcp_in.c: Fixed bug #27871: Calling tcp_abort() in recv
ua1arn 0:c2ca3c5ded62 878 callback can lead to accessing unallocated memory. As a consequence,
ua1arn 0:c2ca3c5ded62 879 ERR_ABRT means the application has called tcp_abort()!
ua1arn 0:c2ca3c5ded62 880
ua1arn 0:c2ca3c5ded62 881 2010-01-25: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 882 * snmp_structs.h, msg_in.c: Partly fixed bug #22070 (MIB_OBJECT_WRITE_ONLY
ua1arn 0:c2ca3c5ded62 883 not implemented in SNMP): write-only or not-accessible are still
ua1arn 0:c2ca3c5ded62 884 returned by getnext (though not by get)
ua1arn 0:c2ca3c5ded62 885
ua1arn 0:c2ca3c5ded62 886 2010-01-24: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 887 * snmp: Renamed the private mib node from 'private' to 'mib_private' to
ua1arn 0:c2ca3c5ded62 888 not use reserved C/C++ keywords
ua1arn 0:c2ca3c5ded62 889
ua1arn 0:c2ca3c5ded62 890 2010-01-23: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 891 * sockets.c: Fixed bug #28716: select() returns 0 after waiting for less
ua1arn 0:c2ca3c5ded62 892 than 1 ms
ua1arn 0:c2ca3c5ded62 893
ua1arn 0:c2ca3c5ded62 894 2010-01-21: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 895 * tcp.c, api_msg.c: Fixed bug #28651 (tcp_connect: no callbacks called
ua1arn 0:c2ca3c5ded62 896 if tcp_enqueue fails) both in raw- and netconn-API
ua1arn 0:c2ca3c5ded62 897
ua1arn 0:c2ca3c5ded62 898 2010-01-19: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 899 * api_msg.c: Fixed bug #27316: netconn: Possible deadlock in err_tcp
ua1arn 0:c2ca3c5ded62 900
ua1arn 0:c2ca3c5ded62 901 2010-01-18: Iordan Neshev/Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 902 * src/netif/ppp: reorganised PPP sourcecode to 2.3.11 including some
ua1arn 0:c2ca3c5ded62 903 bugfix backports from 2.4.x.
ua1arn 0:c2ca3c5ded62 904
ua1arn 0:c2ca3c5ded62 905 2010-01-18: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 906 * mem.c: Fixed bug #28679: mem_realloc calculates mem_stats wrong
ua1arn 0:c2ca3c5ded62 907
ua1arn 0:c2ca3c5ded62 908 2010-01-17: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 909 * api_lib.c, api_msg.c, (api_msg.h, api.h, sockets.c, tcpip.c):
ua1arn 0:c2ca3c5ded62 910 task #10102: "netconn: clean up conn->err threading issues" by adding
ua1arn 0:c2ca3c5ded62 911 error return value to struct api_msg_msg
ua1arn 0:c2ca3c5ded62 912
ua1arn 0:c2ca3c5ded62 913 2010-01-17: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 914 * api.h, api_lib.c, sockets.c: Changed netconn_recv() and netconn_accept()
ua1arn 0:c2ca3c5ded62 915 to return err_t (bugs #27709 and #28087)
ua1arn 0:c2ca3c5ded62 916
ua1arn 0:c2ca3c5ded62 917 2010-01-14: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 918 * ...: Use typedef for function prototypes throughout the stack.
ua1arn 0:c2ca3c5ded62 919
ua1arn 0:c2ca3c5ded62 920 2010-01-13: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 921 * api_msg.h/.c, api_lib.c: Fixed bug #26672 (close connection when receive
ua1arn 0:c2ca3c5ded62 922 window = 0) by correctly draining recvmbox/acceptmbox
ua1arn 0:c2ca3c5ded62 923
ua1arn 0:c2ca3c5ded62 924 2010-01-11: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 925 * pap.c: Fixed bug #13315 (PPP PAP authentication can result in
ua1arn 0:c2ca3c5ded62 926 erroneous callbacks) by copying the code from recent pppd
ua1arn 0:c2ca3c5ded62 927
ua1arn 0:c2ca3c5ded62 928 2010-01-10: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 929 * raw.c: Fixed bug #28506 (raw_bind should filter received packets)
ua1arn 0:c2ca3c5ded62 930
ua1arn 0:c2ca3c5ded62 931 2010-01-10: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 932 * tcp.h/.c: bug #28127 (remove call to tcp_output() from tcp_ack(_now)())
ua1arn 0:c2ca3c5ded62 933
ua1arn 0:c2ca3c5ded62 934 2010-01-08: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 935 * sockets.c: Fixed bug #28519 (lwip_recvfrom bug with len > 65535)
ua1arn 0:c2ca3c5ded62 936
ua1arn 0:c2ca3c5ded62 937 2010-01-08: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 938 * dns.c: Copy hostname for DNS_LOCAL_HOSTLIST_IS_DYNAMIC==1 since string
ua1arn 0:c2ca3c5ded62 939 passed to dns_local_addhost() might be volatile
ua1arn 0:c2ca3c5ded62 940
ua1arn 0:c2ca3c5ded62 941 2010-01-07: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 942 * timers.c, tcp.h: Call tcp_timer_needed() with NO_SYS==1, too
ua1arn 0:c2ca3c5ded62 943
ua1arn 0:c2ca3c5ded62 944 2010-01-06: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 945 * netdb.h: Fixed bug #28496: missing include guards in netdb.h
ua1arn 0:c2ca3c5ded62 946
ua1arn 0:c2ca3c5ded62 947 2009-12-31: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 948 * many ppp files: Reorganised PPP source code from ucip structure to pppd
ua1arn 0:c2ca3c5ded62 949 structure to easily compare our code against the pppd code (around v2.3.1)
ua1arn 0:c2ca3c5ded62 950
ua1arn 0:c2ca3c5ded62 951 2009-12-27: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 952 * tcp_in.c: Another fix for bug #28241 (ooseq processing) and adapted
ua1arn 0:c2ca3c5ded62 953 unit test
ua1arn 0:c2ca3c5ded62 954
ua1arn 0:c2ca3c5ded62 955
ua1arn 0:c2ca3c5ded62 956 (STABLE-1.3.2)
ua1arn 0:c2ca3c5ded62 957
ua1arn 0:c2ca3c5ded62 958 ++ New features:
ua1arn 0:c2ca3c5ded62 959
ua1arn 0:c2ca3c5ded62 960 2009-10-27 Simon Goldschmidt/Stephan Lesage
ua1arn 0:c2ca3c5ded62 961 * netifapi.c/.h: Added netifapi_netif_set_addr()
ua1arn 0:c2ca3c5ded62 962
ua1arn 0:c2ca3c5ded62 963 2009-10-07 Simon Goldschmidt/Fabian Koch
ua1arn 0:c2ca3c5ded62 964 * api_msg.c, netbuf.c/.h, opt.h: patch #6888: Patch for UDP Netbufs to
ua1arn 0:c2ca3c5ded62 965 support dest-addr and dest-port (optional: LWIP_NETBUF_RECVINFO)
ua1arn 0:c2ca3c5ded62 966
ua1arn 0:c2ca3c5ded62 967 2009-08-26 Simon Goldschmidt/Simon Kallweit
ua1arn 0:c2ca3c5ded62 968 * slipif.c/.h: bug #26397: SLIP polling support
ua1arn 0:c2ca3c5ded62 969
ua1arn 0:c2ca3c5ded62 970 2009-08-25 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 971 * opt.h, etharp.h/.c: task #9033: Support IEEE 802.1q tagged frame (VLAN),
ua1arn 0:c2ca3c5ded62 972 New configuration options ETHARP_SUPPORT_VLAN and ETHARP_VLAN_CHECK.
ua1arn 0:c2ca3c5ded62 973
ua1arn 0:c2ca3c5ded62 974 2009-08-25 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 975 * ip_addr.h, netdb.c: patch #6900: added define ip_ntoa(struct ip_addr*)
ua1arn 0:c2ca3c5ded62 976
ua1arn 0:c2ca3c5ded62 977 2009-08-24 Jakob Stoklund Olesen
ua1arn 0:c2ca3c5ded62 978 * autoip.c, dhcp.c, netif.c: patch #6725: Teach AutoIP and DHCP to respond
ua1arn 0:c2ca3c5ded62 979 to netif_set_link_up().
ua1arn 0:c2ca3c5ded62 980
ua1arn 0:c2ca3c5ded62 981 2009-08-23 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 982 * tcp.h/.c: Added function tcp_debug_state_str() to convert a tcp state
ua1arn 0:c2ca3c5ded62 983 to a human-readable string.
ua1arn 0:c2ca3c5ded62 984
ua1arn 0:c2ca3c5ded62 985 ++ Bugfixes:
ua1arn 0:c2ca3c5ded62 986
ua1arn 0:c2ca3c5ded62 987 2009-12-24: Kieran Mansley
ua1arn 0:c2ca3c5ded62 988 * tcp_in.c Apply patches from Oleg Tyshev to improve OOS processing
ua1arn 0:c2ca3c5ded62 989 (BUG#28241)
ua1arn 0:c2ca3c5ded62 990
ua1arn 0:c2ca3c5ded62 991 2009-12-06: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 992 * ppp.h/.c: Fixed bug #27079 (Yet another leak in PPP): outpacket_buf can
ua1arn 0:c2ca3c5ded62 993 be statically allocated (like in ucip)
ua1arn 0:c2ca3c5ded62 994
ua1arn 0:c2ca3c5ded62 995 2009-12-04: Simon Goldschmidt (patch by Ioardan Neshev)
ua1arn 0:c2ca3c5ded62 996 * pap.c: patch #6969: PPP: missing PAP authentication UNTIMEOUT
ua1arn 0:c2ca3c5ded62 997
ua1arn 0:c2ca3c5ded62 998 2009-12-03: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 999 * tcp.h, tcp_in.c, tcp_out.c: Fixed bug #28106: dup ack for fast retransmit
ua1arn 0:c2ca3c5ded62 1000 could have non-zero length
ua1arn 0:c2ca3c5ded62 1001
ua1arn 0:c2ca3c5ded62 1002 2009-12-02: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1003 * tcp_in.c: Fixed bug #27904: TCP sends too many ACKs: delay resetting
ua1arn 0:c2ca3c5ded62 1004 tcp_input_pcb until after calling the pcb's callbacks
ua1arn 0:c2ca3c5ded62 1005
ua1arn 0:c2ca3c5ded62 1006 2009-11-29: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1007 * tcp_in.c: Fixed bug #28054: Two segments with FIN flag on the out-of-
ua1arn 0:c2ca3c5ded62 1008 sequence queue, also fixed PBUF_POOL leak in the out-of-sequence code
ua1arn 0:c2ca3c5ded62 1009
ua1arn 0:c2ca3c5ded62 1010 2009-11-29: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1011 * pbuf.c: Fixed bug #28064: pbuf_alloc(PBUF_POOL) is not thread-safe by
ua1arn 0:c2ca3c5ded62 1012 queueing a call into tcpip_thread to free ooseq-bufs if the pool is empty
ua1arn 0:c2ca3c5ded62 1013
ua1arn 0:c2ca3c5ded62 1014 2009-11-26: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1015 * tcp.h: Fixed bug #28098: Nagle can prevent fast retransmit from sending
ua1arn 0:c2ca3c5ded62 1016 segment
ua1arn 0:c2ca3c5ded62 1017
ua1arn 0:c2ca3c5ded62 1018 2009-11-26: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1019 * tcp.h, sockets.c: Fixed bug #28099: API required to disable Nagle
ua1arn 0:c2ca3c5ded62 1020 algorithm at PCB level
ua1arn 0:c2ca3c5ded62 1021
ua1arn 0:c2ca3c5ded62 1022 2009-11-22: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1023 * tcp_out.c: Fixed bug #27905: FIN isn't combined with data on unsent
ua1arn 0:c2ca3c5ded62 1024
ua1arn 0:c2ca3c5ded62 1025 2009-11-22: Simon Goldschmidt (suggested by Bill Auerbach)
ua1arn 0:c2ca3c5ded62 1026 * tcp.c: tcp_alloc: prevent increasing stats.err for MEMP_TCP_PCB when
ua1arn 0:c2ca3c5ded62 1027 reusing time-wait pcb
ua1arn 0:c2ca3c5ded62 1028
ua1arn 0:c2ca3c5ded62 1029 2009-11-20: Simon Goldschmidt (patch by Albert Bartel)
ua1arn 0:c2ca3c5ded62 1030 * sockets.c: Fixed bug #28062: Data received directly after accepting
ua1arn 0:c2ca3c5ded62 1031 does not wake up select
ua1arn 0:c2ca3c5ded62 1032
ua1arn 0:c2ca3c5ded62 1033 2009-11-11: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1034 * netdb.h: Fixed bug #27994: incorrect define for freeaddrinfo(addrinfo)
ua1arn 0:c2ca3c5ded62 1035
ua1arn 0:c2ca3c5ded62 1036 2009-10-30: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1037 * opt.h: Increased default value for TCP_MSS to 536, updated default
ua1arn 0:c2ca3c5ded62 1038 value for TCP_WND to 4*TCP_MSS to keep delayed ACK working.
ua1arn 0:c2ca3c5ded62 1039
ua1arn 0:c2ca3c5ded62 1040 2009-10-28: Kieran Mansley
ua1arn 0:c2ca3c5ded62 1041 * tcp_in.c, tcp_out.c, tcp.h: re-work the fast retransmission code
ua1arn 0:c2ca3c5ded62 1042 to follow algorithm from TCP/IP Illustrated
ua1arn 0:c2ca3c5ded62 1043
ua1arn 0:c2ca3c5ded62 1044 2009-10-27: Kieran Mansley
ua1arn 0:c2ca3c5ded62 1045 * tcp_in.c: fix BUG#27445: grow cwnd with every duplicate ACK
ua1arn 0:c2ca3c5ded62 1046
ua1arn 0:c2ca3c5ded62 1047 2009-10-25: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1048 * tcp.h: bug-fix in the TCP_EVENT_RECV macro (has to call tcp_recved if
ua1arn 0:c2ca3c5ded62 1049 pcb->recv is NULL to keep rcv_wnd correct)
ua1arn 0:c2ca3c5ded62 1050
ua1arn 0:c2ca3c5ded62 1051 2009-10-25: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1052 * tcp_in.c: Fixed bug #26251: RST process in TIME_WAIT TCP state
ua1arn 0:c2ca3c5ded62 1053
ua1arn 0:c2ca3c5ded62 1054 2009-10-23: Simon Goldschmidt (David Empson)
ua1arn 0:c2ca3c5ded62 1055 * tcp.c: Fixed bug #27783: Silly window avoidance for small window sizes
ua1arn 0:c2ca3c5ded62 1056
ua1arn 0:c2ca3c5ded62 1057 2009-10-21: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1058 * tcp_in.c: Fixed bug #27215: TCP sent() callback gives leading and
ua1arn 0:c2ca3c5ded62 1059 trailing 1 byte len (SYN/FIN)
ua1arn 0:c2ca3c5ded62 1060
ua1arn 0:c2ca3c5ded62 1061 2009-10-21: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1062 * tcp_out.c: Fixed bug #27315: zero window probe and FIN
ua1arn 0:c2ca3c5ded62 1063
ua1arn 0:c2ca3c5ded62 1064 2009-10-19: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1065 * dhcp.c/.h: Minor code simplification (don't store received pbuf, change
ua1arn 0:c2ca3c5ded62 1066 conditional code to assert where applicable), check pbuf length before
ua1arn 0:c2ca3c5ded62 1067 testing for valid reply
ua1arn 0:c2ca3c5ded62 1068
ua1arn 0:c2ca3c5ded62 1069 2009-10-19: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1070 * dhcp.c: Removed most calls to udp_connect since they aren't necessary
ua1arn 0:c2ca3c5ded62 1071 when using udp_sendto_if() - always stay connected to IP_ADDR_ANY.
ua1arn 0:c2ca3c5ded62 1072
ua1arn 0:c2ca3c5ded62 1073 2009-10-16: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1074 * ip.c: Fixed bug #27390: Source IP check in ip_input() causes it to drop
ua1arn 0:c2ca3c5ded62 1075 valid DHCP packets -> allow 0.0.0.0 as source address when LWIP_DHCP is
ua1arn 0:c2ca3c5ded62 1076 enabled
ua1arn 0:c2ca3c5ded62 1077
ua1arn 0:c2ca3c5ded62 1078 2009-10-15: Simon Goldschmidt (Oleg Tyshev)
ua1arn 0:c2ca3c5ded62 1079 * tcp_in.c: Fixed bug #27329: dupacks by unidirectional data transmit
ua1arn 0:c2ca3c5ded62 1080
ua1arn 0:c2ca3c5ded62 1081 2009-10-15: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1082 * api_lib.c: Fixed bug #27709: conn->err race condition on netconn_recv()
ua1arn 0:c2ca3c5ded62 1083 timeout
ua1arn 0:c2ca3c5ded62 1084
ua1arn 0:c2ca3c5ded62 1085 2009-10-15: Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1086 * autoip.c: Fixed bug #27704: autoip starts with wrong address
ua1arn 0:c2ca3c5ded62 1087 LWIP_AUTOIP_CREATE_SEED_ADDR() returned address in host byte order instead
ua1arn 0:c2ca3c5ded62 1088 of network byte order
ua1arn 0:c2ca3c5ded62 1089
ua1arn 0:c2ca3c5ded62 1090 2009-10-11 Simon Goldschmidt (Jörg Kesten)
ua1arn 0:c2ca3c5ded62 1091 * tcp_out.c: Fixed bug #27504: tcp_enqueue wrongly concatenates segments
ua1arn 0:c2ca3c5ded62 1092 which are not consecutive when retransmitting unacked segments
ua1arn 0:c2ca3c5ded62 1093
ua1arn 0:c2ca3c5ded62 1094 2009-10-09 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1095 * opt.h: Fixed default values of some stats to only be enabled if used
ua1arn 0:c2ca3c5ded62 1096 Fixes bug #27338: sys_stats is defined when NO_SYS = 1
ua1arn 0:c2ca3c5ded62 1097
ua1arn 0:c2ca3c5ded62 1098 2009-08-30 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1099 * ip.c: Fixed bug bug #27345: "ip_frag() does not use the LWIP_NETIF_LOOPBACK
ua1arn 0:c2ca3c5ded62 1100 function" by checking for loopback before calling ip_frag
ua1arn 0:c2ca3c5ded62 1101
ua1arn 0:c2ca3c5ded62 1102 2009-08-25 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1103 * dhcp.c: fixed invalid dependency to etharp_query if DHCP_DOES_ARP_CHECK==0
ua1arn 0:c2ca3c5ded62 1104
ua1arn 0:c2ca3c5ded62 1105 2009-08-23 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1106 * ppp.c: bug #27078: Possible memory leak in pppInit()
ua1arn 0:c2ca3c5ded62 1107
ua1arn 0:c2ca3c5ded62 1108 2009-08-23 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1109 * netdb.c, dns.c: bug #26657: DNS, if host name is "localhost", result
ua1arn 0:c2ca3c5ded62 1110 is error.
ua1arn 0:c2ca3c5ded62 1111
ua1arn 0:c2ca3c5ded62 1112 2009-08-23 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1113 * opt.h, init.c: bug #26649: TCP fails when TCP_MSS > TCP_SND_BUF
ua1arn 0:c2ca3c5ded62 1114 Fixed wrong parenthesis, added check in init.c
ua1arn 0:c2ca3c5ded62 1115
ua1arn 0:c2ca3c5ded62 1116 2009-08-23 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1117 * ppp.c: bug #27266: wait-state debug message in pppMain occurs every ms
ua1arn 0:c2ca3c5ded62 1118
ua1arn 0:c2ca3c5ded62 1119 2009-08-23 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1120 * many ppp files: bug #27267: Added include to string.h where needed
ua1arn 0:c2ca3c5ded62 1121
ua1arn 0:c2ca3c5ded62 1122 2009-08-23 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1123 * tcp.h: patch #6843: tcp.h macro optimization patch (for little endian)
ua1arn 0:c2ca3c5ded62 1124
ua1arn 0:c2ca3c5ded62 1125
ua1arn 0:c2ca3c5ded62 1126 (STABLE-1.3.1)
ua1arn 0:c2ca3c5ded62 1127
ua1arn 0:c2ca3c5ded62 1128 ++ New features:
ua1arn 0:c2ca3c5ded62 1129
ua1arn 0:c2ca3c5ded62 1130 2009-05-10 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1131 * opt.h, sockets.c, pbuf.c, netbuf.h, pbuf.h: task #7013: Added option
ua1arn 0:c2ca3c5ded62 1132 LWIP_NETIF_TX_SINGLE_PBUF to try to create transmit packets from only
ua1arn 0:c2ca3c5ded62 1133 one pbuf to help MACs that don't support scatter-gather DMA.
ua1arn 0:c2ca3c5ded62 1134
ua1arn 0:c2ca3c5ded62 1135 2009-05-09 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1136 * icmp.h, icmp.c: Shrinked ICMP code, added option to NOT check icoming
ua1arn 0:c2ca3c5ded62 1137 ECHO pbuf for size (just use it): LWIP_ICMP_ECHO_CHECK_INPUT_PBUF_LEN
ua1arn 0:c2ca3c5ded62 1138
ua1arn 0:c2ca3c5ded62 1139 2009-05-05 Simon Goldschmidt, Jakob Stoklund Olesen
ua1arn 0:c2ca3c5ded62 1140 * ip.h, ip.c: Added ip_current_netif() & ip_current_header() to receive
ua1arn 0:c2ca3c5ded62 1141 extended info about the currently received packet.
ua1arn 0:c2ca3c5ded62 1142
ua1arn 0:c2ca3c5ded62 1143 2009-04-27 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1144 * sys.h: Made SYS_LIGHTWEIGHT_PROT and sys_now() work with NO_SYS=1
ua1arn 0:c2ca3c5ded62 1145
ua1arn 0:c2ca3c5ded62 1146 2009-04-25 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1147 * mem.c, opt.h: Added option MEM_USE_POOLS_TRY_BIGGER_POOL to try the next
ua1arn 0:c2ca3c5ded62 1148 bigger malloc pool if one is empty (only usable with MEM_USE_POOLS).
ua1arn 0:c2ca3c5ded62 1149
ua1arn 0:c2ca3c5ded62 1150 2009-04-21 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1151 * dns.c, init.c, dns.h, opt.h: task #7507, patch #6786: DNS supports static
ua1arn 0:c2ca3c5ded62 1152 hosts table. New configuration options DNS_LOCAL_HOSTLIST and
ua1arn 0:c2ca3c5ded62 1153 DNS_LOCAL_HOSTLIST_IS_DYNAMIC. Also, DNS_LOOKUP_LOCAL_EXTERN() can be defined
ua1arn 0:c2ca3c5ded62 1154 as an external function for lookup.
ua1arn 0:c2ca3c5ded62 1155
ua1arn 0:c2ca3c5ded62 1156 2009-04-15 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1157 * dhcp.c: patch #6763: Global DHCP XID can be redefined to something more unique
ua1arn 0:c2ca3c5ded62 1158
ua1arn 0:c2ca3c5ded62 1159 2009-03-31 Kieran Mansley
ua1arn 0:c2ca3c5ded62 1160 * tcp.c, tcp_out.c, tcp_in.c, sys.h, tcp.h, opts.h: add support for
ua1arn 0:c2ca3c5ded62 1161 TCP timestamp options, off by default. Rework tcp_enqueue() to
ua1arn 0:c2ca3c5ded62 1162 take option flags rather than specified option data
ua1arn 0:c2ca3c5ded62 1163
ua1arn 0:c2ca3c5ded62 1164 2009-02-18 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1165 * cc.h: Added printf formatter for size_t: SZT_F
ua1arn 0:c2ca3c5ded62 1166
ua1arn 0:c2ca3c5ded62 1167 2009-02-16 Simon Goldschmidt (patch by Rishi Khan)
ua1arn 0:c2ca3c5ded62 1168 * icmp.c, opt.h: patch #6539: (configurable) response to broadcast- and multicast
ua1arn 0:c2ca3c5ded62 1169 pings
ua1arn 0:c2ca3c5ded62 1170
ua1arn 0:c2ca3c5ded62 1171 2009-02-12 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1172 * init.h: Added LWIP_VERSION to get the current version of the stack
ua1arn 0:c2ca3c5ded62 1173
ua1arn 0:c2ca3c5ded62 1174 2009-02-11 Simon Goldschmidt (suggested by Gottfried Spitaler)
ua1arn 0:c2ca3c5ded62 1175 * opt.h, memp.h/.c: added MEMP_MEM_MALLOC to use mem_malloc/mem_free instead
ua1arn 0:c2ca3c5ded62 1176 of the pool allocator (can save code size with MEM_LIBC_MALLOC if libc-malloc
ua1arn 0:c2ca3c5ded62 1177 is otherwise used)
ua1arn 0:c2ca3c5ded62 1178
ua1arn 0:c2ca3c5ded62 1179 2009-01-28 Jonathan Larmour (suggested by Bill Bauerbach)
ua1arn 0:c2ca3c5ded62 1180 * ipv4/inet_chksum.c, ipv4/lwip/inet_chksum.h: inet_chksum_pseudo_partial()
ua1arn 0:c2ca3c5ded62 1181 is only used by UDPLITE at present, so conditionalise it.
ua1arn 0:c2ca3c5ded62 1182
ua1arn 0:c2ca3c5ded62 1183 2008-12-03 Simon Goldschmidt (base on patch from Luca Ceresoli)
ua1arn 0:c2ca3c5ded62 1184 * autoip.c: checked in (slightly modified) patch #6683: Customizable AUTOIP
ua1arn 0:c2ca3c5ded62 1185 "seed" address. This should reduce AUTOIP conflicts if
ua1arn 0:c2ca3c5ded62 1186 LWIP_AUTOIP_CREATE_SEED_ADDR is overridden.
ua1arn 0:c2ca3c5ded62 1187
ua1arn 0:c2ca3c5ded62 1188 2008-10-02 Jonathan Larmour and Rishi Khan
ua1arn 0:c2ca3c5ded62 1189 * sockets.c (lwip_accept): Return EWOULDBLOCK if would block on non-blocking
ua1arn 0:c2ca3c5ded62 1190 socket.
ua1arn 0:c2ca3c5ded62 1191
ua1arn 0:c2ca3c5ded62 1192 2008-06-30 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1193 * mem.c, opt.h, stats.h: fixed bug #21433: Calling mem_free/pbuf_free from
ua1arn 0:c2ca3c5ded62 1194 interrupt context isn't safe: LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT allows
ua1arn 0:c2ca3c5ded62 1195 mem_free to run between mem_malloc iterations. Added illegal counter for
ua1arn 0:c2ca3c5ded62 1196 mem stats.
ua1arn 0:c2ca3c5ded62 1197
ua1arn 0:c2ca3c5ded62 1198 2008-06-27 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1199 * stats.h/.c, some other files: patch #6483: stats module improvement:
ua1arn 0:c2ca3c5ded62 1200 Added defines to display each module's statistic individually, added stats
ua1arn 0:c2ca3c5ded62 1201 defines for MEM, MEMP and SYS modules, removed (unused) rexmit counter.
ua1arn 0:c2ca3c5ded62 1202
ua1arn 0:c2ca3c5ded62 1203 2008-06-17 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1204 * err.h: patch #6459: Made err_t overridable to use a more efficient type
ua1arn 0:c2ca3c5ded62 1205 (define LWIP_ERR_T in cc.h)
ua1arn 0:c2ca3c5ded62 1206
ua1arn 0:c2ca3c5ded62 1207 2008-06-17 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1208 * slipif.c: patch #6480: Added a configuration option for slipif for symmetry
ua1arn 0:c2ca3c5ded62 1209 to loopif
ua1arn 0:c2ca3c5ded62 1210
ua1arn 0:c2ca3c5ded62 1211 2008-06-17 Simon Goldschmidt (patch by Luca Ceresoli)
ua1arn 0:c2ca3c5ded62 1212 * netif.c, loopif.c, ip.c, netif.h, loopif.h, opt.h: Checked in slightly
ua1arn 0:c2ca3c5ded62 1213 modified version of patch # 6370: Moved loopif code to netif.c so that
ua1arn 0:c2ca3c5ded62 1214 loopback traffic is supported on all netifs (all local IPs).
ua1arn 0:c2ca3c5ded62 1215 Added option to limit loopback packets for each netifs.
ua1arn 0:c2ca3c5ded62 1216
ua1arn 0:c2ca3c5ded62 1217
ua1arn 0:c2ca3c5ded62 1218 ++ Bugfixes:
ua1arn 0:c2ca3c5ded62 1219 2009-08-12 Kieran Mansley
ua1arn 0:c2ca3c5ded62 1220 * tcp_in.c, tcp.c: Fix bug #27209: handle trimming of segments when
ua1arn 0:c2ca3c5ded62 1221 out of window or out of order properly
ua1arn 0:c2ca3c5ded62 1222
ua1arn 0:c2ca3c5ded62 1223 2009-08-12 Kieran Mansley
ua1arn 0:c2ca3c5ded62 1224 * tcp_in.c: Fix bug #27199: use snd_wl2 instead of snd_wl1
ua1arn 0:c2ca3c5ded62 1225
ua1arn 0:c2ca3c5ded62 1226 2009-07-28 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1227 * mem.h: Fixed bug #27105: "realloc() cannot replace mem_realloc()"s
ua1arn 0:c2ca3c5ded62 1228
ua1arn 0:c2ca3c5ded62 1229 2009-07-27 Kieran Mansley
ua1arn 0:c2ca3c5ded62 1230 * api.h api_msg.h netdb.h sockets.h: add missing #include directives
ua1arn 0:c2ca3c5ded62 1231
ua1arn 0:c2ca3c5ded62 1232 2009-07-09 Kieran Mansley
ua1arn 0:c2ca3c5ded62 1233 * api_msg.c, sockets.c, api.h: BUG23240 use signed counters for
ua1arn 0:c2ca3c5ded62 1234 recv_avail and don't increment counters until message successfully
ua1arn 0:c2ca3c5ded62 1235 sent to mbox
ua1arn 0:c2ca3c5ded62 1236
ua1arn 0:c2ca3c5ded62 1237 2009-06-25 Kieran Mansley
ua1arn 0:c2ca3c5ded62 1238 * api_msg.c api.h: BUG26722: initialise netconn write variables
ua1arn 0:c2ca3c5ded62 1239 in netconn_alloc
ua1arn 0:c2ca3c5ded62 1240
ua1arn 0:c2ca3c5ded62 1241 2009-06-25 Kieran Mansley
ua1arn 0:c2ca3c5ded62 1242 * tcp.h: BUG26879: set ret value in TCP_EVENT macros when function is not set
ua1arn 0:c2ca3c5ded62 1243
ua1arn 0:c2ca3c5ded62 1244 2009-06-25 Kieran Mansley
ua1arn 0:c2ca3c5ded62 1245 * tcp.c, tcp_in.c, tcp_out.c, tcp.h: BUG26301 and BUG26267: correct
ua1arn 0:c2ca3c5ded62 1246 simultaneous close behaviour, and make snd_nxt have the same meaning
ua1arn 0:c2ca3c5ded62 1247 as in the RFCs.
ua1arn 0:c2ca3c5ded62 1248
ua1arn 0:c2ca3c5ded62 1249 2009-05-12 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1250 * etharp.h, etharp.c, netif.c: fixed bug #26507: "Gratuitous ARP depends on
ua1arn 0:c2ca3c5ded62 1251 arp_table / uses etharp_query" by adding etharp_gratuitous()
ua1arn 0:c2ca3c5ded62 1252
ua1arn 0:c2ca3c5ded62 1253 2009-05-12 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1254 * ip.h, ip.c, igmp.c: bug #26487: Added ip_output_if_opt that can add IP options
ua1arn 0:c2ca3c5ded62 1255 to the IP header (used by igmp_ip_output_if)
ua1arn 0:c2ca3c5ded62 1256
ua1arn 0:c2ca3c5ded62 1257 2009-05-06 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1258 * inet_chksum.c: On little endian architectures, use LWIP_PLATFORM_HTONS (if
ua1arn 0:c2ca3c5ded62 1259 defined) for SWAP_BYTES_IN_WORD to speed up checksumming.
ua1arn 0:c2ca3c5ded62 1260
ua1arn 0:c2ca3c5ded62 1261 2009-05-05 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1262 * sockets.c: bug #26405: Prematurely released semaphore causes lwip_select()
ua1arn 0:c2ca3c5ded62 1263 to crash
ua1arn 0:c2ca3c5ded62 1264
ua1arn 0:c2ca3c5ded62 1265 2009-05-04 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1266 * init.c: snmp was not initialized in lwip_init()
ua1arn 0:c2ca3c5ded62 1267
ua1arn 0:c2ca3c5ded62 1268 2009-05-04 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1269 * dhcp.c, netbios.c: Changes if IP_SOF_BROADCAST is enabled.
ua1arn 0:c2ca3c5ded62 1270
ua1arn 0:c2ca3c5ded62 1271 2009-05-03 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1272 * tcp.h: bug #26349: Nagle algorithm doesn't send although segment is full
ua1arn 0:c2ca3c5ded62 1273 (and unsent->next == NULL)
ua1arn 0:c2ca3c5ded62 1274
ua1arn 0:c2ca3c5ded62 1275 2009-05-02 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1276 * tcpip.h, tcpip.c: fixed tcpip_untimeout (does not need the time, broken after
ua1arn 0:c2ca3c5ded62 1277 1.3.0 in CVS only) - fixes compilation of ppp_oe.c
ua1arn 0:c2ca3c5ded62 1278
ua1arn 0:c2ca3c5ded62 1279 2009-05-02 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1280 * msg_in.c: fixed bug #25636: SNMPSET value is ignored for integer fields
ua1arn 0:c2ca3c5ded62 1281
ua1arn 0:c2ca3c5ded62 1282 2009-05-01 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1283 * pap.c: bug #21680: PPP upap_rauthnak() drops legal NAK packets
ua1arn 0:c2ca3c5ded62 1284
ua1arn 0:c2ca3c5ded62 1285 2009-05-01 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1286 * ppp.c: bug #24228: Memory corruption with PPP and DHCP
ua1arn 0:c2ca3c5ded62 1287
ua1arn 0:c2ca3c5ded62 1288 2009-04-29 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1289 * raw.c, udp.c, init.c, opt.h, ip.h, sockets.h: bug #26309: Implement the
ua1arn 0:c2ca3c5ded62 1290 SO(F)_BROADCAST filter for all API layers. Avoid the unindented reception
ua1arn 0:c2ca3c5ded62 1291 of broadcast packets even when this option wasn't set. Port maintainers
ua1arn 0:c2ca3c5ded62 1292 which want to enable this filter have to set IP_SOF_BROADCAST=1 in opt.h.
ua1arn 0:c2ca3c5ded62 1293 If you want this option also filter broadcast on recv operations, you also
ua1arn 0:c2ca3c5ded62 1294 have to set IP_SOF_BROADCAST_RECV=1 in opt.h.
ua1arn 0:c2ca3c5ded62 1295
ua1arn 0:c2ca3c5ded62 1296 2009-04-28 Simon Goldschmidt, Jakob Stoklund Olesen
ua1arn 0:c2ca3c5ded62 1297 * dhcp.c: patch #6721, bugs #25575, #25576: Some small fixes to DHCP and
ua1arn 0:c2ca3c5ded62 1298 DHCP/AUTOIP cooperation
ua1arn 0:c2ca3c5ded62 1299
ua1arn 0:c2ca3c5ded62 1300 2009-04-25 Simon Goldschmidt, Oleg Tyshev
ua1arn 0:c2ca3c5ded62 1301 * tcp_out.c: bug #24212: Deadlocked tcp_retransmit due to exceeded pcb->cwnd
ua1arn 0:c2ca3c5ded62 1302 Fixed by sorting the unsent and unacked queues (segments are inserted at the
ua1arn 0:c2ca3c5ded62 1303 right place in tcp_output and tcp_rexmit).
ua1arn 0:c2ca3c5ded62 1304
ua1arn 0:c2ca3c5ded62 1305 2009-04-25 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1306 * memp.c, mem.c, memp.h, mem_std.h: bug #26213 "Problem with memory allocation
ua1arn 0:c2ca3c5ded62 1307 when debugging": memp_sizes contained the wrong sizes (including sanity
ua1arn 0:c2ca3c5ded62 1308 regions); memp pools for MEM_USE_POOLS were too small
ua1arn 0:c2ca3c5ded62 1309
ua1arn 0:c2ca3c5ded62 1310 2009-04-24 Simon Goldschmidt, Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1311 * inet.c: patch #6765: Fix a small problem with the last changes (incorrect
ua1arn 0:c2ca3c5ded62 1312 behavior, with with ip address string not ended by a '\0', a space or a
ua1arn 0:c2ca3c5ded62 1313 end of line)
ua1arn 0:c2ca3c5ded62 1314
ua1arn 0:c2ca3c5ded62 1315 2009-04-19 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1316 * rawapi.txt: Fixed bug #26069: Corrected documentation: if tcp_connect fails,
ua1arn 0:c2ca3c5ded62 1317 pcb->err is called, not pcb->connected (with an error code).
ua1arn 0:c2ca3c5ded62 1318
ua1arn 0:c2ca3c5ded62 1319 2009-04-19 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1320 * tcp_out.c: Fixed bug #26236: "TCP options (timestamp) don't work with
ua1arn 0:c2ca3c5ded62 1321 no-copy-tcpwrite": deallocate option data, only concat segments with same flags
ua1arn 0:c2ca3c5ded62 1322
ua1arn 0:c2ca3c5ded62 1323 2009-04-19 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1324 * tcp_out.c: Fixed bug #25094: "Zero-length pbuf" (options are now allocated
ua1arn 0:c2ca3c5ded62 1325 in the header pbuf, not the data pbuf)
ua1arn 0:c2ca3c5ded62 1326
ua1arn 0:c2ca3c5ded62 1327 2009-04-18 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1328 * api_msg.c: fixed bug #25695: Segmentation fault in do_writemore()
ua1arn 0:c2ca3c5ded62 1329
ua1arn 0:c2ca3c5ded62 1330 2009-04-15 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1331 * sockets.c: tried to fix bug #23559: lwip_recvfrom problem with tcp
ua1arn 0:c2ca3c5ded62 1332
ua1arn 0:c2ca3c5ded62 1333 2009-04-15 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1334 * dhcp.c: task #9192: mem_free of dhcp->options_in and dhcp->msg_in
ua1arn 0:c2ca3c5ded62 1335
ua1arn 0:c2ca3c5ded62 1336 2009-04-15 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1337 * ip.c, ip6.c, tcp_out.c, ip.h: patch #6808: Add a utility function
ua1arn 0:c2ca3c5ded62 1338 ip_hinted_output() (for smaller code mainly)
ua1arn 0:c2ca3c5ded62 1339
ua1arn 0:c2ca3c5ded62 1340 2009-04-15 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1341 * inet.c: patch #6765: Supporting new line characters in inet_aton()
ua1arn 0:c2ca3c5ded62 1342
ua1arn 0:c2ca3c5ded62 1343 2009-04-15 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1344 * dhcp.c: patch #6764: DHCP rebind and renew did not send hostnam option;
ua1arn 0:c2ca3c5ded62 1345 Converted constant OPTION_MAX_MSG_SIZE to netif->mtu, check if netif->mtu
ua1arn 0:c2ca3c5ded62 1346 is big enough in dhcp_start
ua1arn 0:c2ca3c5ded62 1347
ua1arn 0:c2ca3c5ded62 1348 2009-04-15 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1349 * netbuf.c: bug #26027: netbuf_chain resulted in pbuf memory leak
ua1arn 0:c2ca3c5ded62 1350
ua1arn 0:c2ca3c5ded62 1351 2009-04-15 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1352 * sockets.c, ppp.c: bug #25763: corrected 4 occurrences of SMEMCPY to MEMCPY
ua1arn 0:c2ca3c5ded62 1353
ua1arn 0:c2ca3c5ded62 1354 2009-04-15 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1355 * sockets.c: bug #26121: set_errno can be overridden
ua1arn 0:c2ca3c5ded62 1356
ua1arn 0:c2ca3c5ded62 1357 2009-04-09 Kieran Mansley (patch from Luca Ceresoli <lucaceresoli>)
ua1arn 0:c2ca3c5ded62 1358 * init.c, opt.h: Patch#6774 TCP_QUEUE_OOSEQ breaks compilation when
ua1arn 0:c2ca3c5ded62 1359 LWIP_TCP==0
ua1arn 0:c2ca3c5ded62 1360
ua1arn 0:c2ca3c5ded62 1361 2009-04-09 Kieran Mansley (patch from Roy Lee <roylee17>)
ua1arn 0:c2ca3c5ded62 1362 * tcp.h: Patch#6802 Add do-while-clauses to those function like
ua1arn 0:c2ca3c5ded62 1363 macros in tcp.h
ua1arn 0:c2ca3c5ded62 1364
ua1arn 0:c2ca3c5ded62 1365 2009-03-31 Kieran Mansley
ua1arn 0:c2ca3c5ded62 1366 * tcp.c, tcp_in.c, tcp_out.c, tcp.h, opt.h: Rework the way window
ua1arn 0:c2ca3c5ded62 1367 updates are calculated and sent (BUG20515)
ua1arn 0:c2ca3c5ded62 1368
ua1arn 0:c2ca3c5ded62 1369 * tcp_in.c: cope with SYN packets received during established states,
ua1arn 0:c2ca3c5ded62 1370 and retransmission of initial SYN.
ua1arn 0:c2ca3c5ded62 1371
ua1arn 0:c2ca3c5ded62 1372 * tcp_out.c: set push bit correctly when tcp segments are merged
ua1arn 0:c2ca3c5ded62 1373
ua1arn 0:c2ca3c5ded62 1374 2009-03-27 Kieran Mansley
ua1arn 0:c2ca3c5ded62 1375 * tcp_out.c set window correctly on probes (correcting change made
ua1arn 0:c2ca3c5ded62 1376 yesterday)
ua1arn 0:c2ca3c5ded62 1377
ua1arn 0:c2ca3c5ded62 1378 2009-03-26 Kieran Mansley
ua1arn 0:c2ca3c5ded62 1379 * tcp.c, tcp_in.c, tcp.h: add tcp_abandon() to cope with dropping
ua1arn 0:c2ca3c5ded62 1380 connections where no reset required (bug #25622)
ua1arn 0:c2ca3c5ded62 1381
ua1arn 0:c2ca3c5ded62 1382 * tcp_out.c: set TCP_ACK flag on keepalive and zero window probes
ua1arn 0:c2ca3c5ded62 1383 (bug #20779)
ua1arn 0:c2ca3c5ded62 1384
ua1arn 0:c2ca3c5ded62 1385 2009-02-18 Simon Goldschmidt (Jonathan Larmour and Bill Auerbach)
ua1arn 0:c2ca3c5ded62 1386 * ip_frag.c: patch #6528: the buffer used for IP_FRAG_USES_STATIC_BUF could be
ua1arn 0:c2ca3c5ded62 1387 too small depending on MEM_ALIGNMENT
ua1arn 0:c2ca3c5ded62 1388
ua1arn 0:c2ca3c5ded62 1389 2009-02-16 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1390 * sockets.h/.c, api_*.h/.c: fixed arguments of socket functions to match the standard;
ua1arn 0:c2ca3c5ded62 1391 converted size argument of netconn_write to 'size_t'
ua1arn 0:c2ca3c5ded62 1392
ua1arn 0:c2ca3c5ded62 1393 2009-02-16 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1394 * tcp.h, tcp.c: fixed bug #24440: TCP connection close problem on 64-bit host
ua1arn 0:c2ca3c5ded62 1395 by moving accept callback function pointer to TCP_PCB_COMMON
ua1arn 0:c2ca3c5ded62 1396
ua1arn 0:c2ca3c5ded62 1397 2009-02-12 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1398 * dhcp.c: fixed bug #25345 (DHCPDECLINE is sent with "Maximum message size"
ua1arn 0:c2ca3c5ded62 1399 option)
ua1arn 0:c2ca3c5ded62 1400
ua1arn 0:c2ca3c5ded62 1401 2009-02-11 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1402 * dhcp.c: fixed bug #24480 (releasing old udp_pdb and pbuf in dhcp_start)
ua1arn 0:c2ca3c5ded62 1403
ua1arn 0:c2ca3c5ded62 1404 2009-02-11 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1405 * opt.h, api_msg.c: added configurable default valud for netconn->recv_bufsize:
ua1arn 0:c2ca3c5ded62 1406 RECV_BUFSIZE_DEFAULT (fixes bug #23726: pbuf pool exhaustion on slow recv())
ua1arn 0:c2ca3c5ded62 1407
ua1arn 0:c2ca3c5ded62 1408 2009-02-10 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1409 * tcp.c: fixed bug #25467: Listen backlog is not reset on timeout in SYN_RCVD:
ua1arn 0:c2ca3c5ded62 1410 Accepts_pending is decrease on a corresponding listen pcb when a connection
ua1arn 0:c2ca3c5ded62 1411 in state SYN_RCVD is close.
ua1arn 0:c2ca3c5ded62 1412
ua1arn 0:c2ca3c5ded62 1413 2009-01-28 Jonathan Larmour
ua1arn 0:c2ca3c5ded62 1414 * pbuf.c: reclaim pbufs from TCP out-of-sequence segments if we run
ua1arn 0:c2ca3c5ded62 1415 out of pool pbufs.
ua1arn 0:c2ca3c5ded62 1416
ua1arn 0:c2ca3c5ded62 1417 2008-12-19 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1418 * many files: patch #6699: fixed some warnings on platform where sizeof(int) == 2
ua1arn 0:c2ca3c5ded62 1419
ua1arn 0:c2ca3c5ded62 1420 2008-12-10 Tamas Somogyi, Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1421 * sockets.c: fixed bug #25051: lwip_recvfrom problem with udp: fromaddr and
ua1arn 0:c2ca3c5ded62 1422 port uses deleted netbuf.
ua1arn 0:c2ca3c5ded62 1423
ua1arn 0:c2ca3c5ded62 1424 2008-10-18 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1425 * tcp_in.c: fixed bug ##24596: Vulnerability on faulty TCP options length
ua1arn 0:c2ca3c5ded62 1426 in tcp_parseopt
ua1arn 0:c2ca3c5ded62 1427
ua1arn 0:c2ca3c5ded62 1428 2008-10-15 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1429 * ip_frag.c: fixed bug #24517: IP reassembly crashes on unaligned IP headers
ua1arn 0:c2ca3c5ded62 1430 by packing the struct ip_reass_helper.
ua1arn 0:c2ca3c5ded62 1431
ua1arn 0:c2ca3c5ded62 1432 2008-10-03 David Woodhouse, Jonathan Larmour
ua1arn 0:c2ca3c5ded62 1433 * etharp.c (etharp_arp_input): Fix type aliasing problem copying ip address.
ua1arn 0:c2ca3c5ded62 1434
ua1arn 0:c2ca3c5ded62 1435 2008-10-02 Jonathan Larmour
ua1arn 0:c2ca3c5ded62 1436 * dns.c: Hard-code structure sizes, to avoid issues on some compilers where
ua1arn 0:c2ca3c5ded62 1437 padding is included.
ua1arn 0:c2ca3c5ded62 1438
ua1arn 0:c2ca3c5ded62 1439 2008-09-30 Jonathan Larmour
ua1arn 0:c2ca3c5ded62 1440 * sockets.c (lwip_accept): check addr isn't NULL. If it's valid, do an
ua1arn 0:c2ca3c5ded62 1441 assertion check that addrlen isn't NULL.
ua1arn 0:c2ca3c5ded62 1442
ua1arn 0:c2ca3c5ded62 1443 2008-09-30 Jonathan Larmour
ua1arn 0:c2ca3c5ded62 1444 * tcp.c: Fix bug #24227, wrong error message in tcp_bind.
ua1arn 0:c2ca3c5ded62 1445
ua1arn 0:c2ca3c5ded62 1446 2008-08-26 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1447 * inet.h, ip_addr.h: fixed bug #24132: Cross-dependency between ip_addr.h and
ua1arn 0:c2ca3c5ded62 1448 inet.h -> moved declaration of struct in_addr from ip_addr.h to inet.h
ua1arn 0:c2ca3c5ded62 1449
ua1arn 0:c2ca3c5ded62 1450 2008-08-14 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1451 * api_msg.c: fixed bug #23847: do_close_internal references freed memory (when
ua1arn 0:c2ca3c5ded62 1452 tcp_close returns != ERR_OK)
ua1arn 0:c2ca3c5ded62 1453
ua1arn 0:c2ca3c5ded62 1454 2008-07-08 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1455 * stats.h: Fix some build bugs introduced with patch #6483 (missing some parameters
ua1arn 0:c2ca3c5ded62 1456 in macros, mainly if MEM_STATS=0 and MEMP_STATS=0).
ua1arn 0:c2ca3c5ded62 1457
ua1arn 0:c2ca3c5ded62 1458 2008-06-24 Jonathan Larmour
ua1arn 0:c2ca3c5ded62 1459 * tcp_in.c: Fix for bug #23693 as suggested by Art R. Ensure cseg is unused
ua1arn 0:c2ca3c5ded62 1460 if tcp_seg_copy fails.
ua1arn 0:c2ca3c5ded62 1461
ua1arn 0:c2ca3c5ded62 1462 2008-06-17 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1463 * inet_chksum.c: Checked in some ideas of patch #6460 (loop optimizations)
ua1arn 0:c2ca3c5ded62 1464 and created defines for swapping bytes and folding u32 to u16.
ua1arn 0:c2ca3c5ded62 1465
ua1arn 0:c2ca3c5ded62 1466 2008-05-30 Kieran Mansley
ua1arn 0:c2ca3c5ded62 1467 * tcp_in.c Remove redundant "if" statement, and use real rcv_wnd
ua1arn 0:c2ca3c5ded62 1468 rather than rcv_ann_wnd when deciding if packets are in-window.
ua1arn 0:c2ca3c5ded62 1469 Contributed by <arasmussen@consultant.datasys.swri.edu>
ua1arn 0:c2ca3c5ded62 1470
ua1arn 0:c2ca3c5ded62 1471 2008-05-30 Kieran Mansley
ua1arn 0:c2ca3c5ded62 1472 * mem.h: Fix BUG#23254. Change macro definition of mem_* to allow
ua1arn 0:c2ca3c5ded62 1473 passing as function pointers when MEM_LIBC_MALLOC is defined.
ua1arn 0:c2ca3c5ded62 1474
ua1arn 0:c2ca3c5ded62 1475 2008-05-09 Jonathan Larmour
ua1arn 0:c2ca3c5ded62 1476 * err.h, err.c, sockets.c: Fix bug #23119: Reorder timeout error code to
ua1arn 0:c2ca3c5ded62 1477 stop it being treated as a fatal error.
ua1arn 0:c2ca3c5ded62 1478
ua1arn 0:c2ca3c5ded62 1479 2008-04-15 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1480 * dhcp.c: fixed bug #22804: dhcp_stop doesn't clear NETIF_FLAG_DHCP
ua1arn 0:c2ca3c5ded62 1481 (flag now cleared)
ua1arn 0:c2ca3c5ded62 1482
ua1arn 0:c2ca3c5ded62 1483 2008-03-27 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1484 * mem.c, tcpip.c, tcpip.h, opt.h: fixed bug #21433 (Calling mem_free/pbuf_free
ua1arn 0:c2ca3c5ded62 1485 from interrupt context isn't safe): set LWIP_USE_HEAP_FROM_INTERRUPT to 1
ua1arn 0:c2ca3c5ded62 1486 in lwipopts.h or use pbuf_free_callback(p)/mem_free_callback(m) to free pbufs
ua1arn 0:c2ca3c5ded62 1487 or heap memory from interrupt context
ua1arn 0:c2ca3c5ded62 1488
ua1arn 0:c2ca3c5ded62 1489 2008-03-26 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1490 * tcp_in.c, tcp.c: fixed bug #22249: division by zero could occur if a remote
ua1arn 0:c2ca3c5ded62 1491 host sent a zero mss as TCP option.
ua1arn 0:c2ca3c5ded62 1492
ua1arn 0:c2ca3c5ded62 1493
ua1arn 0:c2ca3c5ded62 1494 (STABLE-1.3.0)
ua1arn 0:c2ca3c5ded62 1495
ua1arn 0:c2ca3c5ded62 1496 ++ New features:
ua1arn 0:c2ca3c5ded62 1497
ua1arn 0:c2ca3c5ded62 1498 2008-03-10 Jonathan Larmour
ua1arn 0:c2ca3c5ded62 1499 * inet_chksum.c: Allow choice of one of the sample algorithms to be
ua1arn 0:c2ca3c5ded62 1500 made from lwipopts.h. Fix comment on how to override LWIP_CHKSUM.
ua1arn 0:c2ca3c5ded62 1501
ua1arn 0:c2ca3c5ded62 1502 2008-01-22 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1503 * tcp.c, tcp_in.c, tcp.h, opt.h: Rename LWIP_CALCULATE_EFF_SEND_MSS in
ua1arn 0:c2ca3c5ded62 1504 TCP_CALCULATE_EFF_SEND_MSS to have coherent TCP options names.
ua1arn 0:c2ca3c5ded62 1505
ua1arn 0:c2ca3c5ded62 1506 2008-01-14 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1507 * rawapi.txt, api_msg.c, tcp.c, tcp_in.c, tcp.h: changes for task #7675 "Enable
ua1arn 0:c2ca3c5ded62 1508 to refuse data on a TCP_EVENT_RECV call". Important, behavior changes for the
ua1arn 0:c2ca3c5ded62 1509 tcp_recv callback (see rawapi.txt).
ua1arn 0:c2ca3c5ded62 1510
ua1arn 0:c2ca3c5ded62 1511 2008-01-14 Frédéric Bernon, Marc Chaland
ua1arn 0:c2ca3c5ded62 1512 * ip.c: Integrate patch #6369" ip_input : checking before realloc".
ua1arn 0:c2ca3c5ded62 1513
ua1arn 0:c2ca3c5ded62 1514 2008-01-12 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1515 * tcpip.h, tcpip.c, api.h, api_lib.c, api_msg.c, sockets.c: replace the field
ua1arn 0:c2ca3c5ded62 1516 netconn::sem per netconn::op_completed like suggested for the task #7490
ua1arn 0:c2ca3c5ded62 1517 "Add return value to sys_mbox_post".
ua1arn 0:c2ca3c5ded62 1518
ua1arn 0:c2ca3c5ded62 1519 2008-01-12 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1520 * api_msg.c, opt.h: replace DEFAULT_RECVMBOX_SIZE per DEFAULT_TCP_RECVMBOX_SIZE,
ua1arn 0:c2ca3c5ded62 1521 DEFAULT_UDP_RECVMBOX_SIZE and DEFAULT_RAW_RECVMBOX_SIZE (to optimize queues
ua1arn 0:c2ca3c5ded62 1522 sizes), like suggested for the task #7490 "Add return value to sys_mbox_post".
ua1arn 0:c2ca3c5ded62 1523
ua1arn 0:c2ca3c5ded62 1524 2008-01-10 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1525 * tcpip.h, tcpip.c: add tcpip_callback_with_block function for the task #7490
ua1arn 0:c2ca3c5ded62 1526 "Add return value to sys_mbox_post". tcpip_callback is always defined as
ua1arn 0:c2ca3c5ded62 1527 "blocking" ("block" parameter = 1).
ua1arn 0:c2ca3c5ded62 1528
ua1arn 0:c2ca3c5ded62 1529 2008-01-10 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1530 * tcpip.h, tcpip.c, api.h, api_lib.c, api_msg.c, sockets.c: replace the field
ua1arn 0:c2ca3c5ded62 1531 netconn::mbox (sys_mbox_t) per netconn::sem (sys_sem_t) for the task #7490
ua1arn 0:c2ca3c5ded62 1532 "Add return value to sys_mbox_post".
ua1arn 0:c2ca3c5ded62 1533
ua1arn 0:c2ca3c5ded62 1534 2008-01-05 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1535 * sys_arch.txt, api.h, api_lib.c, api_msg.h, api_msg.c, tcpip.c, sys.h, opt.h:
ua1arn 0:c2ca3c5ded62 1536 Introduce changes for task #7490 "Add return value to sys_mbox_post" with some
ua1arn 0:c2ca3c5ded62 1537 modifications in the sys_mbox api: sys_mbox_new take a "size" parameters which
ua1arn 0:c2ca3c5ded62 1538 indicate the number of pointers query by the mailbox. There is three defines
ua1arn 0:c2ca3c5ded62 1539 in opt.h to indicate sizes for tcpip::mbox, netconn::recvmbox, and for the
ua1arn 0:c2ca3c5ded62 1540 netconn::acceptmbox. Port maintainers, you can decide to just add this new
ua1arn 0:c2ca3c5ded62 1541 parameter in your implementation, but to ignore it to keep the previous behavior.
ua1arn 0:c2ca3c5ded62 1542 The new sys_mbox_trypost function return a value to know if the mailbox is
ua1arn 0:c2ca3c5ded62 1543 full or if the message is posted. Take a look to sys_arch.txt for more details.
ua1arn 0:c2ca3c5ded62 1544 This new function is used in tcpip_input (so, can be called in an interrupt
ua1arn 0:c2ca3c5ded62 1545 context since the function is not blocking), and in recv_udp and recv_raw.
ua1arn 0:c2ca3c5ded62 1546
ua1arn 0:c2ca3c5ded62 1547 2008-01-04 Frédéric Bernon, Simon Goldschmidt, Jonathan Larmour
ua1arn 0:c2ca3c5ded62 1548 * rawapi.txt, api.h, api_lib.c, api_msg.h, api_msg.c, sockets.c, tcp.h, tcp.c,
ua1arn 0:c2ca3c5ded62 1549 tcp_in.c, init.c, opt.h: rename backlog options with TCP_ prefix, limit the
ua1arn 0:c2ca3c5ded62 1550 "backlog" parameter in an u8_t, 0 is interpreted as "smallest queue", add
ua1arn 0:c2ca3c5ded62 1551 documentation in the rawapi.txt file.
ua1arn 0:c2ca3c5ded62 1552
ua1arn 0:c2ca3c5ded62 1553 2007-12-31 Kieran Mansley (based on patch from Per-Henrik Lundbolm)
ua1arn 0:c2ca3c5ded62 1554 * tcp.c, tcp_in.c, tcp_out.c, tcp.h: Add TCP persist timer
ua1arn 0:c2ca3c5ded62 1555
ua1arn 0:c2ca3c5ded62 1556 2007-12-31 Frédéric Bernon, Luca Ceresoli
ua1arn 0:c2ca3c5ded62 1557 * autoip.c, etharp.c: ip_addr.h: Integrate patch #6348: "Broadcast ARP packets
ua1arn 0:c2ca3c5ded62 1558 in autoip". The change in etharp_raw could be removed, since all calls to
ua1arn 0:c2ca3c5ded62 1559 etharp_raw use ethbroadcast for the "ethdst_addr" parameter. But it could be
ua1arn 0:c2ca3c5ded62 1560 wrong in the future.
ua1arn 0:c2ca3c5ded62 1561
ua1arn 0:c2ca3c5ded62 1562 2007-12-30 Frédéric Bernon, Tom Evans
ua1arn 0:c2ca3c5ded62 1563 * ip.c: Fix bug #21846 "LwIP doesn't appear to perform any IP Source Address
ua1arn 0:c2ca3c5ded62 1564 Filtering" reported by Tom Evans.
ua1arn 0:c2ca3c5ded62 1565
ua1arn 0:c2ca3c5ded62 1566 2007-12-21 Frédéric Bernon, Simon Goldschmidt, Jonathan Larmour
ua1arn 0:c2ca3c5ded62 1567 * tcp.h, opt.h, api.h, api_msg.h, tcp.c, tcp_in.c, api_lib.c, api_msg.c,
ua1arn 0:c2ca3c5ded62 1568 sockets.c, init.c: task #7252: Implement TCP listen backlog: Warning: raw API
ua1arn 0:c2ca3c5ded62 1569 applications have to call 'tcp_accepted(pcb)' in their accept callback to
ua1arn 0:c2ca3c5ded62 1570 keep accepting new connections.
ua1arn 0:c2ca3c5ded62 1571
ua1arn 0:c2ca3c5ded62 1572 2007-12-13 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1573 * api_msg.c, err.h, err.c, sockets.c, dns.c, dns.h: replace "enum dns_result"
ua1arn 0:c2ca3c5ded62 1574 by err_t type. Add a new err_t code "ERR_INPROGRESS".
ua1arn 0:c2ca3c5ded62 1575
ua1arn 0:c2ca3c5ded62 1576 2007-12-12 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1577 * dns.h, dns.c, opt.h: move DNS options to the "right" place. Most visibles
ua1arn 0:c2ca3c5ded62 1578 are the one which have ram usage.
ua1arn 0:c2ca3c5ded62 1579
ua1arn 0:c2ca3c5ded62 1580 2007-12-05 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1581 * netdb.c: add a LWIP_DNS_API_HOSTENT_STORAGE option to decide to use a static
ua1arn 0:c2ca3c5ded62 1582 set of variables (=0) or a local one (=1). In this last case, your port should
ua1arn 0:c2ca3c5ded62 1583 provide a function "struct hostent* sys_thread_hostent( struct hostent* h)"
ua1arn 0:c2ca3c5ded62 1584 which have to do a copy of "h" and return a pointer ont the "per-thread" copy.
ua1arn 0:c2ca3c5ded62 1585
ua1arn 0:c2ca3c5ded62 1586 2007-12-03 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1587 * ip.c: ip_input: check if a packet is for inp first before checking all other
ua1arn 0:c2ca3c5ded62 1588 netifs on netif_list (speeds up packet receiving in most cases)
ua1arn 0:c2ca3c5ded62 1589
ua1arn 0:c2ca3c5ded62 1590 2007-11-30 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1591 * udp.c, raw.c: task #7497: Sort lists (pcb, netif, ...) for faster access
ua1arn 0:c2ca3c5ded62 1592 UDP: move a (connected) pcb selected for input to the front of the list of
ua1arn 0:c2ca3c5ded62 1593 pcbs so that it is found faster next time. Same for RAW pcbs that have eaten
ua1arn 0:c2ca3c5ded62 1594 a packet.
ua1arn 0:c2ca3c5ded62 1595
ua1arn 0:c2ca3c5ded62 1596 2007-11-28 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1597 * etharp.c, stats.c, stats.h, opt.h: Introduced ETHARP_STATS
ua1arn 0:c2ca3c5ded62 1598
ua1arn 0:c2ca3c5ded62 1599 2007-11-25 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1600 * dhcp.c: dhcp_unfold_reply() uses pbuf_copy_partial instead of its own copy
ua1arn 0:c2ca3c5ded62 1601 algorithm.
ua1arn 0:c2ca3c5ded62 1602
ua1arn 0:c2ca3c5ded62 1603 2007-11-24 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1604 * netdb.h, netdb.c, sockets.h/.c: Moved lwip_gethostbyname from sockets.c
ua1arn 0:c2ca3c5ded62 1605 to the new file netdb.c; included lwip_getaddrinfo.
ua1arn 0:c2ca3c5ded62 1606
ua1arn 0:c2ca3c5ded62 1607 2007-11-21 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1608 * tcp.h, opt.h, tcp.c, tcp_in.c: implemented calculating the effective send-mss
ua1arn 0:c2ca3c5ded62 1609 based on the MTU of the netif used to send. Enabled by default. Disable by
ua1arn 0:c2ca3c5ded62 1610 setting LWIP_CALCULATE_EFF_SEND_MSS to 0. This fixes bug #21492.
ua1arn 0:c2ca3c5ded62 1611
ua1arn 0:c2ca3c5ded62 1612 2007-11-19 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1613 * api_msg.c, dns.h, dns.c: Implement DNS_DOES_NAME_CHECK option (check if name
ua1arn 0:c2ca3c5ded62 1614 received match the name query), implement DNS_USES_STATIC_BUF (the place where
ua1arn 0:c2ca3c5ded62 1615 copy dns payload to parse the response), return an error if there is no place
ua1arn 0:c2ca3c5ded62 1616 for a new query, and fix some minor problems.
ua1arn 0:c2ca3c5ded62 1617
ua1arn 0:c2ca3c5ded62 1618 2007-11-16 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1619 * new files: ipv4/inet.c, ipv4/inet_chksum.c, ipv6/inet6.c
ua1arn 0:c2ca3c5ded62 1620 removed files: core/inet.c, core/inet6.c
ua1arn 0:c2ca3c5ded62 1621 Moved inet files into ipv4/ipv6 directory; splitted inet.c/inet.h into
ua1arn 0:c2ca3c5ded62 1622 inet and chksum part; changed includes in all lwIP files as appropriate
ua1arn 0:c2ca3c5ded62 1623
ua1arn 0:c2ca3c5ded62 1624 2007-11-16 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1625 * api.h, api_msg.h, api_lib.c, api_msg.c, socket.h, socket.c: Added sequential
ua1arn 0:c2ca3c5ded62 1626 dns resolver function for netconn api (netconn_gethostbyname) and socket api
ua1arn 0:c2ca3c5ded62 1627 (gethostbyname/gethostbyname_r).
ua1arn 0:c2ca3c5ded62 1628
ua1arn 0:c2ca3c5ded62 1629 2007-11-15 Jim Pettinato, Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1630 * opt.h, init.c, tcpip.c, dhcp.c, dns.h, dns.c: add DNS client for simple name
ua1arn 0:c2ca3c5ded62 1631 requests with RAW api interface. Initialization is done in lwip_init() with
ua1arn 0:c2ca3c5ded62 1632 build time options. DNS timer is added in tcpip_thread context. DHCP can set
ua1arn 0:c2ca3c5ded62 1633 DNS server ip addresses when options are received. You need to set LWIP_DNS=1
ua1arn 0:c2ca3c5ded62 1634 in your lwipopts.h file (LWIP_DNS=0 in opt.h). DNS_DEBUG can be set to get
ua1arn 0:c2ca3c5ded62 1635 some traces with LWIP_DEBUGF. Sanity check have been added. There is a "todo"
ua1arn 0:c2ca3c5ded62 1636 list with points to improve.
ua1arn 0:c2ca3c5ded62 1637
ua1arn 0:c2ca3c5ded62 1638 2007-11-06 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1639 * opt.h, mib2.c: Patch #6215: added ifAdminStatus write support (if explicitly
ua1arn 0:c2ca3c5ded62 1640 enabled by defining SNMP_SAFE_REQUESTS to 0); added code to check link status
ua1arn 0:c2ca3c5ded62 1641 for ifOperStatus if LWIP_NETIF_LINK_CALLBACK is defined.
ua1arn 0:c2ca3c5ded62 1642
ua1arn 0:c2ca3c5ded62 1643 2007-11-06 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1644 * api.h, api_msg.h and dependent files: Task #7410: Removed the need to include
ua1arn 0:c2ca3c5ded62 1645 core header files in api.h (ip/tcp/udp/raw.h) to hide the internal
ua1arn 0:c2ca3c5ded62 1646 implementation from netconn api applications.
ua1arn 0:c2ca3c5ded62 1647
ua1arn 0:c2ca3c5ded62 1648 2007-11-03 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1649 * api.h, api_lib.c, api_msg.c, sockets.c, opt.h: add SO_RCVBUF option for UDP &
ua1arn 0:c2ca3c5ded62 1650 RAW netconn. You need to set LWIP_SO_RCVBUF=1 in your lwipopts.h (it's disabled
ua1arn 0:c2ca3c5ded62 1651 by default). Netconn API users can use the netconn_recv_bufsize macro to access
ua1arn 0:c2ca3c5ded62 1652 it. This is a first release which have to be improve for TCP. Note it used the
ua1arn 0:c2ca3c5ded62 1653 netconn::recv_avail which need to be more "thread-safe" (note there is already
ua1arn 0:c2ca3c5ded62 1654 the problem for FIONREAD with lwip_ioctl/ioctlsocket).
ua1arn 0:c2ca3c5ded62 1655
ua1arn 0:c2ca3c5ded62 1656 2007-11-01 Frédéric Bernon, Marc Chaland
ua1arn 0:c2ca3c5ded62 1657 * sockets.h, sockets.c, api.h, api_lib.c, api_msg.h, api_msg.c, tcp.h, tcp_out.c:
ua1arn 0:c2ca3c5ded62 1658 Integrate "patch #6250 : MSG_MORE flag for send". MSG_MORE is used at socket api
ua1arn 0:c2ca3c5ded62 1659 layer, NETCONN_MORE at netconn api layer, and TCP_WRITE_FLAG_MORE at raw api
ua1arn 0:c2ca3c5ded62 1660 layer. This option enable to delayed TCP PUSH flag on multiple "write" calls.
ua1arn 0:c2ca3c5ded62 1661 Note that previous "copy" parameter for "write" APIs is now called "apiflags".
ua1arn 0:c2ca3c5ded62 1662
ua1arn 0:c2ca3c5ded62 1663 2007-10-24 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1664 * api.h, api_lib.c, api_msg.c: Add macro API_EVENT in the same spirit than
ua1arn 0:c2ca3c5ded62 1665 TCP_EVENT_xxx macros to get a code more readable. It could also help to remove
ua1arn 0:c2ca3c5ded62 1666 some code (like we have talk in "patch #5919 : Create compile switch to remove
ua1arn 0:c2ca3c5ded62 1667 select code"), but it could be done later.
ua1arn 0:c2ca3c5ded62 1668
ua1arn 0:c2ca3c5ded62 1669 2007-10-08 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1670 * many files: Changed initialization: many init functions are not needed any
ua1arn 0:c2ca3c5ded62 1671 more since we now rely on the compiler initializing global and static
ua1arn 0:c2ca3c5ded62 1672 variables to zero!
ua1arn 0:c2ca3c5ded62 1673
ua1arn 0:c2ca3c5ded62 1674 2007-10-06 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1675 * ip_frag.c, memp.c, mib2.c, ip_frag.h, memp_std.h, opt.h: Changed IP_REASSEMBLY
ua1arn 0:c2ca3c5ded62 1676 to enqueue the received pbufs so that multiple packets can be reassembled
ua1arn 0:c2ca3c5ded62 1677 simultaneously and no static reassembly buffer is needed.
ua1arn 0:c2ca3c5ded62 1678
ua1arn 0:c2ca3c5ded62 1679 2007-10-05 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1680 * tcpip.c, etharp.h, etharp.c: moved ethernet_input from tcpip.c to etharp.c so
ua1arn 0:c2ca3c5ded62 1681 all netifs (or ports) can use it.
ua1arn 0:c2ca3c5ded62 1682
ua1arn 0:c2ca3c5ded62 1683 2007-10-05 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1684 * netifapi.h, netifapi.c: add function netifapi_netif_set_default. Change the
ua1arn 0:c2ca3c5ded62 1685 common function to reduce a little bit the footprint (for all functions using
ua1arn 0:c2ca3c5ded62 1686 only the "netif" parameter).
ua1arn 0:c2ca3c5ded62 1687
ua1arn 0:c2ca3c5ded62 1688 2007-10-03 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1689 * netifapi.h, netifapi.c: add functions netifapi_netif_set_up, netifapi_netif_set_down,
ua1arn 0:c2ca3c5ded62 1690 netifapi_autoip_start and netifapi_autoip_stop. Use a common function to reduce
ua1arn 0:c2ca3c5ded62 1691 a little bit the footprint (for all functions using only the "netif" parameter).
ua1arn 0:c2ca3c5ded62 1692
ua1arn 0:c2ca3c5ded62 1693 2007-09-15 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1694 * udp.h, udp.c, sockets.c: Changes for "#20503 IGMP Improvement". Add IP_MULTICAST_IF
ua1arn 0:c2ca3c5ded62 1695 option in socket API, and a new field "multicast_ip" in "struct udp_pcb" (for
ua1arn 0:c2ca3c5ded62 1696 netconn and raw API users), only if LWIP_IGMP=1. Add getsockopt processing for
ua1arn 0:c2ca3c5ded62 1697 IP_MULTICAST_TTL and IP_MULTICAST_IF.
ua1arn 0:c2ca3c5ded62 1698
ua1arn 0:c2ca3c5ded62 1699 2007-09-10 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1700 * snmp.h, mib2.c: enable to remove SNMP timer (which consumne several cycles
ua1arn 0:c2ca3c5ded62 1701 even when it's not necessary). snmp_agent.txt tell to call snmp_inc_sysuptime()
ua1arn 0:c2ca3c5ded62 1702 each 10ms (but, it's intrusive if you use sys_timeout feature). Now, you can
ua1arn 0:c2ca3c5ded62 1703 decide to call snmp_add_sysuptime(100) each 1000ms (which is bigger "step", but
ua1arn 0:c2ca3c5ded62 1704 call to a lower frequency). Or, you can decide to not call snmp_inc_sysuptime()
ua1arn 0:c2ca3c5ded62 1705 or snmp_add_sysuptime(), and to define the SNMP_GET_SYSUPTIME(sysuptime) macro.
ua1arn 0:c2ca3c5ded62 1706 This one is undefined by default in mib2.c. SNMP_GET_SYSUPTIME is called inside
ua1arn 0:c2ca3c5ded62 1707 snmp_get_sysuptime(u32_t *value), and enable to change "sysuptime" value only
ua1arn 0:c2ca3c5ded62 1708 when it's queried (any direct call to "sysuptime" is changed by a call to
ua1arn 0:c2ca3c5ded62 1709 snmp_get_sysuptime).
ua1arn 0:c2ca3c5ded62 1710
ua1arn 0:c2ca3c5ded62 1711 2007-09-09 Frédéric Bernon, Bill Florac
ua1arn 0:c2ca3c5ded62 1712 * igmp.h, igmp.c, netif.h, netif.c, ip.c: To enable to have interfaces with IGMP,
ua1arn 0:c2ca3c5ded62 1713 and others without it, there is a new NETIF_FLAG_IGMP flag to set in netif->flags
ua1arn 0:c2ca3c5ded62 1714 if you want IGMP on an interface. igmp_stop() is now called inside netif_remove().
ua1arn 0:c2ca3c5ded62 1715 igmp_report_groups() is now called inside netif_set_link_up() (need to have
ua1arn 0:c2ca3c5ded62 1716 LWIP_NETIF_LINK_CALLBACK=1) to resend reports once the link is up (avoid to wait
ua1arn 0:c2ca3c5ded62 1717 the next query message to receive the matching multicast streams).
ua1arn 0:c2ca3c5ded62 1718
ua1arn 0:c2ca3c5ded62 1719 2007-09-08 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1720 * sockets.c, ip.h, api.h, tcp.h: declare a "struct ip_pcb" which only contains
ua1arn 0:c2ca3c5ded62 1721 IP_PCB. Add in the netconn's "pcb" union a "struct ip_pcb *ip;" (no size change).
ua1arn 0:c2ca3c5ded62 1722 Use this new field to access to common pcb fields (ttl, tos, so_options, etc...).
ua1arn 0:c2ca3c5ded62 1723 Enable to access to these fields with LWIP_TCP=0.
ua1arn 0:c2ca3c5ded62 1724
ua1arn 0:c2ca3c5ded62 1725 2007-09-05 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1726 * udp.c, ipv4/icmp.c, ipv4/ip.c, ipv6/icmp.c, ipv6/ip6.c, ipv4/icmp.h,
ua1arn 0:c2ca3c5ded62 1727 ipv6/icmp.h, opt.h: Integrate "task #7272 : LWIP_ICMP option". The new option
ua1arn 0:c2ca3c5ded62 1728 LWIP_ICMP enable/disable ICMP module inside the IP stack (enable per default).
ua1arn 0:c2ca3c5ded62 1729 Be careful, disabling ICMP make your product non-compliant to RFC1122, but
ua1arn 0:c2ca3c5ded62 1730 help to reduce footprint, and to reduce "visibility" on the Internet.
ua1arn 0:c2ca3c5ded62 1731
ua1arn 0:c2ca3c5ded62 1732 2007-09-05 Frédéric Bernon, Bill Florac
ua1arn 0:c2ca3c5ded62 1733 * opt.h, sys.h, tcpip.c, slipif.c, ppp.c, sys_arch.txt: Change parameters list
ua1arn 0:c2ca3c5ded62 1734 for sys_thread_new (see "task #7252 : Create sys_thread_new_ex()"). Two new
ua1arn 0:c2ca3c5ded62 1735 parameters have to be provided: a task name, and a task stack size. For this
ua1arn 0:c2ca3c5ded62 1736 one, since it's platform dependant, you could define the best one for you in
ua1arn 0:c2ca3c5ded62 1737 your lwipopts.h. For port maintainers, you can just add these new parameters
ua1arn 0:c2ca3c5ded62 1738 in your sys_arch.c file, and but it's not mandatory, use them in your OS
ua1arn 0:c2ca3c5ded62 1739 specific functions.
ua1arn 0:c2ca3c5ded62 1740
ua1arn 0:c2ca3c5ded62 1741 2007-09-05 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1742 * inet.c, autoip.c, msg_in.c, msg_out.c, init.c: Move some build time checkings
ua1arn 0:c2ca3c5ded62 1743 inside init.c for task #7142 "Sanity check user-configurable values".
ua1arn 0:c2ca3c5ded62 1744
ua1arn 0:c2ca3c5ded62 1745 2007-09-04 Frédéric Bernon, Bill Florac
ua1arn 0:c2ca3c5ded62 1746 * igmp.h, igmp.c, memp_std.h, memp.c, init.c, opt.h: Replace mem_malloc call by
ua1arn 0:c2ca3c5ded62 1747 memp_malloc, and use a new MEMP_NUM_IGMP_GROUP option (see opt.h to define the
ua1arn 0:c2ca3c5ded62 1748 value). It will avoid potential fragmentation problems, use a counter to know
ua1arn 0:c2ca3c5ded62 1749 how many times a group is used on an netif, and free it when all applications
ua1arn 0:c2ca3c5ded62 1750 leave it. MEMP_NUM_IGMP_GROUP got 8 as default value (and init.c got a sanity
ua1arn 0:c2ca3c5ded62 1751 check if LWIP_IGMP!=0).
ua1arn 0:c2ca3c5ded62 1752
ua1arn 0:c2ca3c5ded62 1753 2007-09-03 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1754 * igmp.h, igmp.c, sockets.c, api_msg.c: Changes for "#20503 IGMP Improvement".
ua1arn 0:c2ca3c5ded62 1755 Initialize igmp_mac_filter to NULL in netif_add (this field should be set in
ua1arn 0:c2ca3c5ded62 1756 the netif's "init" function). Use the "imr_interface" field (for socket layer)
ua1arn 0:c2ca3c5ded62 1757 and/or the "interface" field (for netconn layer), for join/leave operations.
ua1arn 0:c2ca3c5ded62 1758 The igmp_join/leavegroup first parameter change from a netif to an ipaddr.
ua1arn 0:c2ca3c5ded62 1759 This field could be a netif's ipaddr, or "any" (same meaning than ip_addr_isany).
ua1arn 0:c2ca3c5ded62 1760
ua1arn 0:c2ca3c5ded62 1761 2007-08-30 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1762 * Add netbuf.h, netbuf.c, Change api.h, api_lib.c: #7249 "Split netbuf functions
ua1arn 0:c2ca3c5ded62 1763 from api/api_lib". Now netbuf API is independant of netconn, and can be used
ua1arn 0:c2ca3c5ded62 1764 with other API (application based on raw API, or future "socket2" API). Ports
ua1arn 0:c2ca3c5ded62 1765 maintainers just have to add src/api/netbuf.c in their makefile/projects.
ua1arn 0:c2ca3c5ded62 1766
ua1arn 0:c2ca3c5ded62 1767 2007-08-30 Frédéric Bernon, Jonathan Larmour
ua1arn 0:c2ca3c5ded62 1768 * init.c: Add first version of lwip_sanity_check for task #7142 "Sanity check
ua1arn 0:c2ca3c5ded62 1769 user-configurable values".
ua1arn 0:c2ca3c5ded62 1770
ua1arn 0:c2ca3c5ded62 1771 2007-08-29 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1772 * igmp.h, igmp.c, tcpip.c, init.c, netif.c: change igmp_init and add igmp_start.
ua1arn 0:c2ca3c5ded62 1773 igmp_start is call inside netif_add. Now, igmp initialization is in the same
ua1arn 0:c2ca3c5ded62 1774 spirit than the others modules. Modify some IGMP debug traces.
ua1arn 0:c2ca3c5ded62 1775
ua1arn 0:c2ca3c5ded62 1776 2007-08-29 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1777 * Add init.h, init.c, Change opt.h, tcpip.c: Task #7213 "Add a lwip_init function"
ua1arn 0:c2ca3c5ded62 1778 Add lwip_init function to regroup all modules initializations, and to provide
ua1arn 0:c2ca3c5ded62 1779 a place to add code for task #7142 "Sanity check user-configurable values".
ua1arn 0:c2ca3c5ded62 1780 Ports maintainers should remove direct initializations calls from their code,
ua1arn 0:c2ca3c5ded62 1781 and add init.c in their makefiles. Note that lwip_init() function is called
ua1arn 0:c2ca3c5ded62 1782 inside tcpip_init, but can also be used by raw api users since all calls are
ua1arn 0:c2ca3c5ded62 1783 disabled when matching options are disabled. Also note that their is new options
ua1arn 0:c2ca3c5ded62 1784 in opt.h, you should configure in your lwipopts.h (they are enabled per default).
ua1arn 0:c2ca3c5ded62 1785
ua1arn 0:c2ca3c5ded62 1786 2007-08-26 Marc Boucher
ua1arn 0:c2ca3c5ded62 1787 * api_msg.c: do_close_internal(): Reset the callbacks and arg (conn) to NULL
ua1arn 0:c2ca3c5ded62 1788 since they can under certain circumstances be called with an invalid conn
ua1arn 0:c2ca3c5ded62 1789 pointer after the connection has been closed (and conn has been freed).
ua1arn 0:c2ca3c5ded62 1790
ua1arn 0:c2ca3c5ded62 1791 2007-08-25 Frédéric Bernon (Artem Migaev's Patch)
ua1arn 0:c2ca3c5ded62 1792 * netif.h, netif.c: Integrate "patch #6163 : Function to check if link layer is up".
ua1arn 0:c2ca3c5ded62 1793 Add a netif_is_link_up() function if LWIP_NETIF_LINK_CALLBACK option is set.
ua1arn 0:c2ca3c5ded62 1794
ua1arn 0:c2ca3c5ded62 1795 2007-08-22 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1796 * netif.h, netif.c, opt.h: Rename LWIP_NETIF_CALLBACK in LWIP_NETIF_STATUS_CALLBACK
ua1arn 0:c2ca3c5ded62 1797 to be coherent with new LWIP_NETIF_LINK_CALLBACK option before next release.
ua1arn 0:c2ca3c5ded62 1798
ua1arn 0:c2ca3c5ded62 1799 2007-08-22 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1800 * tcpip.h, tcpip.c, ethernetif.c, opt.h: remove options ETHARP_TCPIP_INPUT &
ua1arn 0:c2ca3c5ded62 1801 ETHARP_TCPIP_ETHINPUT, now, only "ethinput" code is supported, even if the
ua1arn 0:c2ca3c5ded62 1802 name is tcpip_input (we keep the name of 1.2.0 function).
ua1arn 0:c2ca3c5ded62 1803
ua1arn 0:c2ca3c5ded62 1804 2007-08-17 Jared Grubb
ua1arn 0:c2ca3c5ded62 1805 * memp_std.h, memp.h, memp.c, mem.c, stats.c: (Task #7136) Centralize mempool
ua1arn 0:c2ca3c5ded62 1806 settings into new memp_std.h and optional user file lwippools.h. This adds
ua1arn 0:c2ca3c5ded62 1807 more dynamic mempools, and allows the user to create an arbitrary number of
ua1arn 0:c2ca3c5ded62 1808 mempools for mem_malloc.
ua1arn 0:c2ca3c5ded62 1809
ua1arn 0:c2ca3c5ded62 1810 2007-08-16 Marc Boucher
ua1arn 0:c2ca3c5ded62 1811 * api_msg.c: Initialize newconn->state to NETCONN_NONE in accept_function;
ua1arn 0:c2ca3c5ded62 1812 otherwise it was left to NETCONN_CLOSE and sent_tcp() could prematurely
ua1arn 0:c2ca3c5ded62 1813 close the connection.
ua1arn 0:c2ca3c5ded62 1814
ua1arn 0:c2ca3c5ded62 1815 2007-08-16 Marc Boucher
ua1arn 0:c2ca3c5ded62 1816 * sockets.c: lwip_accept(): check netconn_peer() error return.
ua1arn 0:c2ca3c5ded62 1817
ua1arn 0:c2ca3c5ded62 1818 2007-08-16 Marc Boucher
ua1arn 0:c2ca3c5ded62 1819 * mem.c, mem.h: Added mem_calloc().
ua1arn 0:c2ca3c5ded62 1820
ua1arn 0:c2ca3c5ded62 1821 2007-08-16 Marc Boucher
ua1arn 0:c2ca3c5ded62 1822 * tcpip.c, tcpip.h memp.c, memp.h: Added distinct memp (MEMP_TCPIP_MSG_INPKT)
ua1arn 0:c2ca3c5ded62 1823 for input packets to prevent floods from consuming all of MEMP_TCPIP_MSG
ua1arn 0:c2ca3c5ded62 1824 and starving other message types.
ua1arn 0:c2ca3c5ded62 1825 Renamed MEMP_TCPIP_MSG to MEMP_TCPIP_MSG_API
ua1arn 0:c2ca3c5ded62 1826
ua1arn 0:c2ca3c5ded62 1827 2007-08-16 Marc Boucher
ua1arn 0:c2ca3c5ded62 1828 * pbuf.c, pbuf.h, etharp.c, tcp_in.c, sockets.c: Split pbuf flags in pbuf
ua1arn 0:c2ca3c5ded62 1829 type and flgs (later renamed to flags).
ua1arn 0:c2ca3c5ded62 1830 Use enum pbuf_flag as pbuf_type. Renumber PBUF_FLAG_*.
ua1arn 0:c2ca3c5ded62 1831 Improved lwip_recvfrom(). TCP push now propagated.
ua1arn 0:c2ca3c5ded62 1832
ua1arn 0:c2ca3c5ded62 1833 2007-08-16 Marc Boucher
ua1arn 0:c2ca3c5ded62 1834 * ethernetif.c, contrib/ports/various: ethbroadcast now a shared global
ua1arn 0:c2ca3c5ded62 1835 provided by etharp.
ua1arn 0:c2ca3c5ded62 1836
ua1arn 0:c2ca3c5ded62 1837 2007-08-16 Marc Boucher
ua1arn 0:c2ca3c5ded62 1838 * ppp_oe.c ppp_oe.h, auth.c chap.c fsm.c lcp.c ppp.c ppp.h,
ua1arn 0:c2ca3c5ded62 1839 etharp.c ethernetif.c, etharp.h, opt.h tcpip.h, tcpip.c:
ua1arn 0:c2ca3c5ded62 1840 Added PPPoE support and various PPP improvements.
ua1arn 0:c2ca3c5ded62 1841
ua1arn 0:c2ca3c5ded62 1842 2007-07-25 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1843 * api_lib.c, ip_frag.c, pbuf.c, api.h, pbuf.h: Introduced pbuf_copy_partial,
ua1arn 0:c2ca3c5ded62 1844 making netbuf_copy_partial use this function.
ua1arn 0:c2ca3c5ded62 1845
ua1arn 0:c2ca3c5ded62 1846 2007-07-25 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1847 * tcp_in.c: Fix bug #20506: Slow start / initial congestion window starts with
ua1arn 0:c2ca3c5ded62 1848 2 * mss (instead of 1 * mss previously) to comply with some newer RFCs and
ua1arn 0:c2ca3c5ded62 1849 other stacks.
ua1arn 0:c2ca3c5ded62 1850
ua1arn 0:c2ca3c5ded62 1851 2007-07-13 Jared Grubb (integrated by Frédéric Bernon)
ua1arn 0:c2ca3c5ded62 1852 * opt.h, netif.h, netif.c, ethernetif.c: Add new configuration option to add
ua1arn 0:c2ca3c5ded62 1853 a link callback in the netif struct, and functions to handle it. Be carefull
ua1arn 0:c2ca3c5ded62 1854 for port maintainers to add the NETIF_FLAG_LINK_UP flag (like in ethernetif.c)
ua1arn 0:c2ca3c5ded62 1855 if you want to be sure to be compatible with future changes...
ua1arn 0:c2ca3c5ded62 1856
ua1arn 0:c2ca3c5ded62 1857 2007-06-30 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1858 * sockets.h, sockets.c: Implement MSG_PEEK flag for recv/recvfrom functions.
ua1arn 0:c2ca3c5ded62 1859
ua1arn 0:c2ca3c5ded62 1860 2007-06-21 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1861 * etharp.h, etharp.c: Combined etharp_request with etharp_raw for both
ua1arn 0:c2ca3c5ded62 1862 LWIP_AUTOIP =0 and =1 to remove redundant code.
ua1arn 0:c2ca3c5ded62 1863
ua1arn 0:c2ca3c5ded62 1864 2007-06-21 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1865 * mem.c, memp.c, mem.h, memp.h, opt.h: task #6863: Introduced the option
ua1arn 0:c2ca3c5ded62 1866 MEM_USE_POOLS to use 4 pools with different sized elements instead of a
ua1arn 0:c2ca3c5ded62 1867 heap. This both prevents memory fragmentation and gives a higher speed
ua1arn 0:c2ca3c5ded62 1868 at the cost of more memory consumption. Turned off by default.
ua1arn 0:c2ca3c5ded62 1869
ua1arn 0:c2ca3c5ded62 1870 2007-06-21 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1871 * api_lib.c, api_msg.c, api.h, api_msg.h: Converted the length argument of
ua1arn 0:c2ca3c5ded62 1872 netconn_write (and therefore also api_msg_msg.msg.w.len) from u16_t into
ua1arn 0:c2ca3c5ded62 1873 int to be able to send a bigger buffer than 64K with one time (mainly
ua1arn 0:c2ca3c5ded62 1874 used from lwip_send).
ua1arn 0:c2ca3c5ded62 1875
ua1arn 0:c2ca3c5ded62 1876 2007-06-21 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1877 * tcp.h, api_msg.c: Moved the nagle algorithm from netconn_write/do_write
ua1arn 0:c2ca3c5ded62 1878 into a define (tcp_output_nagle) in tcp.h to provide it to raw api users, too.
ua1arn 0:c2ca3c5ded62 1879
ua1arn 0:c2ca3c5ded62 1880 2007-06-21 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1881 * api.h, api_lib.c, api_msg.c: Fixed bug #20021: Moved sendbuf-processing in
ua1arn 0:c2ca3c5ded62 1882 netconn_write from api_lib.c to api_msg.c to also prevent multiple context-
ua1arn 0:c2ca3c5ded62 1883 changes on low memory or empty send-buffer.
ua1arn 0:c2ca3c5ded62 1884
ua1arn 0:c2ca3c5ded62 1885 2007-06-18 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1886 * etharp.c, etharp.h: Changed etharp to use a defined hardware address length
ua1arn 0:c2ca3c5ded62 1887 of 6 to avoid loading netif->hwaddr_len every time (since this file is only
ua1arn 0:c2ca3c5ded62 1888 used for ethernet and struct eth_addr already had a defined length of 6).
ua1arn 0:c2ca3c5ded62 1889
ua1arn 0:c2ca3c5ded62 1890 2007-06-17 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1891 * sockets.c, sockets.h: Implemented socket options SO_NO_CHECK for UDP sockets
ua1arn 0:c2ca3c5ded62 1892 to disable UDP checksum generation on transmit.
ua1arn 0:c2ca3c5ded62 1893
ua1arn 0:c2ca3c5ded62 1894 2007-06-13 Frédéric Bernon, Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1895 * debug.h, api_msg.c: change LWIP_ERROR to use it to check errors like invalid
ua1arn 0:c2ca3c5ded62 1896 pointers or parameters, and let the possibility to redefined it in cc.h. Use
ua1arn 0:c2ca3c5ded62 1897 this macro to check "conn" parameter in api_msg.c functions.
ua1arn 0:c2ca3c5ded62 1898
ua1arn 0:c2ca3c5ded62 1899 2007-06-11 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1900 * sockets.c, sockets.h: Added UDP lite support for sockets
ua1arn 0:c2ca3c5ded62 1901
ua1arn 0:c2ca3c5ded62 1902 2007-06-10 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1903 * udp.h, opt.h, api_msg.c, ip.c, udp.c: Included switch LWIP_UDPLITE (enabled
ua1arn 0:c2ca3c5ded62 1904 by default) to switch off UDP-Lite support if not needed (reduces udp.c code
ua1arn 0:c2ca3c5ded62 1905 size)
ua1arn 0:c2ca3c5ded62 1906
ua1arn 0:c2ca3c5ded62 1907 2007-06-09 Dominik Spies (integrated by Frédéric Bernon)
ua1arn 0:c2ca3c5ded62 1908 * autoip.h, autoip.c, dhcp.h, dhcp.c, netif.h, netif.c, etharp.h, etharp.c, opt.h:
ua1arn 0:c2ca3c5ded62 1909 AutoIP implementation available for IPv4, with new options LWIP_AUTOIP and
ua1arn 0:c2ca3c5ded62 1910 LWIP_DHCP_AUTOIP_COOP if you want to cooperate with DHCP. Some tips to adapt
ua1arn 0:c2ca3c5ded62 1911 (see TODO mark in the source code).
ua1arn 0:c2ca3c5ded62 1912
ua1arn 0:c2ca3c5ded62 1913 2007-06-09 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1914 * etharp.h, etharp.c, ethernetif.c: Modified order of parameters for
ua1arn 0:c2ca3c5ded62 1915 etharp_output() to match netif->output so etharp_output() can be used
ua1arn 0:c2ca3c5ded62 1916 directly as netif->output to save one function call.
ua1arn 0:c2ca3c5ded62 1917
ua1arn 0:c2ca3c5ded62 1918 2007-06-08 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1919 * netif.h, ethernetif.c, slipif.c, loopif.c: Added define
ua1arn 0:c2ca3c5ded62 1920 NETIF_INIT_SNMP(netif, type, speed) to initialize per-netif snmp variables,
ua1arn 0:c2ca3c5ded62 1921 added initialization of those to ethernetif, slipif and loopif.
ua1arn 0:c2ca3c5ded62 1922
ua1arn 0:c2ca3c5ded62 1923 2007-05-18 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1924 * opt.h, ip_frag.c, ip_frag.h, ip.c: Added option IP_FRAG_USES_STATIC_BUF
ua1arn 0:c2ca3c5ded62 1925 (defaulting to off for now) that can be set to 0 to send fragmented
ua1arn 0:c2ca3c5ded62 1926 packets by passing PBUF_REFs down the stack.
ua1arn 0:c2ca3c5ded62 1927
ua1arn 0:c2ca3c5ded62 1928 2007-05-23 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1929 * api_lib.c: Implement SO_RCVTIMEO for accept and recv on TCP
ua1arn 0:c2ca3c5ded62 1930 connections, such present in patch #5959.
ua1arn 0:c2ca3c5ded62 1931
ua1arn 0:c2ca3c5ded62 1932 2007-05-23 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1933 * api.h, api_lib.c, api_msg.c, sockets.c: group the different NETCONN_UDPxxx
ua1arn 0:c2ca3c5ded62 1934 code in only one part...
ua1arn 0:c2ca3c5ded62 1935
ua1arn 0:c2ca3c5ded62 1936 2007-05-18 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1937 * opt.h, memp.h, memp.c: Added option MEMP_OVERFLOW_CHECK to check for memp
ua1arn 0:c2ca3c5ded62 1938 elements to overflow. This is achieved by adding some bytes before and after
ua1arn 0:c2ca3c5ded62 1939 each pool element (increasing their size, of course), filling them with a
ua1arn 0:c2ca3c5ded62 1940 prominent value and checking them on freeing the element.
ua1arn 0:c2ca3c5ded62 1941 Set it to 2 to also check every element in every pool each time memp_malloc()
ua1arn 0:c2ca3c5ded62 1942 or memp_free() is called (slower but more helpful).
ua1arn 0:c2ca3c5ded62 1943
ua1arn 0:c2ca3c5ded62 1944 2007-05-10 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1945 * opt.h, memp.h, memp.c, pbuf.c (see task #6831): use a new memp pool for
ua1arn 0:c2ca3c5ded62 1946 PBUF_POOL pbufs instead of the old pool implementation in pbuf.c to reduce
ua1arn 0:c2ca3c5ded62 1947 code size.
ua1arn 0:c2ca3c5ded62 1948
ua1arn 0:c2ca3c5ded62 1949 2007-05-11 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1950 * sockets.c, api_lib.c, api_msg.h, api_msg.c, netifapi.h, netifapi.c, tcpip.c:
ua1arn 0:c2ca3c5ded62 1951 Include a function pointer instead of a table index in the message to reduce
ua1arn 0:c2ca3c5ded62 1952 footprint. Disable some part of lwip_send and lwip_sendto if some options are
ua1arn 0:c2ca3c5ded62 1953 not set (LWIP_TCP, LWIP_UDP, LWIP_RAW).
ua1arn 0:c2ca3c5ded62 1954
ua1arn 0:c2ca3c5ded62 1955 2007-05-10 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1956 * *.h (except netif/ppp/*.h): Included patch #5448: include '#ifdef __cplusplus
ua1arn 0:c2ca3c5ded62 1957 \ extern "C" {' in all header files. Now you can write your application using
ua1arn 0:c2ca3c5ded62 1958 the lwIP stack in C++ and simply #include the core files. Note I have left
ua1arn 0:c2ca3c5ded62 1959 out the netif/ppp/*h header files for now, since I don't know which files are
ua1arn 0:c2ca3c5ded62 1960 included by applications and which are for internal use only.
ua1arn 0:c2ca3c5ded62 1961
ua1arn 0:c2ca3c5ded62 1962 2007-05-09 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1963 * opt.h, *.c/*.h: Included patch #5920: Create define to override C-library
ua1arn 0:c2ca3c5ded62 1964 memcpy. 2 Defines are created: MEMCPY() for normal memcpy, SMEMCPY() for
ua1arn 0:c2ca3c5ded62 1965 situations where some compilers might inline the copy and save a function
ua1arn 0:c2ca3c5ded62 1966 call. Also replaced all calls to memcpy() with calls to (S)MEMCPY().
ua1arn 0:c2ca3c5ded62 1967
ua1arn 0:c2ca3c5ded62 1968 2007-05-08 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1969 * mem.h: If MEM_LIBC_MALLOC==1, allow the defines (e.g. mem_malloc() -> malloc())
ua1arn 0:c2ca3c5ded62 1970 to be overriden in case the C-library malloc implementation is not protected
ua1arn 0:c2ca3c5ded62 1971 against concurrent access.
ua1arn 0:c2ca3c5ded62 1972
ua1arn 0:c2ca3c5ded62 1973 2007-05-04 Simon Goldschmidt (Atte Kojo)
ua1arn 0:c2ca3c5ded62 1974 * etharp.c: Introduced fast one-entry-cache to speed up ARP lookup when sending
ua1arn 0:c2ca3c5ded62 1975 multiple packets to the same host.
ua1arn 0:c2ca3c5ded62 1976
ua1arn 0:c2ca3c5ded62 1977 2007-05-04 Frédéric Bernon, Jonathan Larmour
ua1arn 0:c2ca3c5ded62 1978 * sockets.c, api.h, api_lib.c, api_msg.h, api_msg.c: Fix bug #19162 "lwip_sento: a possible
ua1arn 0:c2ca3c5ded62 1979 to corrupt remote addr/port connection state". Reduce problems "not enought memory" with
ua1arn 0:c2ca3c5ded62 1980 netbuf (if we receive lot of datagrams). Improve lwip_sendto (only one exchange between
ua1arn 0:c2ca3c5ded62 1981 sockets api and api_msg which run in tcpip_thread context). Add netconn_sento function.
ua1arn 0:c2ca3c5ded62 1982 Warning, if you directly access to "fromaddr" & "fromport" field from netbuf struct,
ua1arn 0:c2ca3c5ded62 1983 these fields are now renamed "addr" & "port".
ua1arn 0:c2ca3c5ded62 1984
ua1arn 0:c2ca3c5ded62 1985 2007-04-11 Jonathan Larmour
ua1arn 0:c2ca3c5ded62 1986 * sys.h, api_lib.c: Provide new sys_mbox_tryfetch function. Require ports to provide new
ua1arn 0:c2ca3c5ded62 1987 sys_arch_mbox_tryfetch function to get a message if one is there, otherwise return
ua1arn 0:c2ca3c5ded62 1988 with SYS_MBOX_EMPTY. sys_arch_mbox_tryfetch can be implemented as a function-like macro
ua1arn 0:c2ca3c5ded62 1989 by the port in sys_arch.h if desired.
ua1arn 0:c2ca3c5ded62 1990
ua1arn 0:c2ca3c5ded62 1991 2007-04-06 Frédéric Bernon, Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 1992 * opt.h, tcpip.h, tcpip.c, netifapi.h, netifapi.c: New configuration option LWIP_NETIF_API
ua1arn 0:c2ca3c5ded62 1993 allow to use thread-safe functions to add/remove netif in list, and to start/stop dhcp
ua1arn 0:c2ca3c5ded62 1994 clients, using new functions from netifapi.h. Disable as default (no port change to do).
ua1arn 0:c2ca3c5ded62 1995
ua1arn 0:c2ca3c5ded62 1996 2007-04-05 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 1997 * sockets.c: remplace ENOBUFS errors on alloc_socket by ENFILE to be more BSD compliant.
ua1arn 0:c2ca3c5ded62 1998
ua1arn 0:c2ca3c5ded62 1999 2007-04-04 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2000 * arch.h, api_msg.c, dhcp.c, msg_in.c, sockets.c: Introduced #define LWIP_UNUSED_ARG(x)
ua1arn 0:c2ca3c5ded62 2001 use this for and architecture-independent form to tell the compiler you intentionally
ua1arn 0:c2ca3c5ded62 2002 are not using this variable. Can be overriden in cc.h.
ua1arn 0:c2ca3c5ded62 2003
ua1arn 0:c2ca3c5ded62 2004 2007-03-28 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2005 * opt.h, netif.h, dhcp.h, dhcp.c: New configuration option LWIP_NETIF_HOSTNAME allow to
ua1arn 0:c2ca3c5ded62 2006 define a hostname in netif struct (this is just a pointer, so, you can use a hardcoded
ua1arn 0:c2ca3c5ded62 2007 string, point on one of your's ethernetif field, or alloc a string you will free yourself).
ua1arn 0:c2ca3c5ded62 2008 It will be used by DHCP to register a client hostname, but can also be use when you call
ua1arn 0:c2ca3c5ded62 2009 snmp_set_sysname.
ua1arn 0:c2ca3c5ded62 2010
ua1arn 0:c2ca3c5ded62 2011 2007-03-28 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2012 * netif.h, netif.c: A new NETIF_FLAG_ETHARP flag is defined in netif.h, to allow to
ua1arn 0:c2ca3c5ded62 2013 initialize a network interface's flag with. It tell this interface is an ethernet
ua1arn 0:c2ca3c5ded62 2014 device, and we can use ARP with it to do a "gratuitous ARP" (RFC 3220 "IP Mobility
ua1arn 0:c2ca3c5ded62 2015 Support for IPv4" section 4.6) when interface is "up" with netif_set_up().
ua1arn 0:c2ca3c5ded62 2016
ua1arn 0:c2ca3c5ded62 2017 2007-03-26 Frédéric Bernon, Jonathan Larmour
ua1arn 0:c2ca3c5ded62 2018 * opt.h, tcpip.c: New configuration option LWIP_ARP allow to disable ARP init at build
ua1arn 0:c2ca3c5ded62 2019 time if you only use PPP or SLIP. The default is enable. Note we don't have to call
ua1arn 0:c2ca3c5ded62 2020 etharp_init in your port's initilization sequence if you use tcpip.c, because this call
ua1arn 0:c2ca3c5ded62 2021 is done in tcpip_init function.
ua1arn 0:c2ca3c5ded62 2022
ua1arn 0:c2ca3c5ded62 2023 2007-03-22 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2024 * stats.h, stats.c, msg_in.c: Stats counters can be change to u32_t if necessary with the
ua1arn 0:c2ca3c5ded62 2025 new option LWIP_STATS_LARGE. If you need this option, define LWIP_STATS_LARGE to 1 in
ua1arn 0:c2ca3c5ded62 2026 your lwipopts.h. More, unused counters are not defined in the stats structs, and not
ua1arn 0:c2ca3c5ded62 2027 display by stats_display(). Note that some options (SYS_STATS and RAW_STATS) are defined
ua1arn 0:c2ca3c5ded62 2028 but never used. Fix msg_in.c with the correct #if test for a stat display.
ua1arn 0:c2ca3c5ded62 2029
ua1arn 0:c2ca3c5ded62 2030 2007-03-21 Kieran Mansley
ua1arn 0:c2ca3c5ded62 2031 * netif.c, netif.h: Apply patch#4197 with some changes (originator: rireland@hmgsl.com).
ua1arn 0:c2ca3c5ded62 2032 Provides callback on netif up/down state change.
ua1arn 0:c2ca3c5ded62 2033
ua1arn 0:c2ca3c5ded62 2034 2007-03-11 Frédéric Bernon, Mace Gael, Steve Reynolds
ua1arn 0:c2ca3c5ded62 2035 * sockets.h, sockets.c, api.h, api_lib.c, api_msg.h, api_msg.c, igmp.h, igmp.c,
ua1arn 0:c2ca3c5ded62 2036 ip.c, netif.h, tcpip.c, opt.h:
ua1arn 0:c2ca3c5ded62 2037 New configuration option LWIP_IGMP to enable IGMP processing. Based on only one
ua1arn 0:c2ca3c5ded62 2038 filter per all network interfaces. Declare a new function in netif to enable to
ua1arn 0:c2ca3c5ded62 2039 control the MAC filter (to reduce lwIP traffic processing).
ua1arn 0:c2ca3c5ded62 2040
ua1arn 0:c2ca3c5ded62 2041 2007-03-11 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2042 * tcp.h, tcp.c, sockets.c, tcp_out.c, tcp_in.c, opt.h: Keepalive values can
ua1arn 0:c2ca3c5ded62 2043 be configured at run time with LWIP_TCP_KEEPALIVE, but don't change this
ua1arn 0:c2ca3c5ded62 2044 unless you know what you're doing (default are RFC1122 compliant). Note
ua1arn 0:c2ca3c5ded62 2045 that TCP_KEEPIDLE and TCP_KEEPINTVL have to be set in seconds.
ua1arn 0:c2ca3c5ded62 2046
ua1arn 0:c2ca3c5ded62 2047 2007-03-08 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2048 * tcp.h: Keepalive values can be configured at compile time, but don't change
ua1arn 0:c2ca3c5ded62 2049 this unless you know what you're doing (default are RFC1122 compliant).
ua1arn 0:c2ca3c5ded62 2050
ua1arn 0:c2ca3c5ded62 2051 2007-03-08 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2052 * sockets.c, api.h, api_lib.c, tcpip.c, sys.h, sys.c, err.c, opt.h:
ua1arn 0:c2ca3c5ded62 2053 Implement LWIP_SO_RCVTIMEO configuration option to enable/disable SO_RCVTIMEO
ua1arn 0:c2ca3c5ded62 2054 on UDP sockets/netconn.
ua1arn 0:c2ca3c5ded62 2055
ua1arn 0:c2ca3c5ded62 2056 2007-03-08 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2057 * snmp_msg.h, msg_in.c: SNMP UDP ports can be configured at compile time.
ua1arn 0:c2ca3c5ded62 2058
ua1arn 0:c2ca3c5ded62 2059 2007-03-06 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2060 * api.h, api_lib.c, sockets.h, sockets.c, tcpip.c, sys.h, sys.c, err.h:
ua1arn 0:c2ca3c5ded62 2061 Implement SO_RCVTIMEO on UDP sockets/netconn.
ua1arn 0:c2ca3c5ded62 2062
ua1arn 0:c2ca3c5ded62 2063 2007-02-28 Kieran Mansley (based on patch from Simon Goldschmidt)
ua1arn 0:c2ca3c5ded62 2064 * api_lib.c, tcpip.c, memp.c, memp.h: make API msg structs allocated
ua1arn 0:c2ca3c5ded62 2065 on the stack and remove the API msg type from memp
ua1arn 0:c2ca3c5ded62 2066
ua1arn 0:c2ca3c5ded62 2067 2007-02-26 Jonathan Larmour (based on patch from Simon Goldschmidt)
ua1arn 0:c2ca3c5ded62 2068 * sockets.h, sockets.c: Move socket initialization to new
ua1arn 0:c2ca3c5ded62 2069 lwip_socket_init() function.
ua1arn 0:c2ca3c5ded62 2070 NOTE: this changes the API with ports. Ports will have to be
ua1arn 0:c2ca3c5ded62 2071 updated to call lwip_socket_init() now.
ua1arn 0:c2ca3c5ded62 2072
ua1arn 0:c2ca3c5ded62 2073 2007-02-26 Jonathan Larmour (based on patch from Simon Goldschmidt)
ua1arn 0:c2ca3c5ded62 2074 * api_lib.c: Use memcpy in netbuf_copy_partial.
ua1arn 0:c2ca3c5ded62 2075
ua1arn 0:c2ca3c5ded62 2076
ua1arn 0:c2ca3c5ded62 2077 ++ Bug fixes:
ua1arn 0:c2ca3c5ded62 2078
ua1arn 0:c2ca3c5ded62 2079 2008-03-17 Frédéric Bernon, Ed Kerekes
ua1arn 0:c2ca3c5ded62 2080 * igmp.h, igmp.c: Fix bug #22613 "IGMP iphdr problem" (could have
ua1arn 0:c2ca3c5ded62 2081 some problems to fill the IP header on some targets, use now the
ua1arn 0:c2ca3c5ded62 2082 ip.h macros to do it).
ua1arn 0:c2ca3c5ded62 2083
ua1arn 0:c2ca3c5ded62 2084 2008-03-13 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2085 * sockets.c: Fix bug #22435 "lwip_recvfrom with TCP break;". Using
ua1arn 0:c2ca3c5ded62 2086 (lwip_)recvfrom with valid "from" and "fromlen" parameters, on a
ua1arn 0:c2ca3c5ded62 2087 TCP connection caused a crash. Note that using (lwip_)recvfrom
ua1arn 0:c2ca3c5ded62 2088 like this is a bit slow and that using (lwip)getpeername is the
ua1arn 0:c2ca3c5ded62 2089 good lwip way to do it (so, using recv is faster on tcp sockets).
ua1arn 0:c2ca3c5ded62 2090
ua1arn 0:c2ca3c5ded62 2091 2008-03-12 Frédéric Bernon, Jonathan Larmour
ua1arn 0:c2ca3c5ded62 2092 * api_msg.c, contrib/apps/ping.c: Fix bug #22530 "api_msg.c's
ua1arn 0:c2ca3c5ded62 2093 recv_raw() does not consume data", and the ping sample (with
ua1arn 0:c2ca3c5ded62 2094 LWIP_SOCKET=1, the code did the wrong supposition that lwip_recvfrom
ua1arn 0:c2ca3c5ded62 2095 returned the IP payload, without the IP header).
ua1arn 0:c2ca3c5ded62 2096
ua1arn 0:c2ca3c5ded62 2097 2008-03-04 Jonathan Larmour
ua1arn 0:c2ca3c5ded62 2098 * mem.c, stats.c, mem.h: apply patch #6414 to avoid compiler errors
ua1arn 0:c2ca3c5ded62 2099 and/or warnings on some systems where mem_size_t and size_t differ.
ua1arn 0:c2ca3c5ded62 2100 * pbuf.c, ppp.c: Fix warnings on some systems with mem_malloc.
ua1arn 0:c2ca3c5ded62 2101
ua1arn 0:c2ca3c5ded62 2102 2008-03-04 Kieran Mansley (contributions by others)
ua1arn 0:c2ca3c5ded62 2103 * Numerous small compiler error/warning fixes from contributions to
ua1arn 0:c2ca3c5ded62 2104 mailing list after 1.3.0 release candidate made.
ua1arn 0:c2ca3c5ded62 2105
ua1arn 0:c2ca3c5ded62 2106 2008-01-25 Cui hengbin (integrated by Frédéric Bernon)
ua1arn 0:c2ca3c5ded62 2107 * dns.c: Fix bug #22108 "DNS problem" caused by unaligned structures.
ua1arn 0:c2ca3c5ded62 2108
ua1arn 0:c2ca3c5ded62 2109 2008-01-15 Kieran Mansley
ua1arn 0:c2ca3c5ded62 2110 * tcp_out.c: BUG20511. Modify persist timer to start when we are
ua1arn 0:c2ca3c5ded62 2111 prevented from sending by a small send window, not just a zero
ua1arn 0:c2ca3c5ded62 2112 send window.
ua1arn 0:c2ca3c5ded62 2113
ua1arn 0:c2ca3c5ded62 2114 2008-01-09 Jonathan Larmour
ua1arn 0:c2ca3c5ded62 2115 * opt.h, ip.c: Rename IP_OPTIONS define to IP_OPTIONS_ALLOWED to avoid
ua1arn 0:c2ca3c5ded62 2116 conflict with Linux system headers.
ua1arn 0:c2ca3c5ded62 2117
ua1arn 0:c2ca3c5ded62 2118 2008-01-06 Jonathan Larmour
ua1arn 0:c2ca3c5ded62 2119 * dhcp.c: fix bug #19927: "DHCP NACK problem" by clearing any existing set IP
ua1arn 0:c2ca3c5ded62 2120 address entirely on receiving a DHCPNAK, and restarting discovery.
ua1arn 0:c2ca3c5ded62 2121
ua1arn 0:c2ca3c5ded62 2122 2007-12-21 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2123 * sys.h, api_lib.c, api_msg.c, sockets.c: fix bug #21698: "netconn->recv_avail
ua1arn 0:c2ca3c5ded62 2124 is not protected" by using new macros for interlocked access to modify/test
ua1arn 0:c2ca3c5ded62 2125 netconn->recv_avail.
ua1arn 0:c2ca3c5ded62 2126
ua1arn 0:c2ca3c5ded62 2127 2007-12-20 Kieran Mansley (based on patch from Oleg Tyshev)
ua1arn 0:c2ca3c5ded62 2128 * tcp_in.c: fix bug# 21535 (nrtx not reset correctly in SYN_SENT state)
ua1arn 0:c2ca3c5ded62 2129
ua1arn 0:c2ca3c5ded62 2130 2007-12-20 Kieran Mansley (based on patch from Per-Henrik Lundbolm)
ua1arn 0:c2ca3c5ded62 2131 * tcp.c, tcp_in.c, tcp_out.c, tcp.h: fix bug #20199 (better handling
ua1arn 0:c2ca3c5ded62 2132 of silly window avoidance and prevent lwIP from shrinking the window)
ua1arn 0:c2ca3c5ded62 2133
ua1arn 0:c2ca3c5ded62 2134 2007-12-04 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2135 * tcp.c, tcp_in.c: fix bug #21699 (segment leak in ooseq processing when last
ua1arn 0:c2ca3c5ded62 2136 data packet was lost): add assert that all segment lists are empty in
ua1arn 0:c2ca3c5ded62 2137 tcp_pcb_remove before setting pcb to CLOSED state; don't directly set CLOSED
ua1arn 0:c2ca3c5ded62 2138 state from LAST_ACK in tcp_process
ua1arn 0:c2ca3c5ded62 2139
ua1arn 0:c2ca3c5ded62 2140 2007-12-02 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2141 * sockets.h: fix bug #21654: exclude definition of struct timeval from #ifndef FD_SET
ua1arn 0:c2ca3c5ded62 2142 If including <sys/time.h> for system-struct timeval, LWIP_TIMEVAL_PRIVATE now
ua1arn 0:c2ca3c5ded62 2143 has to be set to 0 in lwipopts.h
ua1arn 0:c2ca3c5ded62 2144
ua1arn 0:c2ca3c5ded62 2145 2007-12-02 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2146 * api_msg.c, api_lib.c: fix bug #21656 (recvmbox problem in netconn API): always
ua1arn 0:c2ca3c5ded62 2147 allocate a recvmbox in netconn_new_with_proto_and_callback. For a tcp-listen
ua1arn 0:c2ca3c5ded62 2148 netconn, this recvmbox is later freed and a new mbox is allocated for acceptmbox.
ua1arn 0:c2ca3c5ded62 2149 This is a fix for thread-safety and allocates all items needed for a netconn
ua1arn 0:c2ca3c5ded62 2150 when the netconn is created.
ua1arn 0:c2ca3c5ded62 2151
ua1arn 0:c2ca3c5ded62 2152 2007-11-30 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2153 * udp.c: first attempt to fix bug #21655 (DHCP doesn't work reliably with multiple
ua1arn 0:c2ca3c5ded62 2154 netifs): if LWIP_DHCP is enabled, UDP packets to DHCP_CLIENT_PORT are passed
ua1arn 0:c2ca3c5ded62 2155 to netif->dhcp->pcb only (if that exists) and not to any other pcb for the same
ua1arn 0:c2ca3c5ded62 2156 port (only solution to let UDP pcbs 'bind' to a netif instead of an IP address)
ua1arn 0:c2ca3c5ded62 2157
ua1arn 0:c2ca3c5ded62 2158 2007-11-27 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2159 * ip.c: fixed bug #21643 (udp_send/raw_send don't fail if netif is down) by
ua1arn 0:c2ca3c5ded62 2160 letting ip_route only use netifs that are up.
ua1arn 0:c2ca3c5ded62 2161
ua1arn 0:c2ca3c5ded62 2162 2007-11-27 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2163 * err.h, api_lib.c, api_msg.c, sockets.c: Changed error handling: ERR_MEM, ERR_BUF
ua1arn 0:c2ca3c5ded62 2164 and ERR_RTE are seen as non-fatal, all other errors are fatal. netconns and
ua1arn 0:c2ca3c5ded62 2165 sockets block most operations once they have seen a fatal error.
ua1arn 0:c2ca3c5ded62 2166
ua1arn 0:c2ca3c5ded62 2167 2007-11-27 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2168 * udp.h, udp.c, dhcp.c: Implemented new function udp_sendto_if which takes the
ua1arn 0:c2ca3c5ded62 2169 netif to send as an argument (to be able to send on netifs that are down).
ua1arn 0:c2ca3c5ded62 2170
ua1arn 0:c2ca3c5ded62 2171 2007-11-26 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2172 * tcp_in.c: Fixed bug #21582: pcb->acked accounting can be wrong when ACKs
ua1arn 0:c2ca3c5ded62 2173 arrive out-of-order
ua1arn 0:c2ca3c5ded62 2174
ua1arn 0:c2ca3c5ded62 2175 2007-11-21 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2176 * tcp.h, tcp_out.c, api_msg.c: Fixed bug #20287: tcp_output_nagle sends too early
ua1arn 0:c2ca3c5ded62 2177 Fixed the nagle algorithm; nagle now also works for all raw API applications
ua1arn 0:c2ca3c5ded62 2178 and has to be explicitly disabled with 'tcp_pcb->flags |= TF_NODELAY'
ua1arn 0:c2ca3c5ded62 2179
ua1arn 0:c2ca3c5ded62 2180 2007-11-12 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2181 * sockets.c, api.h, api_lib.c, api_msg.h, api_msg.c: Fixed bug #20900. Now, most
ua1arn 0:c2ca3c5ded62 2182 of the netconn_peer and netconn_addr processing is done inside tcpip_thread
ua1arn 0:c2ca3c5ded62 2183 context in do_getaddr.
ua1arn 0:c2ca3c5ded62 2184
ua1arn 0:c2ca3c5ded62 2185 2007-11-10 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2186 * etharp.c: Fixed bug: assert fired when MEMP_ARP_QUEUE was empty (which can
ua1arn 0:c2ca3c5ded62 2187 happen any time). Now the packet simply isn't enqueued when out of memory.
ua1arn 0:c2ca3c5ded62 2188
ua1arn 0:c2ca3c5ded62 2189 2007-11-01 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2190 * tcp.c, tcp_in.c: Fixed bug #21494: The send mss (pcb->mss) is set to 536 (or
ua1arn 0:c2ca3c5ded62 2191 TCP_MSS if that is smaller) as long as no MSS option is received from the
ua1arn 0:c2ca3c5ded62 2192 remote host.
ua1arn 0:c2ca3c5ded62 2193
ua1arn 0:c2ca3c5ded62 2194 2007-11-01 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2195 * tcp.h, tcp.c, tcp_in.c: Fixed bug #21491: The MSS option sent (with SYN)
ua1arn 0:c2ca3c5ded62 2196 is now based on TCP_MSS instead of pcb->mss (on passive open now effectively
ua1arn 0:c2ca3c5ded62 2197 sending our configured TCP_MSS instead of the one received).
ua1arn 0:c2ca3c5ded62 2198
ua1arn 0:c2ca3c5ded62 2199 2007-11-01 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2200 * tcp_in.c: Fixed bug #21181: On active open, the initial congestion window was
ua1arn 0:c2ca3c5ded62 2201 calculated based on the configured TCP_MSS, not on the MSS option received
ua1arn 0:c2ca3c5ded62 2202 with SYN+ACK.
ua1arn 0:c2ca3c5ded62 2203
ua1arn 0:c2ca3c5ded62 2204 2007-10-09 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2205 * udp.c, inet.c, inet.h: Fixed UDPLite: send: Checksum was always generated too
ua1arn 0:c2ca3c5ded62 2206 short and also was generated wrong if checksum coverage != tot_len;
ua1arn 0:c2ca3c5ded62 2207 receive: checksum was calculated wrong if checksum coverage != tot_len
ua1arn 0:c2ca3c5ded62 2208
ua1arn 0:c2ca3c5ded62 2209 2007-10-08 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2210 * mem.c: lfree was not updated in mem_realloc!
ua1arn 0:c2ca3c5ded62 2211
ua1arn 0:c2ca3c5ded62 2212 2007-10-07 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2213 * sockets.c, api.h, api_lib.c: First step to fix "bug #20900 : Potential
ua1arn 0:c2ca3c5ded62 2214 crash error problem with netconn_peer & netconn_addr". VERY IMPORTANT:
ua1arn 0:c2ca3c5ded62 2215 this change cause an API breakage for netconn_addr, since a parameter
ua1arn 0:c2ca3c5ded62 2216 type change. Any compiler should cause an error without any changes in
ua1arn 0:c2ca3c5ded62 2217 yours netconn_peer calls (so, it can't be a "silent change"). It also
ua1arn 0:c2ca3c5ded62 2218 reduce a little bit the footprint for socket layer (lwip_getpeername &
ua1arn 0:c2ca3c5ded62 2219 lwip_getsockname use now a common lwip_getaddrname function since
ua1arn 0:c2ca3c5ded62 2220 netconn_peer & netconn_addr have the same parameters).
ua1arn 0:c2ca3c5ded62 2221
ua1arn 0:c2ca3c5ded62 2222 2007-09-20 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2223 * tcp.c: Fixed bug #21080 (tcp_bind without check pcbs in TIME_WAIT state)
ua1arn 0:c2ca3c5ded62 2224 by checking tcp_tw_pcbs also
ua1arn 0:c2ca3c5ded62 2225
ua1arn 0:c2ca3c5ded62 2226 2007-09-19 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2227 * icmp.c: Fixed bug #21107 (didn't reset IP TTL in ICMP echo replies)
ua1arn 0:c2ca3c5ded62 2228
ua1arn 0:c2ca3c5ded62 2229 2007-09-15 Mike Kleshov
ua1arn 0:c2ca3c5ded62 2230 * mem.c: Fixed bug #21077 (inaccuracy in calculation of lwip_stat.mem.used)
ua1arn 0:c2ca3c5ded62 2231
ua1arn 0:c2ca3c5ded62 2232 2007-09-06 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2233 * several-files: replace some #include "arch/cc.h" by "lwip/arch.h", or simply remove
ua1arn 0:c2ca3c5ded62 2234 it as long as "lwip/opt.h" is included before (this one include "lwip/debug.h" which
ua1arn 0:c2ca3c5ded62 2235 already include "lwip/arch.h"). Like that, default defines are provided by "lwip/arch.h"
ua1arn 0:c2ca3c5ded62 2236 if they are not defined in cc.h, in the same spirit than "lwip/opt.h" for lwipopts.h.
ua1arn 0:c2ca3c5ded62 2237
ua1arn 0:c2ca3c5ded62 2238 2007-08-30 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2239 * igmp.h, igmp.c: Some changes to remove some redundant code, add some traces,
ua1arn 0:c2ca3c5ded62 2240 and fix some coding style.
ua1arn 0:c2ca3c5ded62 2241
ua1arn 0:c2ca3c5ded62 2242 2007-08-28 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2243 * tcpip.c: Fix TCPIP_MSG_INPKT processing: now, tcpip_input can be used for any
ua1arn 0:c2ca3c5ded62 2244 kind of packets. These packets are considered like Ethernet packets (payload
ua1arn 0:c2ca3c5ded62 2245 pointing to ethhdr) if the netif got the NETIF_FLAG_ETHARP flag. Else, packets
ua1arn 0:c2ca3c5ded62 2246 are considered like IP packets (payload pointing to iphdr).
ua1arn 0:c2ca3c5ded62 2247
ua1arn 0:c2ca3c5ded62 2248 2007-08-27 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2249 * api.h, api_lib.c, api_msg.c: First fix for "bug #20900 : Potential crash error
ua1arn 0:c2ca3c5ded62 2250 problem with netconn_peer & netconn_addr". Introduce NETCONN_LISTEN netconn_state
ua1arn 0:c2ca3c5ded62 2251 and remove obsolete ones (NETCONN_RECV & NETCONN_ACCEPT).
ua1arn 0:c2ca3c5ded62 2252
ua1arn 0:c2ca3c5ded62 2253 2007-08-24 Kieran Mansley
ua1arn 0:c2ca3c5ded62 2254 * inet.c Modify (acc >> 16) test to ((acc >> 16) != 0) to help buggy
ua1arn 0:c2ca3c5ded62 2255 compiler (Paradigm C++)
ua1arn 0:c2ca3c5ded62 2256
ua1arn 0:c2ca3c5ded62 2257 2007-08-09 Frédéric Bernon, Bill Florac
ua1arn 0:c2ca3c5ded62 2258 * stats.h, stats.c, igmp.h, igmp.c, opt.h: Fix for bug #20503 : IGMP Improvement.
ua1arn 0:c2ca3c5ded62 2259 Introduce IGMP_STATS to centralize statistics management.
ua1arn 0:c2ca3c5ded62 2260
ua1arn 0:c2ca3c5ded62 2261 2007-08-09 Frédéric Bernon, Bill Florac
ua1arn 0:c2ca3c5ded62 2262 * udp.c: Fix for bug #20503 : IGMP Improvement. Enable to receive a multicast
ua1arn 0:c2ca3c5ded62 2263 packet on a udp pcb binded on an netif's IP address, and not on "any".
ua1arn 0:c2ca3c5ded62 2264
ua1arn 0:c2ca3c5ded62 2265 2007-08-09 Frédéric Bernon, Bill Florac
ua1arn 0:c2ca3c5ded62 2266 * igmp.h, igmp.c, ip.c: Fix minor changes from bug #20503 : IGMP Improvement.
ua1arn 0:c2ca3c5ded62 2267 This is mainly on using lookup/lookfor, and some coding styles...
ua1arn 0:c2ca3c5ded62 2268
ua1arn 0:c2ca3c5ded62 2269 2007-07-26 Frédéric Bernon (and "thedoctor")
ua1arn 0:c2ca3c5ded62 2270 * igmp.c: Fix bug #20595 to accept IGMPv3 "Query" messages.
ua1arn 0:c2ca3c5ded62 2271
ua1arn 0:c2ca3c5ded62 2272 2007-07-25 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2273 * api_msg.c, tcp.c: Another fix for bug #20021: by not returning an error if
ua1arn 0:c2ca3c5ded62 2274 tcp_output fails in tcp_close, the code in do_close_internal gets simpler
ua1arn 0:c2ca3c5ded62 2275 (tcp_output is called again later from tcp timers).
ua1arn 0:c2ca3c5ded62 2276
ua1arn 0:c2ca3c5ded62 2277 2007-07-25 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2278 * ip_frag.c: Fixed bug #20429: use the new pbuf_copy_partial instead of the old
ua1arn 0:c2ca3c5ded62 2279 copy_from_pbuf, which illegally modified the given pbuf.
ua1arn 0:c2ca3c5ded62 2280
ua1arn 0:c2ca3c5ded62 2281 2007-07-25 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2282 * tcp_out.c: tcp_enqueue: pcb->snd_queuelen didn't work for chaine PBUF_RAMs:
ua1arn 0:c2ca3c5ded62 2283 changed snd_queuelen++ to snd_queuelen += pbuf_clen(p).
ua1arn 0:c2ca3c5ded62 2284
ua1arn 0:c2ca3c5ded62 2285 2007-07-24 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2286 * api_msg.c, tcp.c: Fix bug #20480: Check the pcb passed to tcp_listen() for the
ua1arn 0:c2ca3c5ded62 2287 correct state (must be CLOSED).
ua1arn 0:c2ca3c5ded62 2288
ua1arn 0:c2ca3c5ded62 2289 2007-07-13 Thomas Taranowski (commited by Jared Grubb)
ua1arn 0:c2ca3c5ded62 2290 * memp.c: Fix bug #20478: memp_malloc returned NULL+MEMP_SIZE on failed
ua1arn 0:c2ca3c5ded62 2291 allocation. It now returns NULL.
ua1arn 0:c2ca3c5ded62 2292
ua1arn 0:c2ca3c5ded62 2293 2007-07-13 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2294 * api_msg.c: Fix bug #20318: api_msg "recv" callbacks don't call pbuf_free in
ua1arn 0:c2ca3c5ded62 2295 all error cases.
ua1arn 0:c2ca3c5ded62 2296
ua1arn 0:c2ca3c5ded62 2297 2007-07-13 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2298 * api_msg.c: Fix bug #20315: possible memory leak problem if tcp_listen failed,
ua1arn 0:c2ca3c5ded62 2299 because current code doesn't follow rawapi.txt documentation.
ua1arn 0:c2ca3c5ded62 2300
ua1arn 0:c2ca3c5ded62 2301 2007-07-13 Kieran Mansley
ua1arn 0:c2ca3c5ded62 2302 * src/core/tcp_in.c Apply patch#5741 from Oleg Tyshev to fix bug in
ua1arn 0:c2ca3c5ded62 2303 out of sequence processing of received packets
ua1arn 0:c2ca3c5ded62 2304
ua1arn 0:c2ca3c5ded62 2305 2007-07-03 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2306 * nearly-all-files: Added assertions where PBUF_RAM pbufs are used and an
ua1arn 0:c2ca3c5ded62 2307 assumption is made that this pbuf is in one piece (i.e. not chained). These
ua1arn 0:c2ca3c5ded62 2308 assumptions clash with the possibility of converting to fully pool-based
ua1arn 0:c2ca3c5ded62 2309 pbuf implementations, where PBUF_RAM pbufs might be chained.
ua1arn 0:c2ca3c5ded62 2310
ua1arn 0:c2ca3c5ded62 2311 2007-07-03 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2312 * api.h, api_lib.c, api_msg.c: Final fix for bug #20021 and some other problems
ua1arn 0:c2ca3c5ded62 2313 when closing tcp netconns: removed conn->sem, less context switches when
ua1arn 0:c2ca3c5ded62 2314 closing, both netconn_close and netconn_delete should safely close tcp
ua1arn 0:c2ca3c5ded62 2315 connections.
ua1arn 0:c2ca3c5ded62 2316
ua1arn 0:c2ca3c5ded62 2317 2007-07-02 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2318 * ipv4/ip.h, ipv6/ip.h, opt.h, netif.h, etharp.h, ipv4/ip.c, netif.c, raw.c,
ua1arn 0:c2ca3c5ded62 2319 tcp_out.c, udp.c, etharp.c: Added option LWIP_NETIF_HWADDRHINT (default=off)
ua1arn 0:c2ca3c5ded62 2320 to cache ARP table indices with each pcb instead of single-entry cache for
ua1arn 0:c2ca3c5ded62 2321 the complete stack.
ua1arn 0:c2ca3c5ded62 2322
ua1arn 0:c2ca3c5ded62 2323 2007-07-02 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2324 * tcp.h, tcp.c, tcp_in.c, tcp_out.c: Added some ASSERTS and casts to prevent
ua1arn 0:c2ca3c5ded62 2325 warnings when assigning to smaller types.
ua1arn 0:c2ca3c5ded62 2326
ua1arn 0:c2ca3c5ded62 2327 2007-06-28 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2328 * tcp_out.c: Added check to prevent tcp_pcb->snd_queuelen from overflowing.
ua1arn 0:c2ca3c5ded62 2329
ua1arn 0:c2ca3c5ded62 2330 2007-06-28 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2331 * tcp.h: Fixed bug #20287: Fixed nagle algorithm (sending was done too early if
ua1arn 0:c2ca3c5ded62 2332 a segment contained chained pbufs)
ua1arn 0:c2ca3c5ded62 2333
ua1arn 0:c2ca3c5ded62 2334 2007-06-28 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2335 * autoip.c: replace most of rand() calls by a macro LWIP_AUTOIP_RAND which compute
ua1arn 0:c2ca3c5ded62 2336 a "pseudo-random" value based on netif's MAC and some autoip fields. It's always
ua1arn 0:c2ca3c5ded62 2337 possible to define this macro in your own lwipopts.h to always use C library's
ua1arn 0:c2ca3c5ded62 2338 rand(). Note that autoip_create_rand_addr doesn't use this macro.
ua1arn 0:c2ca3c5ded62 2339
ua1arn 0:c2ca3c5ded62 2340 2007-06-28 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2341 * netifapi.h, netifapi.c, tcpip.h, tcpip.c: Update code to handle the option
ua1arn 0:c2ca3c5ded62 2342 LWIP_TCPIP_CORE_LOCKING, and do some changes to be coherent with last modifications
ua1arn 0:c2ca3c5ded62 2343 in api_lib/api_msg (use pointers and not type with table, etc...)
ua1arn 0:c2ca3c5ded62 2344
ua1arn 0:c2ca3c5ded62 2345 2007-06-26 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2346 * udp.h: Fixed bug #20259: struct udp_hdr was lacking the packin defines.
ua1arn 0:c2ca3c5ded62 2347
ua1arn 0:c2ca3c5ded62 2348 2007-06-25 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2349 * udp.c: Fixed bug #20253: icmp_dest_unreach was called with a wrong p->payload
ua1arn 0:c2ca3c5ded62 2350 for udp packets with no matching pcb.
ua1arn 0:c2ca3c5ded62 2351
ua1arn 0:c2ca3c5ded62 2352 2007-06-25 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2353 * udp.c: Fixed bug #20220: UDP PCB search in udp_input(): a non-local match
ua1arn 0:c2ca3c5ded62 2354 could get udp input packets if the remote side matched.
ua1arn 0:c2ca3c5ded62 2355
ua1arn 0:c2ca3c5ded62 2356 2007-06-13 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2357 * netif.c: Fixed bug #20180 (TCP pcbs listening on IP_ADDR_ANY could get
ua1arn 0:c2ca3c5ded62 2358 changed in netif_set_ipaddr if previous netif->ip_addr.addr was 0.
ua1arn 0:c2ca3c5ded62 2359
ua1arn 0:c2ca3c5ded62 2360 2007-06-13 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2361 * api_msg.c: pcb_new sets conn->err if protocol is not implemented
ua1arn 0:c2ca3c5ded62 2362 -> netconn_new_..() does not allocate a new connection for unsupported
ua1arn 0:c2ca3c5ded62 2363 protocols.
ua1arn 0:c2ca3c5ded62 2364
ua1arn 0:c2ca3c5ded62 2365 2007-06-13 Frédéric Bernon, Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2366 * api_lib.c: change return expression in netconn_addr and netconn_peer, because
ua1arn 0:c2ca3c5ded62 2367 conn->err was reset to ERR_OK without any reasons (and error was lost)...
ua1arn 0:c2ca3c5ded62 2368
ua1arn 0:c2ca3c5ded62 2369 2007-06-13 Frédéric Bernon, Matthias Weisser
ua1arn 0:c2ca3c5ded62 2370 * opt.h, mem.h, mem.c, memp.c, pbuf.c, ip_frag.c, vj.c: Fix bug #20162. Rename
ua1arn 0:c2ca3c5ded62 2371 MEM_ALIGN in LWIP_MEM_ALIGN and MEM_ALIGN_SIZE in LWIP_MEM_ALIGN_SIZE to avoid
ua1arn 0:c2ca3c5ded62 2372 some macro names collision with some OS macros.
ua1arn 0:c2ca3c5ded62 2373
ua1arn 0:c2ca3c5ded62 2374 2007-06-11 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2375 * udp.c: UDP Lite: corrected the use of chksum_len (based on RFC3828: if it's 0,
ua1arn 0:c2ca3c5ded62 2376 create checksum over the complete packet. On RX, if it's < 8 (and not 0),
ua1arn 0:c2ca3c5ded62 2377 discard the packet. Also removed the duplicate 'udphdr->chksum = 0' for both
ua1arn 0:c2ca3c5ded62 2378 UDP & UDP Lite.
ua1arn 0:c2ca3c5ded62 2379
ua1arn 0:c2ca3c5ded62 2380 2007-06-11 Srinivas Gollakota & Oleg Tyshev
ua1arn 0:c2ca3c5ded62 2381 * tcp_out.c: Fix for bug #20075 : "A problem with keep-alive timer and TCP flags"
ua1arn 0:c2ca3c5ded62 2382 where TCP flags wasn't initialized in tcp_keepalive.
ua1arn 0:c2ca3c5ded62 2383
ua1arn 0:c2ca3c5ded62 2384 2007-06-03 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2385 * udp.c: udp_input(): Input pbuf was not freed if pcb had no recv function
ua1arn 0:c2ca3c5ded62 2386 registered, p->payload was modified without modifying p->len if sending
ua1arn 0:c2ca3c5ded62 2387 icmp_dest_unreach() (had no negative effect but was definitively wrong).
ua1arn 0:c2ca3c5ded62 2388
ua1arn 0:c2ca3c5ded62 2389 2007-06-03 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2390 * icmp.c: Corrected bug #19937: For responding to an icmp echo request, icmp
ua1arn 0:c2ca3c5ded62 2391 re-used the input pbuf even if that didn't have enough space to include the
ua1arn 0:c2ca3c5ded62 2392 link headers. Now the space is tested and a new pbuf is allocated for the
ua1arn 0:c2ca3c5ded62 2393 echo response packet if the echo request pbuf isn't big enough.
ua1arn 0:c2ca3c5ded62 2394
ua1arn 0:c2ca3c5ded62 2395 2007-06-01 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2396 * sockets.c: Checked in patch #5914: Moved sockopt processing into tcpip_thread.
ua1arn 0:c2ca3c5ded62 2397
ua1arn 0:c2ca3c5ded62 2398 2007-05-23 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2399 * api_lib.c, sockets.c: Fixed bug #5958 for netconn_listen (acceptmbox only
ua1arn 0:c2ca3c5ded62 2400 allocated by do_listen if success) and netconn_accept errors handling. In
ua1arn 0:c2ca3c5ded62 2401 most of api_lib functions, we replace some errors checkings like "if (conn==NULL)"
ua1arn 0:c2ca3c5ded62 2402 by ASSERT, except for netconn_delete.
ua1arn 0:c2ca3c5ded62 2403
ua1arn 0:c2ca3c5ded62 2404 2007-05-23 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2405 * api_lib.c: Fixed bug #5957 "Safe-thread problem inside netconn_recv" to return
ua1arn 0:c2ca3c5ded62 2406 an error code if it's impossible to fetch a pbuf on a TCP connection (and not
ua1arn 0:c2ca3c5ded62 2407 directly close the recvmbox).
ua1arn 0:c2ca3c5ded62 2408
ua1arn 0:c2ca3c5ded62 2409 2007-05-22 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2410 * tcp.c: Fixed bug #1895 (tcp_bind not correct) by introducing a list of
ua1arn 0:c2ca3c5ded62 2411 bound but unconnected (and non-listening) tcp_pcbs.
ua1arn 0:c2ca3c5ded62 2412
ua1arn 0:c2ca3c5ded62 2413 2007-05-22 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2414 * sys.h, sys.c, api_lib.c, tcpip.c: remove sys_mbox_fetch_timeout() (was only
ua1arn 0:c2ca3c5ded62 2415 used for LWIP_SO_RCVTIMEO option) and use sys_arch_mbox_fetch() instead of
ua1arn 0:c2ca3c5ded62 2416 sys_mbox_fetch() in api files. Now, users SHOULD NOT use internal lwIP features
ua1arn 0:c2ca3c5ded62 2417 like "sys_timeout" in their application threads.
ua1arn 0:c2ca3c5ded62 2418
ua1arn 0:c2ca3c5ded62 2419 2007-05-22 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2420 * api.h, api_lib.c, api_msg.h, api_msg.c: change the struct api_msg_msg to see
ua1arn 0:c2ca3c5ded62 2421 which parameters are used by which do_xxx function, and to avoid "misusing"
ua1arn 0:c2ca3c5ded62 2422 parameters (patch #5938).
ua1arn 0:c2ca3c5ded62 2423
ua1arn 0:c2ca3c5ded62 2424 2007-05-22 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2425 * api_lib.c, api_msg.c, raw.c, api.h, api_msg.h, raw.h: Included patch #5938:
ua1arn 0:c2ca3c5ded62 2426 changed raw_pcb.protocol from u16_t to u8_t since for IPv4 and IPv6, proto
ua1arn 0:c2ca3c5ded62 2427 is only 8 bits wide. This affects the api, as there, the protocol was
ua1arn 0:c2ca3c5ded62 2428 u16_t, too.
ua1arn 0:c2ca3c5ded62 2429
ua1arn 0:c2ca3c5ded62 2430 2007-05-18 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2431 * memp.c: addition to patch #5913: smaller pointer was returned but
ua1arn 0:c2ca3c5ded62 2432 memp_memory was the same size -> did not save memory.
ua1arn 0:c2ca3c5ded62 2433
ua1arn 0:c2ca3c5ded62 2434 2007-05-16 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2435 * loopif.c, slipif.c: Fix bug #19729: free pbuf if netif->input() returns
ua1arn 0:c2ca3c5ded62 2436 != ERR_OK.
ua1arn 0:c2ca3c5ded62 2437
ua1arn 0:c2ca3c5ded62 2438 2007-05-16 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2439 * api_msg.c, udp.c: If a udp_pcb has a local_ip set, check if it is the same
ua1arn 0:c2ca3c5ded62 2440 as the one of the netif used for sending to prevent sending from old
ua1arn 0:c2ca3c5ded62 2441 addresses after a netif address gets changed (partly fixes bug #3168).
ua1arn 0:c2ca3c5ded62 2442
ua1arn 0:c2ca3c5ded62 2443 2007-05-16 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2444 * tcpip.c, igmp.h, igmp.c: Fixed bug "#19800 : IGMP: igmp_tick() will not work
ua1arn 0:c2ca3c5ded62 2445 with NO_SYS=1". Note that igmp_init is always in tcpip_thread (and not in
ua1arn 0:c2ca3c5ded62 2446 tcpip_init) because we have to be sure that network interfaces are already
ua1arn 0:c2ca3c5ded62 2447 added (mac filter is updated only in igmp_init for the moment).
ua1arn 0:c2ca3c5ded62 2448
ua1arn 0:c2ca3c5ded62 2449 2007-05-16 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2450 * mem.c, memp.c: Removed semaphores from memp, changed sys_sem_wait calls
ua1arn 0:c2ca3c5ded62 2451 into sys_arch_sem_wait calls to prevent timers from running while waiting
ua1arn 0:c2ca3c5ded62 2452 for the heap. This fixes bug #19167.
ua1arn 0:c2ca3c5ded62 2453
ua1arn 0:c2ca3c5ded62 2454 2007-05-13 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2455 * tcp.h, sockets.h, sockets.c: Fixed bug from patch #5865 by moving the defines
ua1arn 0:c2ca3c5ded62 2456 for socket options (lwip_set/-getsockopt) used with level IPPROTO_TCP from
ua1arn 0:c2ca3c5ded62 2457 tcp.h to sockets.h.
ua1arn 0:c2ca3c5ded62 2458
ua1arn 0:c2ca3c5ded62 2459 2007-05-07 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2460 * mem.c: Another attempt to fix bug #17922.
ua1arn 0:c2ca3c5ded62 2461
ua1arn 0:c2ca3c5ded62 2462 2007-05-04 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2463 * pbuf.c, pbuf.h, etharp.c: Further update to ARP queueing: Changed pbuf_copy()
ua1arn 0:c2ca3c5ded62 2464 implementation so that it can be reused (don't allocate the target
ua1arn 0:c2ca3c5ded62 2465 pbuf inside pbuf_copy()).
ua1arn 0:c2ca3c5ded62 2466
ua1arn 0:c2ca3c5ded62 2467 2007-05-04 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2468 * memp.c: checked in patch #5913: in memp_malloc() we can return memp as mem
ua1arn 0:c2ca3c5ded62 2469 to save a little RAM (next pointer of memp is not used while not in pool).
ua1arn 0:c2ca3c5ded62 2470
ua1arn 0:c2ca3c5ded62 2471 2007-05-03 "maq"
ua1arn 0:c2ca3c5ded62 2472 * sockets.c: Fix ioctl FIONREAD when some data remains from last recv.
ua1arn 0:c2ca3c5ded62 2473 (patch #3574).
ua1arn 0:c2ca3c5ded62 2474
ua1arn 0:c2ca3c5ded62 2475 2007-04-23 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2476 * loopif.c, loopif.h, opt.h, src/netif/FILES: fix bug #2595: "loopif results
ua1arn 0:c2ca3c5ded62 2477 in NULL reference for incoming TCP packets". Loopif has to be configured
ua1arn 0:c2ca3c5ded62 2478 (using LWIP_LOOPIF_MULTITHREADING) to directly call netif->input()
ua1arn 0:c2ca3c5ded62 2479 (multithreading environments, e.g. netif->input() = tcpip_input()) or
ua1arn 0:c2ca3c5ded62 2480 putting packets on a list that is fed to the stack by calling loopif_poll()
ua1arn 0:c2ca3c5ded62 2481 (single-thread / NO_SYS / polling environment where e.g.
ua1arn 0:c2ca3c5ded62 2482 netif->input() = ip_input).
ua1arn 0:c2ca3c5ded62 2483
ua1arn 0:c2ca3c5ded62 2484 2007-04-17 Jonathan Larmour
ua1arn 0:c2ca3c5ded62 2485 * pbuf.c: Use s32_t in pbuf_realloc(), as an s16_t can't reliably hold
ua1arn 0:c2ca3c5ded62 2486 the difference between two u16_t's.
ua1arn 0:c2ca3c5ded62 2487 * sockets.h: FD_SETSIZE needs to match number of sockets, which is
ua1arn 0:c2ca3c5ded62 2488 MEMP_NUM_NETCONN in sockets.c right now.
ua1arn 0:c2ca3c5ded62 2489
ua1arn 0:c2ca3c5ded62 2490 2007-04-12 Jonathan Larmour
ua1arn 0:c2ca3c5ded62 2491 * icmp.c: Reset IP header TTL in ICMP ECHO responses (bug #19580).
ua1arn 0:c2ca3c5ded62 2492
ua1arn 0:c2ca3c5ded62 2493 2007-04-12 Kieran Mansley
ua1arn 0:c2ca3c5ded62 2494 * tcp.c, tcp_in.c, tcp_out.c, tcp.h: Modify way the retransmission
ua1arn 0:c2ca3c5ded62 2495 timer is reset to fix bug#19434, with help from Oleg Tyshev.
ua1arn 0:c2ca3c5ded62 2496
ua1arn 0:c2ca3c5ded62 2497 2007-04-11 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2498 * etharp.c, pbuf.c, pbuf.h: 3rd fix for bug #11400 (arp-queuing): More pbufs than
ua1arn 0:c2ca3c5ded62 2499 previously thought need to be copied (everything but PBUF_ROM!). Cleaned up
ua1arn 0:c2ca3c5ded62 2500 pbuf.c: removed functions no needed any more (by etharp).
ua1arn 0:c2ca3c5ded62 2501
ua1arn 0:c2ca3c5ded62 2502 2007-04-11 Kieran Mansley
ua1arn 0:c2ca3c5ded62 2503 * inet.c, ip_addr.h, sockets.h, sys.h, tcp.h: Apply patch #5745: Fix
ua1arn 0:c2ca3c5ded62 2504 "Constant is long" warnings with 16bit compilers. Contributed by
ua1arn 0:c2ca3c5ded62 2505 avatar@mmlab.cse.yzu.edu.tw
ua1arn 0:c2ca3c5ded62 2506
ua1arn 0:c2ca3c5ded62 2507 2007-04-05 Frédéric Bernon, Jonathan Larmour
ua1arn 0:c2ca3c5ded62 2508 * api_msg.c: Fix bug #16830: "err_tcp() posts to connection mailbox when no pend on
ua1arn 0:c2ca3c5ded62 2509 the mailbox is active". Now, the post is only done during a connect, and do_send,
ua1arn 0:c2ca3c5ded62 2510 do_write and do_join_leave_group don't do anything if a previous error was signaled.
ua1arn 0:c2ca3c5ded62 2511
ua1arn 0:c2ca3c5ded62 2512 2007-04-03 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2513 * ip.c: Don't set the IP_DF ("Don't fragment") flag in the IP header in IP output
ua1arn 0:c2ca3c5ded62 2514 packets. See patch #5834.
ua1arn 0:c2ca3c5ded62 2515
ua1arn 0:c2ca3c5ded62 2516 2007-03-30 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2517 * api_msg.c: add a "pcb_new" helper function to avoid redundant code, and to add
ua1arn 0:c2ca3c5ded62 2518 missing pcb allocations checking (in do_bind, and for each raw_new). Fix style.
ua1arn 0:c2ca3c5ded62 2519
ua1arn 0:c2ca3c5ded62 2520 2007-03-30 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2521 * most of files: prefix all debug.h define with "LWIP_" to avoid any conflict with
ua1arn 0:c2ca3c5ded62 2522 others environment defines (these were too "generic").
ua1arn 0:c2ca3c5ded62 2523
ua1arn 0:c2ca3c5ded62 2524 2007-03-28 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2525 * api.h, api_lib.c, sockets.c: netbuf_ref doesn't check its internal pbuf_alloc call
ua1arn 0:c2ca3c5ded62 2526 result and can cause a crash. lwip_send now check netbuf_ref result.
ua1arn 0:c2ca3c5ded62 2527
ua1arn 0:c2ca3c5ded62 2528 2007-03-28 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2529 * sockets.c Remove "#include <errno.h>" from sockets.c to avoid multiple
ua1arn 0:c2ca3c5ded62 2530 definition of macros (in errno.h and lwip/arch.h) if LWIP_PROVIDE_ERRNO is
ua1arn 0:c2ca3c5ded62 2531 defined. This is the way it should have been already (looking at
ua1arn 0:c2ca3c5ded62 2532 doc/sys_arch.txt)
ua1arn 0:c2ca3c5ded62 2533
ua1arn 0:c2ca3c5ded62 2534 2007-03-28 Kieran Mansley
ua1arn 0:c2ca3c5ded62 2535 * opt.h Change default PBUF_POOL_BUFSIZE (again) to accomodate default MSS +
ua1arn 0:c2ca3c5ded62 2536 IP and TCP headers *and* physical link headers
ua1arn 0:c2ca3c5ded62 2537
ua1arn 0:c2ca3c5ded62 2538 2007-03-26 Frédéric Bernon (based on patch from Dmitry Potapov)
ua1arn 0:c2ca3c5ded62 2539 * api_lib.c: patch for netconn_write(), fixes a possible race condition which cause
ua1arn 0:c2ca3c5ded62 2540 to send some garbage. It is not a definitive solution, but the patch does solve
ua1arn 0:c2ca3c5ded62 2541 the problem for most cases.
ua1arn 0:c2ca3c5ded62 2542
ua1arn 0:c2ca3c5ded62 2543 2007-03-22 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2544 * api_msg.h, api_msg.c: Remove obsolete API_MSG_ACCEPT and do_accept (never used).
ua1arn 0:c2ca3c5ded62 2545
ua1arn 0:c2ca3c5ded62 2546 2007-03-22 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2547 * api_lib.c: somes resources couldn't be freed if there was errors during
ua1arn 0:c2ca3c5ded62 2548 netconn_new_with_proto_and_callback.
ua1arn 0:c2ca3c5ded62 2549
ua1arn 0:c2ca3c5ded62 2550 2007-03-22 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2551 * ethernetif.c: update netif->input calls to check return value. In older ports,
ua1arn 0:c2ca3c5ded62 2552 it's a good idea to upgrade them, even if before, there could be another problem
ua1arn 0:c2ca3c5ded62 2553 (access to an uninitialized mailbox).
ua1arn 0:c2ca3c5ded62 2554
ua1arn 0:c2ca3c5ded62 2555 2007-03-21 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2556 * sockets.c: fixed bug #5067 (essentialy a signed/unsigned warning fixed
ua1arn 0:c2ca3c5ded62 2557 by casting to unsigned).
ua1arn 0:c2ca3c5ded62 2558
ua1arn 0:c2ca3c5ded62 2559 2007-03-21 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2560 * api_lib.c, api_msg.c, tcpip.c: integrate sys_mbox_fetch(conn->mbox, NULL) calls from
ua1arn 0:c2ca3c5ded62 2561 api_lib.c to tcpip.c's tcpip_apimsg(). Now, use a local variable and not a
ua1arn 0:c2ca3c5ded62 2562 dynamic one from memp to send tcpip_msg to tcpip_thread in a synchrone call.
ua1arn 0:c2ca3c5ded62 2563 Free tcpip_msg from tcpip_apimsg is not done in tcpip_thread. This give a
ua1arn 0:c2ca3c5ded62 2564 faster and more reliable communication between api_lib and tcpip.
ua1arn 0:c2ca3c5ded62 2565
ua1arn 0:c2ca3c5ded62 2566 2007-03-21 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2567 * opt.h: Add LWIP_NETIF_CALLBACK (to avoid compiler warning) and set it to 0.
ua1arn 0:c2ca3c5ded62 2568
ua1arn 0:c2ca3c5ded62 2569 2007-03-21 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2570 * api_msg.c, igmp.c, igmp.h: Fix C++ style comments
ua1arn 0:c2ca3c5ded62 2571
ua1arn 0:c2ca3c5ded62 2572 2007-03-21 Kieran Mansley
ua1arn 0:c2ca3c5ded62 2573 * opt.h Change default PBUF_POOL_BUFSIZE to accomodate default MSS +
ua1arn 0:c2ca3c5ded62 2574 IP and TCP headers
ua1arn 0:c2ca3c5ded62 2575
ua1arn 0:c2ca3c5ded62 2576 2007-03-21 Kieran Mansley
ua1arn 0:c2ca3c5ded62 2577 * Fix all uses of pbuf_header to check the return value. In some
ua1arn 0:c2ca3c5ded62 2578 cases just assert if it fails as I'm not sure how to fix them, but
ua1arn 0:c2ca3c5ded62 2579 this is no worse than before when they would carry on regardless
ua1arn 0:c2ca3c5ded62 2580 of the failure.
ua1arn 0:c2ca3c5ded62 2581
ua1arn 0:c2ca3c5ded62 2582 2007-03-21 Kieran Mansley
ua1arn 0:c2ca3c5ded62 2583 * sockets.c, igmp.c, igmp.h, memp.h: Fix C++ style comments and
ua1arn 0:c2ca3c5ded62 2584 comment out missing header include in icmp.c
ua1arn 0:c2ca3c5ded62 2585
ua1arn 0:c2ca3c5ded62 2586 2007-03-20 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2587 * memp.h, stats.c: Fix stats_display function where memp_names table wasn't
ua1arn 0:c2ca3c5ded62 2588 synchronized with memp.h.
ua1arn 0:c2ca3c5ded62 2589
ua1arn 0:c2ca3c5ded62 2590 2007-03-20 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2591 * tcpip.c: Initialize tcpip's mbox, and verify if initialized in tcpip_input,
ua1arn 0:c2ca3c5ded62 2592 tcpip_ethinput, tcpip_callback, tcpip_apimsg, to fix a init problem with
ua1arn 0:c2ca3c5ded62 2593 network interfaces. Also fix a compiler warning.
ua1arn 0:c2ca3c5ded62 2594
ua1arn 0:c2ca3c5ded62 2595 2007-03-20 Kieran Mansley
ua1arn 0:c2ca3c5ded62 2596 * udp.c: Only try and use pbuf_header() to make space for headers if
ua1arn 0:c2ca3c5ded62 2597 not a ROM or REF pbuf.
ua1arn 0:c2ca3c5ded62 2598
ua1arn 0:c2ca3c5ded62 2599 2007-03-19 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2600 * api_msg.h, api_msg.c, tcpip.h, tcpip.c: Add return types to tcpip_apimsg()
ua1arn 0:c2ca3c5ded62 2601 and api_msg_post().
ua1arn 0:c2ca3c5ded62 2602
ua1arn 0:c2ca3c5ded62 2603 2007-03-19 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2604 * Remove unimplemented "memp_realloc" function from memp.h.
ua1arn 0:c2ca3c5ded62 2605
ua1arn 0:c2ca3c5ded62 2606 2007-03-11 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2607 * pbuf.c: checked in patch #5796: pbuf_alloc: len field claculation caused
ua1arn 0:c2ca3c5ded62 2608 memory corruption.
ua1arn 0:c2ca3c5ded62 2609
ua1arn 0:c2ca3c5ded62 2610 2007-03-11 Simon Goldschmidt (based on patch from Dmitry Potapov)
ua1arn 0:c2ca3c5ded62 2611 * api_lib.c, sockets.c, api.h, api_msg.h, sockets.h: Fixed bug #19251
ua1arn 0:c2ca3c5ded62 2612 (missing `const' qualifier in socket functions), to get more compatible to
ua1arn 0:c2ca3c5ded62 2613 standard POSIX sockets.
ua1arn 0:c2ca3c5ded62 2614
ua1arn 0:c2ca3c5ded62 2615 2007-03-11 Frédéric Bernon (based on patch from Dmitry Potapov)
ua1arn 0:c2ca3c5ded62 2616 * sockets.c: Add asserts inside bind, connect and sendto to check input
ua1arn 0:c2ca3c5ded62 2617 parameters. Remove excessive set_errno() calls after get_socket(), because
ua1arn 0:c2ca3c5ded62 2618 errno is set inside of get_socket(). Move last sock_set_errno() inside
ua1arn 0:c2ca3c5ded62 2619 lwip_close.
ua1arn 0:c2ca3c5ded62 2620
ua1arn 0:c2ca3c5ded62 2621 2007-03-09 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2622 * memp.c: Fixed bug #11400: New etharp queueing introduced bug: memp_memory
ua1arn 0:c2ca3c5ded62 2623 was allocated too small.
ua1arn 0:c2ca3c5ded62 2624
ua1arn 0:c2ca3c5ded62 2625 2007-03-06 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2626 * tcpip.c: Initialize dhcp timers in tcpip_thread (if LWIP_DHCP) to protect
ua1arn 0:c2ca3c5ded62 2627 the stack from concurrent access.
ua1arn 0:c2ca3c5ded62 2628
ua1arn 0:c2ca3c5ded62 2629 2007-03-06 Frédéric Bernon, Dmitry Potapov
ua1arn 0:c2ca3c5ded62 2630 * tcpip.c, ip_frag.c, ethernetif.c: Fix some build problems, and a redundancy
ua1arn 0:c2ca3c5ded62 2631 call to "lwip_stats.link.recv++;" in low_level_input() & ethernetif_input().
ua1arn 0:c2ca3c5ded62 2632
ua1arn 0:c2ca3c5ded62 2633 2007-03-06 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2634 * ip_frag.c, ip_frag.h: Reduce code size: don't include code in those files
ua1arn 0:c2ca3c5ded62 2635 if IP_FRAG == 0 and IP_REASSEMBLY == 0
ua1arn 0:c2ca3c5ded62 2636
ua1arn 0:c2ca3c5ded62 2637 2007-03-06 Frédéric Bernon, Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2638 * opt.h, ip_frag.h, tcpip.h, tcpip.c, ethernetif.c: add new configuration
ua1arn 0:c2ca3c5ded62 2639 option named ETHARP_TCPIP_ETHINPUT, which enable the new tcpip_ethinput.
ua1arn 0:c2ca3c5ded62 2640 Allow to do ARP processing for incoming packets inside tcpip_thread
ua1arn 0:c2ca3c5ded62 2641 (protecting ARP layer against concurrent access). You can also disable
ua1arn 0:c2ca3c5ded62 2642 old code using tcp_input with new define ETHARP_TCPIP_INPUT set to 0.
ua1arn 0:c2ca3c5ded62 2643 Older ports have to use tcpip_ethinput.
ua1arn 0:c2ca3c5ded62 2644
ua1arn 0:c2ca3c5ded62 2645 2007-03-06 Simon Goldschmidt (based on patch from Dmitry Potapov)
ua1arn 0:c2ca3c5ded62 2646 * err.h, err.c: fixed compiler warning "initialization dircards qualifiers
ua1arn 0:c2ca3c5ded62 2647 from pointer target type"
ua1arn 0:c2ca3c5ded62 2648
ua1arn 0:c2ca3c5ded62 2649 2007-03-05 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2650 * opt.h, sockets.h: add new configuration options (LWIP_POSIX_SOCKETS_IO_NAMES,
ua1arn 0:c2ca3c5ded62 2651 ETHARP_TRUST_IP_MAC, review SO_REUSE)
ua1arn 0:c2ca3c5ded62 2652
ua1arn 0:c2ca3c5ded62 2653 2007-03-04 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2654 * api_msg.c: Remove some compiler warnings : parameter "pcb" was never
ua1arn 0:c2ca3c5ded62 2655 referenced.
ua1arn 0:c2ca3c5ded62 2656
ua1arn 0:c2ca3c5ded62 2657 2007-03-04 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2658 * api_lib.c: Fix "[patch #5764] api_lib.c cleanup: after patch #5687" (from
ua1arn 0:c2ca3c5ded62 2659 Dmitry Potapov).
ua1arn 0:c2ca3c5ded62 2660 The api_msg struct stay on the stack (not moved to netconn struct).
ua1arn 0:c2ca3c5ded62 2661
ua1arn 0:c2ca3c5ded62 2662 2007-03-04 Simon Goldschmidt (based on patch from Dmitry Potapov)
ua1arn 0:c2ca3c5ded62 2663 * pbuf.c: Fix BUG#19168 - pbuf_free can cause deadlock (if
ua1arn 0:c2ca3c5ded62 2664 SYS_LIGHTWEIGHT_PROT=1 & freeing PBUF_RAM when mem_sem is not available)
ua1arn 0:c2ca3c5ded62 2665 Also fixed cast warning in pbuf_alloc()
ua1arn 0:c2ca3c5ded62 2666
ua1arn 0:c2ca3c5ded62 2667 2007-03-04 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2668 * etharp.c, etharp.h, memp.c, memp.h, opt.h: Fix BUG#11400 - don't corrupt
ua1arn 0:c2ca3c5ded62 2669 existing pbuf chain when enqueuing multiple pbufs to a pending ARP request
ua1arn 0:c2ca3c5ded62 2670
ua1arn 0:c2ca3c5ded62 2671 2007-03-03 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2672 * udp.c: remove obsolete line "static struct udp_pcb *pcb_cache = NULL;"
ua1arn 0:c2ca3c5ded62 2673 It is static, and never used in udp.c except udp_init().
ua1arn 0:c2ca3c5ded62 2674
ua1arn 0:c2ca3c5ded62 2675 2007-03-02 Simon Goldschmidt
ua1arn 0:c2ca3c5ded62 2676 * tcpip.c: Moved call to ip_init(), udp_init() and tcp_init() from
ua1arn 0:c2ca3c5ded62 2677 tcpip_thread() to tcpip_init(). This way, raw API connections can be
ua1arn 0:c2ca3c5ded62 2678 initialized before tcpip_thread is running (e.g. before OS is started)
ua1arn 0:c2ca3c5ded62 2679
ua1arn 0:c2ca3c5ded62 2680 2007-03-02 Frédéric Bernon
ua1arn 0:c2ca3c5ded62 2681 * rawapi.txt: Fix documentation mismatch with etharp.h about etharp_tmr's call
ua1arn 0:c2ca3c5ded62 2682 interval.
ua1arn 0:c2ca3c5ded62 2683
ua1arn 0:c2ca3c5ded62 2684 2007-02-28 Kieran Mansley
ua1arn 0:c2ca3c5ded62 2685 * pbuf.c: Fix BUG#17645 - ensure pbuf payload pointer is not moved
ua1arn 0:c2ca3c5ded62 2686 outside the region of the pbuf by pbuf_header()
ua1arn 0:c2ca3c5ded62 2687
ua1arn 0:c2ca3c5ded62 2688 2007-02-28 Kieran Mansley
ua1arn 0:c2ca3c5ded62 2689 * sockets.c: Fix BUG#19161 - ensure milliseconds timeout is non-zero
ua1arn 0:c2ca3c5ded62 2690 when supplied timeout is also non-zero
ua1arn 0:c2ca3c5ded62 2691
ua1arn 0:c2ca3c5ded62 2692 (STABLE-1.2.0)
ua1arn 0:c2ca3c5ded62 2693
ua1arn 0:c2ca3c5ded62 2694 2006-12-05 Leon Woestenberg
ua1arn 0:c2ca3c5ded62 2695 * CHANGELOG: Mention STABLE-1.2.0 release.
ua1arn 0:c2ca3c5ded62 2696
ua1arn 0:c2ca3c5ded62 2697 ++ New features:
ua1arn 0:c2ca3c5ded62 2698
ua1arn 0:c2ca3c5ded62 2699 2006-12-01 Christiaan Simons
ua1arn 0:c2ca3c5ded62 2700 * mem.h, opt.h: Added MEM_LIBC_MALLOC option.
ua1arn 0:c2ca3c5ded62 2701 Note this is a workaround. Currently I have no other options left.
ua1arn 0:c2ca3c5ded62 2702
ua1arn 0:c2ca3c5ded62 2703 2006-10-26 Christiaan Simons (accepted patch by Jonathan Larmour)
ua1arn 0:c2ca3c5ded62 2704 * ipv4/ip_frag.c: rename MAX_MTU to IP_FRAG_MAX_MTU and move define
ua1arn 0:c2ca3c5ded62 2705 to include/lwip/opt.h.
ua1arn 0:c2ca3c5ded62 2706 * ipv4/lwip/ip_frag.h: Remove unused IP_REASS_INTERVAL.
ua1arn 0:c2ca3c5ded62 2707 Move IP_REASS_MAXAGE and IP_REASS_BUFSIZE to include/lwip/opt.h.
ua1arn 0:c2ca3c5ded62 2708 * opt.h: Add above new options.
ua1arn 0:c2ca3c5ded62 2709
ua1arn 0:c2ca3c5ded62 2710 2006-08-18 Christiaan Simons
ua1arn 0:c2ca3c5ded62 2711 * tcp_{in,out}.c: added SNMP counters.
ua1arn 0:c2ca3c5ded62 2712 * ipv4/ip.c: added SNMP counters.
ua1arn 0:c2ca3c5ded62 2713 * ipv4/ip_frag.c: added SNMP counters.
ua1arn 0:c2ca3c5ded62 2714
ua1arn 0:c2ca3c5ded62 2715 2006-08-08 Christiaan Simons
ua1arn 0:c2ca3c5ded62 2716 * etharp.{c,h}: added etharp_find_addr() to read
ua1arn 0:c2ca3c5ded62 2717 (stable) ethernet/IP address pair from ARP table
ua1arn 0:c2ca3c5ded62 2718
ua1arn 0:c2ca3c5ded62 2719 2006-07-14 Christiaan Simons
ua1arn 0:c2ca3c5ded62 2720 * mib_structs.c: added
ua1arn 0:c2ca3c5ded62 2721 * include/lwip/snmp_structs.h: added
ua1arn 0:c2ca3c5ded62 2722 * netif.{c,h}, netif/ethernetif.c: added SNMP statistics to netif struct
ua1arn 0:c2ca3c5ded62 2723
ua1arn 0:c2ca3c5ded62 2724 2006-07-06 Christiaan Simons
ua1arn 0:c2ca3c5ded62 2725 * snmp/asn1_{enc,dec}.c added
ua1arn 0:c2ca3c5ded62 2726 * snmp/mib2.c added
ua1arn 0:c2ca3c5ded62 2727 * snmp/msg_{in,out}.c added
ua1arn 0:c2ca3c5ded62 2728 * include/lwip/snmp_asn1.h added
ua1arn 0:c2ca3c5ded62 2729 * include/lwip/snmp_msg.h added
ua1arn 0:c2ca3c5ded62 2730 * doc/snmp_agent.txt added
ua1arn 0:c2ca3c5ded62 2731
ua1arn 0:c2ca3c5ded62 2732 2006-03-29 Christiaan Simons
ua1arn 0:c2ca3c5ded62 2733 * inet.c, inet.h: Added platform byteswap support.
ua1arn 0:c2ca3c5ded62 2734 Added LWIP_PLATFORM_BYTESWAP define (defaults to 0) and
ua1arn 0:c2ca3c5ded62 2735 optional LWIP_PLATFORM_HTONS(), LWIP_PLATFORM_HTONL() macros.
ua1arn 0:c2ca3c5ded62 2736
ua1arn 0:c2ca3c5ded62 2737 ++ Bug fixes:
ua1arn 0:c2ca3c5ded62 2738
ua1arn 0:c2ca3c5ded62 2739 2006-11-30 Christiaan Simons
ua1arn 0:c2ca3c5ded62 2740 * dhcp.c: Fixed false triggers of request_timeout.
ua1arn 0:c2ca3c5ded62 2741
ua1arn 0:c2ca3c5ded62 2742 2006-11-28 Christiaan Simons
ua1arn 0:c2ca3c5ded62 2743 * netif.c: In netif_add() fixed missing clear of ip_addr, netmask, gw and flags.
ua1arn 0:c2ca3c5ded62 2744
ua1arn 0:c2ca3c5ded62 2745 2006-10-11 Christiaan Simons
ua1arn 0:c2ca3c5ded62 2746 * api_lib.c etharp.c, ip.c, memp.c, stats.c, sys.{c,h} tcp.h:
ua1arn 0:c2ca3c5ded62 2747 Partially accepted patch #5449 for ANSI C compatibility / build fixes.
ua1arn 0:c2ca3c5ded62 2748 * ipv4/lwip/ip.h ipv6/lwip/ip.h: Corrected UDP-Lite protocol
ua1arn 0:c2ca3c5ded62 2749 identifier from 170 to 136 (bug #17574).
ua1arn 0:c2ca3c5ded62 2750
ua1arn 0:c2ca3c5ded62 2751 2006-10-10 Christiaan Simons
ua1arn 0:c2ca3c5ded62 2752 * api_msg.c: Fixed Nagle algorithm as reported by Bob Grice.
ua1arn 0:c2ca3c5ded62 2753
ua1arn 0:c2ca3c5ded62 2754 2006-08-17 Christiaan Simons
ua1arn 0:c2ca3c5ded62 2755 * udp.c: Fixed bug #17200, added check for broadcast
ua1arn 0:c2ca3c5ded62 2756 destinations for PCBs bound to a unicast address.
ua1arn 0:c2ca3c5ded62 2757
ua1arn 0:c2ca3c5ded62 2758 2006-08-07 Christiaan Simons
ua1arn 0:c2ca3c5ded62 2759 * api_msg.c: Flushing TCP output in do_close() (bug #15926).
ua1arn 0:c2ca3c5ded62 2760
ua1arn 0:c2ca3c5ded62 2761 2006-06-27 Christiaan Simons
ua1arn 0:c2ca3c5ded62 2762 * api_msg.c: Applied patch for cold case (bug #11135).
ua1arn 0:c2ca3c5ded62 2763 In accept_function() ensure newconn->callback is always initialized.
ua1arn 0:c2ca3c5ded62 2764
ua1arn 0:c2ca3c5ded62 2765 2006-06-15 Christiaan Simons
ua1arn 0:c2ca3c5ded62 2766 * mem.h: added MEM_SIZE_F alias to fix an ancient cold case (bug #1748),
ua1arn 0:c2ca3c5ded62 2767 facilitate printing of mem_size_t and u16_t statistics.
ua1arn 0:c2ca3c5ded62 2768
ua1arn 0:c2ca3c5ded62 2769 2006-06-14 Christiaan Simons
ua1arn 0:c2ca3c5ded62 2770 * api_msg.c: Applied patch #5146 to handle allocation failures
ua1arn 0:c2ca3c5ded62 2771 in accept() by Kevin Lawson.
ua1arn 0:c2ca3c5ded62 2772
ua1arn 0:c2ca3c5ded62 2773 2006-05-26 Christiaan Simons
ua1arn 0:c2ca3c5ded62 2774 * api_lib.c: Removed conn->sem creation and destruction
ua1arn 0:c2ca3c5ded62 2775 from netconn_write() and added sys_sem_new to netconn_new_*.
ua1arn 0:c2ca3c5ded62 2776
ua1arn 0:c2ca3c5ded62 2777 (STABLE-1_1_1)
ua1arn 0:c2ca3c5ded62 2778
ua1arn 0:c2ca3c5ded62 2779 2006-03-03 Christiaan Simons
ua1arn 0:c2ca3c5ded62 2780 * ipv4/ip_frag.c: Added bound-checking assertions on ip_reassbitmap
ua1arn 0:c2ca3c5ded62 2781 access and added pbuf_alloc() return value checks.
ua1arn 0:c2ca3c5ded62 2782
ua1arn 0:c2ca3c5ded62 2783 2006-01-01 Leon Woestenberg <leon.woestenberg@gmx.net>
ua1arn 0:c2ca3c5ded62 2784 * tcp_{in,out}.c, tcp_out.c: Removed 'even sndbuf' fix in TCP, which is
ua1arn 0:c2ca3c5ded62 2785 now handled by the checksum routine properly.
ua1arn 0:c2ca3c5ded62 2786
ua1arn 0:c2ca3c5ded62 2787 2006-02-27 Leon Woestenberg <leon.woestenberg@gmx.net>
ua1arn 0:c2ca3c5ded62 2788 * pbuf.c: Fix alignment; pbuf_init() would not work unless
ua1arn 0:c2ca3c5ded62 2789 pbuf_pool_memory[] was properly aligned. (Patch by Curt McDowell.)
ua1arn 0:c2ca3c5ded62 2790
ua1arn 0:c2ca3c5ded62 2791 2005-12-20 Leon Woestenberg <leon.woestenberg@gmx.net>
ua1arn 0:c2ca3c5ded62 2792 * tcp.c: Remove PCBs which stay in LAST_ACK state too long. Patch
ua1arn 0:c2ca3c5ded62 2793 submitted by Mitrani Hiroshi.
ua1arn 0:c2ca3c5ded62 2794
ua1arn 0:c2ca3c5ded62 2795 2005-12-15 Christiaan Simons
ua1arn 0:c2ca3c5ded62 2796 * inet.c: Disabled the added summing routine to preserve code space.
ua1arn 0:c2ca3c5ded62 2797
ua1arn 0:c2ca3c5ded62 2798 2005-12-14 Leon Woestenberg <leon.woestenberg@gmx.net>
ua1arn 0:c2ca3c5ded62 2799 * tcp_in.c: Duplicate FIN ACK race condition fix by Kelvin Lawson.
ua1arn 0:c2ca3c5ded62 2800 Added Curt McDowell's optimized checksumming routine for future
ua1arn 0:c2ca3c5ded62 2801 inclusion. Need to create test case for unaliged, aligned, odd,
ua1arn 0:c2ca3c5ded62 2802 even length combination of cases on various endianess machines.
ua1arn 0:c2ca3c5ded62 2803
ua1arn 0:c2ca3c5ded62 2804 2005-12-09 Christiaan Simons
ua1arn 0:c2ca3c5ded62 2805 * inet.c: Rewrote standard checksum routine in proper portable C.
ua1arn 0:c2ca3c5ded62 2806
ua1arn 0:c2ca3c5ded62 2807 2005-11-25 Christiaan Simons
ua1arn 0:c2ca3c5ded62 2808 * udp.c tcp.c: Removed SO_REUSE hack. Should reside in socket code only.
ua1arn 0:c2ca3c5ded62 2809 * *.c: introduced cc.h LWIP_DEBUG formatters matching the u16_t, s16_t,
ua1arn 0:c2ca3c5ded62 2810 u32_t, s32_t typedefs. This solves most debug word-length assumes.
ua1arn 0:c2ca3c5ded62 2811
ua1arn 0:c2ca3c5ded62 2812 2005-07-17 Leon Woestenberg <leon.woestenberg@gmx.net>
ua1arn 0:c2ca3c5ded62 2813 * inet.c: Fixed unaligned 16-bit access in the standard checksum
ua1arn 0:c2ca3c5ded62 2814 routine by Peter Jolasson.
ua1arn 0:c2ca3c5ded62 2815 * slipif.c: Fixed implementation assumption of single-pbuf datagrams.
ua1arn 0:c2ca3c5ded62 2816
ua1arn 0:c2ca3c5ded62 2817 2005-02-04 Leon Woestenberg <leon.woestenberg@gmx.net>
ua1arn 0:c2ca3c5ded62 2818 * tcp_out.c: Fixed uninitialized 'queue' referenced in memerr branch.
ua1arn 0:c2ca3c5ded62 2819 * tcp_{out|in}.c: Applied patch fixing unaligned access.
ua1arn 0:c2ca3c5ded62 2820
ua1arn 0:c2ca3c5ded62 2821 2005-01-04 Leon Woestenberg <leon.woestenberg@gmx.net>
ua1arn 0:c2ca3c5ded62 2822 * pbuf.c: Fixed missing semicolon after LWIP_DEBUG statement.
ua1arn 0:c2ca3c5ded62 2823
ua1arn 0:c2ca3c5ded62 2824 2005-01-03 Leon Woestenberg <leon.woestenberg@gmx.net>
ua1arn 0:c2ca3c5ded62 2825 * udp.c: UDP pcb->recv() was called even when it was NULL.
ua1arn 0:c2ca3c5ded62 2826
ua1arn 0:c2ca3c5ded62 2827 (STABLE-1_1_0)
ua1arn 0:c2ca3c5ded62 2828
ua1arn 0:c2ca3c5ded62 2829 2004-12-28 Leon Woestenberg <leon.woestenberg@gmx.net>
ua1arn 0:c2ca3c5ded62 2830 * etharp.*: Disabled multiple packets on the ARP queue.
ua1arn 0:c2ca3c5ded62 2831 This clashes with TCP queueing.
ua1arn 0:c2ca3c5ded62 2832
ua1arn 0:c2ca3c5ded62 2833 2004-11-28 Leon Woestenberg <leon.woestenberg@gmx.net>
ua1arn 0:c2ca3c5ded62 2834 * etharp.*: Fixed race condition from ARP request to ARP timeout.
ua1arn 0:c2ca3c5ded62 2835 Halved the ARP period, doubled the period counts.
ua1arn 0:c2ca3c5ded62 2836 ETHARP_MAX_PENDING now should be at least 2. This prevents
ua1arn 0:c2ca3c5ded62 2837 the counter from reaching 0 right away (which would allow
ua1arn 0:c2ca3c5ded62 2838 too little time for ARP responses to be received).
ua1arn 0:c2ca3c5ded62 2839
ua1arn 0:c2ca3c5ded62 2840 2004-11-25 Leon Woestenberg <leon.woestenberg@gmx.net>
ua1arn 0:c2ca3c5ded62 2841 * dhcp.c: Decline messages were not multicast but unicast.
ua1arn 0:c2ca3c5ded62 2842 * etharp.c: ETHARP_CREATE is renamed to ETHARP_TRY_HARD.
ua1arn 0:c2ca3c5ded62 2843 Do not try hard to insert arbitrary packet's source address,
ua1arn 0:c2ca3c5ded62 2844 etharp_ip_input() now calls etharp_update() without ETHARP_TRY_HARD.
ua1arn 0:c2ca3c5ded62 2845 etharp_query() now always DOES call ETHARP_TRY_HARD so that users
ua1arn 0:c2ca3c5ded62 2846 querying an address will see it appear in the cache (DHCP could
ua1arn 0:c2ca3c5ded62 2847 suffer from this when a server invalidly gave an in-use address.)
ua1arn 0:c2ca3c5ded62 2848 * ipv4/ip_addr.h: Renamed ip_addr_maskcmp() to _netcmp() as we are
ua1arn 0:c2ca3c5ded62 2849 comparing network addresses (identifiers), not the network masks
ua1arn 0:c2ca3c5ded62 2850 themselves.
ua1arn 0:c2ca3c5ded62 2851 * ipv4/ip_addr.c: ip_addr_isbroadcast() now checks that the given
ua1arn 0:c2ca3c5ded62 2852 IP address actually belongs to the network of the given interface.
ua1arn 0:c2ca3c5ded62 2853
ua1arn 0:c2ca3c5ded62 2854 2004-11-24 Kieran Mansley <kjm25@cam.ac.uk>
ua1arn 0:c2ca3c5ded62 2855 * tcp.c: Increment pcb->snd_buf when ACK is received in SYN_SENT state.
ua1arn 0:c2ca3c5ded62 2856
ua1arn 0:c2ca3c5ded62 2857 (STABLE-1_1_0-RC1)
ua1arn 0:c2ca3c5ded62 2858
ua1arn 0:c2ca3c5ded62 2859 2004-10-16 Kieran Mansley <kjm25@cam.ac.uk>
ua1arn 0:c2ca3c5ded62 2860 * tcp.c: Add code to tcp_recved() to send an ACK (window update) immediately,
ua1arn 0:c2ca3c5ded62 2861 even if one is already pending, if the rcv_wnd is above a threshold
ua1arn 0:c2ca3c5ded62 2862 (currently TCP_WND/2). This avoids waiting for a timer to expire to send a
ua1arn 0:c2ca3c5ded62 2863 delayed ACK in order to open the window if the stack is only receiving data.
ua1arn 0:c2ca3c5ded62 2864
ua1arn 0:c2ca3c5ded62 2865 2004-09-12 Kieran Mansley <kjm25@cam.ac.uk>
ua1arn 0:c2ca3c5ded62 2866 * tcp*.*: Retransmit time-out handling improvement by Sam Jansen.
ua1arn 0:c2ca3c5ded62 2867
ua1arn 0:c2ca3c5ded62 2868 2004-08-20 Tony Mountifield <tony@softins.co.uk>
ua1arn 0:c2ca3c5ded62 2869 * etharp.c: Make sure the first pbuf queued on an ARP entry
ua1arn 0:c2ca3c5ded62 2870 is properly ref counted.
ua1arn 0:c2ca3c5ded62 2871
ua1arn 0:c2ca3c5ded62 2872 2004-07-27 Tony Mountifield <tony@softins.co.uk>
ua1arn 0:c2ca3c5ded62 2873 * debug.h: Added (int) cast in LWIP_DEBUGF() to avoid compiler
ua1arn 0:c2ca3c5ded62 2874 warnings about comparison.
ua1arn 0:c2ca3c5ded62 2875 * pbuf.c: Stopped compiler complaining of empty if statement
ua1arn 0:c2ca3c5ded62 2876 when LWIP_DEBUGF() empty. Closed an unclosed comment.
ua1arn 0:c2ca3c5ded62 2877 * tcp.c: Stopped compiler complaining of empty if statement
ua1arn 0:c2ca3c5ded62 2878 when LWIP_DEBUGF() empty.
ua1arn 0:c2ca3c5ded62 2879 * ip.h Corrected IPH_TOS() macro: returns a byte, so doesn't need htons().
ua1arn 0:c2ca3c5ded62 2880 * inet.c: Added a couple of casts to quiet the compiler.
ua1arn 0:c2ca3c5ded62 2881 No need to test isascii(c) before isdigit(c) or isxdigit(c).
ua1arn 0:c2ca3c5ded62 2882
ua1arn 0:c2ca3c5ded62 2883 2004-07-22 Tony Mountifield <tony@softins.co.uk>
ua1arn 0:c2ca3c5ded62 2884 * inet.c: Made data types consistent in inet_ntoa().
ua1arn 0:c2ca3c5ded62 2885 Added casts for return values of checksum routines, to pacify compiler.
ua1arn 0:c2ca3c5ded62 2886 * ip_frag.c, tcp_out.c, sockets.c, pbuf.c
ua1arn 0:c2ca3c5ded62 2887 Small corrections to some debugging statements, to pacify compiler.
ua1arn 0:c2ca3c5ded62 2888
ua1arn 0:c2ca3c5ded62 2889 2004-07-21 Tony Mountifield <tony@softins.co.uk>
ua1arn 0:c2ca3c5ded62 2890 * etharp.c: Removed spurious semicolon and added missing end-of-comment.
ua1arn 0:c2ca3c5ded62 2891 * ethernetif.c Updated low_level_output() to match prototype for
ua1arn 0:c2ca3c5ded62 2892 netif->linkoutput and changed low_level_input() similarly for consistency.
ua1arn 0:c2ca3c5ded62 2893 * api_msg.c: Changed recv_raw() from int to u8_t, to match prototype
ua1arn 0:c2ca3c5ded62 2894 of raw_recv() in raw.h and so avoid compiler error.
ua1arn 0:c2ca3c5ded62 2895 * sockets.c: Added trivial (int) cast to keep compiler happier.
ua1arn 0:c2ca3c5ded62 2896 * ip.c, netif.c Changed debug statements to use the tidier ip4_addrN() macros.
ua1arn 0:c2ca3c5ded62 2897
ua1arn 0:c2ca3c5ded62 2898 (STABLE-1_0_0)
ua1arn 0:c2ca3c5ded62 2899
ua1arn 0:c2ca3c5ded62 2900 ++ Changes:
ua1arn 0:c2ca3c5ded62 2901
ua1arn 0:c2ca3c5ded62 2902 2004-07-05 Leon Woestenberg <leon.woestenberg@gmx.net>
ua1arn 0:c2ca3c5ded62 2903 * sockets.*: Restructured LWIP_PRIVATE_TIMEVAL. Make sure
ua1arn 0:c2ca3c5ded62 2904 your cc.h file defines this either 1 or 0. If non-defined,
ua1arn 0:c2ca3c5ded62 2905 defaults to 1.
ua1arn 0:c2ca3c5ded62 2906 * .c: Added <string.h> and <errno.h> includes where used.
ua1arn 0:c2ca3c5ded62 2907 * etharp.c: Made some array indices unsigned.
ua1arn 0:c2ca3c5ded62 2908
ua1arn 0:c2ca3c5ded62 2909 2004-06-27 Leon Woestenberg <leon.woestenberg@gmx.net>
ua1arn 0:c2ca3c5ded62 2910 * netif.*: Added netif_set_up()/down().
ua1arn 0:c2ca3c5ded62 2911 * dhcp.c: Changes to restart program flow.
ua1arn 0:c2ca3c5ded62 2912
ua1arn 0:c2ca3c5ded62 2913 2004-05-07 Leon Woestenberg <leon.woestenberg@gmx.net>
ua1arn 0:c2ca3c5ded62 2914 * etharp.c: In find_entry(), instead of a list traversal per candidate, do a
ua1arn 0:c2ca3c5ded62 2915 single-pass lookup for different candidates. Should exploit locality.
ua1arn 0:c2ca3c5ded62 2916
ua1arn 0:c2ca3c5ded62 2917 2004-04-29 Leon Woestenberg <leon.woestenberg@gmx.net>
ua1arn 0:c2ca3c5ded62 2918 * tcp*.c: Cleaned up source comment documentation for Doxygen processing.
ua1arn 0:c2ca3c5ded62 2919 * opt.h: ETHARP_ALWAYS_INSERT option removed to comply with ARP RFC.
ua1arn 0:c2ca3c5ded62 2920 * etharp.c: update_arp_entry() only adds new ARP entries when adviced to by
ua1arn 0:c2ca3c5ded62 2921 the caller. This deprecates the ETHARP_ALWAYS_INSERT overrule option.
ua1arn 0:c2ca3c5ded62 2922
ua1arn 0:c2ca3c5ded62 2923 ++ Bug fixes:
ua1arn 0:c2ca3c5ded62 2924
ua1arn 0:c2ca3c5ded62 2925 2004-04-27 Leon Woestenberg <leon.woestenberg@gmx.net>
ua1arn 0:c2ca3c5ded62 2926 * etharp.c: Applied patch of bug #8708 by Toni Mountifield with a solution
ua1arn 0:c2ca3c5ded62 2927 suggested by Timmy Brolin. Fix for 32-bit processors that cannot access
ua1arn 0:c2ca3c5ded62 2928 non-aligned 32-bit words, such as soms 32-bit TCP/IP header fields. Fix
ua1arn 0:c2ca3c5ded62 2929 is to prefix the 14-bit Ethernet headers with two padding bytes.
ua1arn 0:c2ca3c5ded62 2930
ua1arn 0:c2ca3c5ded62 2931 2004-04-23 Leon Woestenberg <leon.woestenberg@gmx.net>
ua1arn 0:c2ca3c5ded62 2932 * ip_addr.c: Fix in the ip_addr_isbroadcast() check.
ua1arn 0:c2ca3c5ded62 2933 * etharp.c: Fixed the case where the packet that initiates the ARP request
ua1arn 0:c2ca3c5ded62 2934 is not queued, and gets lost. Fixed the case where the packets destination
ua1arn 0:c2ca3c5ded62 2935 address is already known; we now always queue the packet and perform an ARP
ua1arn 0:c2ca3c5ded62 2936 request.
ua1arn 0:c2ca3c5ded62 2937
ua1arn 0:c2ca3c5ded62 2938 (STABLE-0_7_0)
ua1arn 0:c2ca3c5ded62 2939
ua1arn 0:c2ca3c5ded62 2940 ++ Bug fixes:
ua1arn 0:c2ca3c5ded62 2941
ua1arn 0:c2ca3c5ded62 2942 * Fixed TCP bug for SYN_SENT to ESTABLISHED state transition.
ua1arn 0:c2ca3c5ded62 2943 * Fixed TCP bug in dequeueing of FIN from out of order segment queue.
ua1arn 0:c2ca3c5ded62 2944 * Fixed two possible NULL references in rare cases.
ua1arn 0:c2ca3c5ded62 2945
ua1arn 0:c2ca3c5ded62 2946 (STABLE-0_6_6)
ua1arn 0:c2ca3c5ded62 2947
ua1arn 0:c2ca3c5ded62 2948 ++ Bug fixes:
ua1arn 0:c2ca3c5ded62 2949
ua1arn 0:c2ca3c5ded62 2950 * Fixed DHCP which did not include the IP address in DECLINE messages.
ua1arn 0:c2ca3c5ded62 2951
ua1arn 0:c2ca3c5ded62 2952 ++ Changes:
ua1arn 0:c2ca3c5ded62 2953
ua1arn 0:c2ca3c5ded62 2954 * etharp.c has been hauled over a bit.
ua1arn 0:c2ca3c5ded62 2955
ua1arn 0:c2ca3c5ded62 2956 (STABLE-0_6_5)
ua1arn 0:c2ca3c5ded62 2957
ua1arn 0:c2ca3c5ded62 2958 ++ Bug fixes:
ua1arn 0:c2ca3c5ded62 2959
ua1arn 0:c2ca3c5ded62 2960 * Fixed TCP bug induced by bad window resizing with unidirectional TCP traffic.
ua1arn 0:c2ca3c5ded62 2961 * Packets sent from ARP queue had invalid source hardware address.
ua1arn 0:c2ca3c5ded62 2962
ua1arn 0:c2ca3c5ded62 2963 ++ Changes:
ua1arn 0:c2ca3c5ded62 2964
ua1arn 0:c2ca3c5ded62 2965 * Pass-by ARP requests do now update the cache.
ua1arn 0:c2ca3c5ded62 2966
ua1arn 0:c2ca3c5ded62 2967 ++ New features:
ua1arn 0:c2ca3c5ded62 2968
ua1arn 0:c2ca3c5ded62 2969 * No longer dependent on ctype.h.
ua1arn 0:c2ca3c5ded62 2970 * New socket options.
ua1arn 0:c2ca3c5ded62 2971 * Raw IP pcb support.
ua1arn 0:c2ca3c5ded62 2972
ua1arn 0:c2ca3c5ded62 2973 (STABLE-0_6_4)
ua1arn 0:c2ca3c5ded62 2974
ua1arn 0:c2ca3c5ded62 2975 ++ Bug fixes:
ua1arn 0:c2ca3c5ded62 2976
ua1arn 0:c2ca3c5ded62 2977 * Some debug formatters and casts fixed.
ua1arn 0:c2ca3c5ded62 2978 * Numereous fixes in PPP.
ua1arn 0:c2ca3c5ded62 2979
ua1arn 0:c2ca3c5ded62 2980 ++ Changes:
ua1arn 0:c2ca3c5ded62 2981
ua1arn 0:c2ca3c5ded62 2982 * DEBUGF now is LWIP_DEBUGF
ua1arn 0:c2ca3c5ded62 2983 * pbuf_dechain() has been re-enabled.
ua1arn 0:c2ca3c5ded62 2984 * Mentioned the changed use of CVS branches in README.
ua1arn 0:c2ca3c5ded62 2985
ua1arn 0:c2ca3c5ded62 2986 (STABLE-0_6_3)
ua1arn 0:c2ca3c5ded62 2987
ua1arn 0:c2ca3c5ded62 2988 ++ Bug fixes:
ua1arn 0:c2ca3c5ded62 2989
ua1arn 0:c2ca3c5ded62 2990 * Fixed pool pbuf memory leak in pbuf_alloc().
ua1arn 0:c2ca3c5ded62 2991 Occured if not enough PBUF_POOL pbufs for a packet pbuf chain.
ua1arn 0:c2ca3c5ded62 2992 Reported by Savin Zlobec.
ua1arn 0:c2ca3c5ded62 2993
ua1arn 0:c2ca3c5ded62 2994 * PBUF_POOL chains had their tot_len field not set for non-first
ua1arn 0:c2ca3c5ded62 2995 pbufs. Fixed in pbuf_alloc().
ua1arn 0:c2ca3c5ded62 2996
ua1arn 0:c2ca3c5ded62 2997 ++ New features:
ua1arn 0:c2ca3c5ded62 2998
ua1arn 0:c2ca3c5ded62 2999 * Added PPP stack contributed by Marc Boucher
ua1arn 0:c2ca3c5ded62 3000
ua1arn 0:c2ca3c5ded62 3001 ++ Changes:
ua1arn 0:c2ca3c5ded62 3002
ua1arn 0:c2ca3c5ded62 3003 * Now drops short packets for ICMP/UDP/TCP protocols. More robust.
ua1arn 0:c2ca3c5ded62 3004
ua1arn 0:c2ca3c5ded62 3005 * ARP queueuing now queues the latest packet instead of the first.
ua1arn 0:c2ca3c5ded62 3006 This is the RFC recommended behaviour, but can be overridden in
ua1arn 0:c2ca3c5ded62 3007 lwipopts.h.
ua1arn 0:c2ca3c5ded62 3008
ua1arn 0:c2ca3c5ded62 3009 (0.6.2)
ua1arn 0:c2ca3c5ded62 3010
ua1arn 0:c2ca3c5ded62 3011 ++ Bugfixes:
ua1arn 0:c2ca3c5ded62 3012
ua1arn 0:c2ca3c5ded62 3013 * TCP has been fixed to deal with the new use of the pbuf->ref
ua1arn 0:c2ca3c5ded62 3014 counter.
ua1arn 0:c2ca3c5ded62 3015
ua1arn 0:c2ca3c5ded62 3016 * DHCP dhcp_inform() crash bug fixed.
ua1arn 0:c2ca3c5ded62 3017
ua1arn 0:c2ca3c5ded62 3018 ++ Changes:
ua1arn 0:c2ca3c5ded62 3019
ua1arn 0:c2ca3c5ded62 3020 * Removed pbuf_pool_free_cache and pbuf_pool_alloc_cache. Also removed
ua1arn 0:c2ca3c5ded62 3021 pbuf_refresh(). This has sped up pbuf pool operations considerably.
ua1arn 0:c2ca3c5ded62 3022 Implemented by David Haas.
ua1arn 0:c2ca3c5ded62 3023
ua1arn 0:c2ca3c5ded62 3024 (0.6.1)
ua1arn 0:c2ca3c5ded62 3025
ua1arn 0:c2ca3c5ded62 3026 ++ New features:
ua1arn 0:c2ca3c5ded62 3027
ua1arn 0:c2ca3c5ded62 3028 * The packet buffer implementation has been enhanced to support
ua1arn 0:c2ca3c5ded62 3029 zero-copy and copy-on-demand for packet buffers which have their
ua1arn 0:c2ca3c5ded62 3030 payloads in application-managed memory.
ua1arn 0:c2ca3c5ded62 3031 Implemented by David Haas.
ua1arn 0:c2ca3c5ded62 3032
ua1arn 0:c2ca3c5ded62 3033 Use PBUF_REF to make a pbuf refer to RAM. lwIP will use zero-copy
ua1arn 0:c2ca3c5ded62 3034 if an outgoing packet can be directly sent on the link, or perform
ua1arn 0:c2ca3c5ded62 3035 a copy-on-demand when necessary.
ua1arn 0:c2ca3c5ded62 3036
ua1arn 0:c2ca3c5ded62 3037 The application can safely assume the packet is sent, and the RAM
ua1arn 0:c2ca3c5ded62 3038 is available to the application directly after calling udp_send()
ua1arn 0:c2ca3c5ded62 3039 or similar function.
ua1arn 0:c2ca3c5ded62 3040
ua1arn 0:c2ca3c5ded62 3041 ++ Bugfixes:
ua1arn 0:c2ca3c5ded62 3042
ua1arn 0:c2ca3c5ded62 3043 * ARP_QUEUEING should now correctly work for all cases, including
ua1arn 0:c2ca3c5ded62 3044 PBUF_REF.
ua1arn 0:c2ca3c5ded62 3045 Implemented by Leon Woestenberg.
ua1arn 0:c2ca3c5ded62 3046
ua1arn 0:c2ca3c5ded62 3047 ++ Changes:
ua1arn 0:c2ca3c5ded62 3048
ua1arn 0:c2ca3c5ded62 3049 * IP_ADDR_ANY is no longer a NULL pointer. Instead, it is a pointer
ua1arn 0:c2ca3c5ded62 3050 to a '0.0.0.0' IP address.
ua1arn 0:c2ca3c5ded62 3051
ua1arn 0:c2ca3c5ded62 3052 * The packet buffer implementation is changed. The pbuf->ref counter
ua1arn 0:c2ca3c5ded62 3053 meaning has changed, and several pbuf functions have been
ua1arn 0:c2ca3c5ded62 3054 adapted accordingly.
ua1arn 0:c2ca3c5ded62 3055
ua1arn 0:c2ca3c5ded62 3056 * netif drivers have to be changed to set the hardware address length field
ua1arn 0:c2ca3c5ded62 3057 that must be initialized correctly by the driver (hint: 6 for Ethernet MAC).
ua1arn 0:c2ca3c5ded62 3058 See the contrib/ports/c16x cs8900 driver as a driver example.
ua1arn 0:c2ca3c5ded62 3059
ua1arn 0:c2ca3c5ded62 3060 * netif's have a dhcp field that must be initialized to NULL by the driver.
ua1arn 0:c2ca3c5ded62 3061 See the contrib/ports/c16x cs8900 driver as a driver example.
ua1arn 0:c2ca3c5ded62 3062
ua1arn 0:c2ca3c5ded62 3063 (0.5.x) This file has been unmaintained up to 0.6.1. All changes are
ua1arn 0:c2ca3c5ded62 3064 logged in CVS but have not been explained here.
ua1arn 0:c2ca3c5ded62 3065
ua1arn 0:c2ca3c5ded62 3066 (0.5.3) Changes since version 0.5.2
ua1arn 0:c2ca3c5ded62 3067
ua1arn 0:c2ca3c5ded62 3068 ++ Bugfixes:
ua1arn 0:c2ca3c5ded62 3069
ua1arn 0:c2ca3c5ded62 3070 * memp_malloc(MEMP_API_MSG) could fail with multiple application
ua1arn 0:c2ca3c5ded62 3071 threads because it wasn't protected by semaphores.
ua1arn 0:c2ca3c5ded62 3072
ua1arn 0:c2ca3c5ded62 3073 ++ Other changes:
ua1arn 0:c2ca3c5ded62 3074
ua1arn 0:c2ca3c5ded62 3075 * struct ip_addr now packed.
ua1arn 0:c2ca3c5ded62 3076
ua1arn 0:c2ca3c5ded62 3077 * The name of the time variable in arp.c has been changed to ctime
ua1arn 0:c2ca3c5ded62 3078 to avoid conflicts with the time() function.
ua1arn 0:c2ca3c5ded62 3079
ua1arn 0:c2ca3c5ded62 3080 (0.5.2) Changes since version 0.5.1
ua1arn 0:c2ca3c5ded62 3081
ua1arn 0:c2ca3c5ded62 3082 ++ New features:
ua1arn 0:c2ca3c5ded62 3083
ua1arn 0:c2ca3c5ded62 3084 * A new TCP function, tcp_tmr(), now handles both TCP timers.
ua1arn 0:c2ca3c5ded62 3085
ua1arn 0:c2ca3c5ded62 3086 ++ Bugfixes:
ua1arn 0:c2ca3c5ded62 3087
ua1arn 0:c2ca3c5ded62 3088 * A bug in tcp_parseopt() could cause the stack to hang because of a
ua1arn 0:c2ca3c5ded62 3089 malformed TCP option.
ua1arn 0:c2ca3c5ded62 3090
ua1arn 0:c2ca3c5ded62 3091 * The address of new connections in the accept() function in the BSD
ua1arn 0:c2ca3c5ded62 3092 socket library was not handled correctly.
ua1arn 0:c2ca3c5ded62 3093
ua1arn 0:c2ca3c5ded62 3094 * pbuf_dechain() did not update the ->tot_len field of the tail.
ua1arn 0:c2ca3c5ded62 3095
ua1arn 0:c2ca3c5ded62 3096 * Aborted TCP connections were not handled correctly in all
ua1arn 0:c2ca3c5ded62 3097 situations.
ua1arn 0:c2ca3c5ded62 3098
ua1arn 0:c2ca3c5ded62 3099 ++ Other changes:
ua1arn 0:c2ca3c5ded62 3100
ua1arn 0:c2ca3c5ded62 3101 * All protocol header structs are now packed.
ua1arn 0:c2ca3c5ded62 3102
ua1arn 0:c2ca3c5ded62 3103 * The ->len field in the tcp_seg structure now counts the actual
ua1arn 0:c2ca3c5ded62 3104 amount of data, and does not add one for SYN and FIN segments.
ua1arn 0:c2ca3c5ded62 3105
ua1arn 0:c2ca3c5ded62 3106 (0.5.1) Changes since version 0.5.0
ua1arn 0:c2ca3c5ded62 3107
ua1arn 0:c2ca3c5ded62 3108 ++ New features:
ua1arn 0:c2ca3c5ded62 3109
ua1arn 0:c2ca3c5ded62 3110 * Possible to run as a user process under Linux.
ua1arn 0:c2ca3c5ded62 3111
ua1arn 0:c2ca3c5ded62 3112 * Preliminary support for cross platform packed structs.
ua1arn 0:c2ca3c5ded62 3113
ua1arn 0:c2ca3c5ded62 3114 * ARP timer now implemented.
ua1arn 0:c2ca3c5ded62 3115
ua1arn 0:c2ca3c5ded62 3116 ++ Bugfixes:
ua1arn 0:c2ca3c5ded62 3117
ua1arn 0:c2ca3c5ded62 3118 * TCP output queue length was badly initialized when opening
ua1arn 0:c2ca3c5ded62 3119 connections.
ua1arn 0:c2ca3c5ded62 3120
ua1arn 0:c2ca3c5ded62 3121 * TCP delayed ACKs were not sent correctly.
ua1arn 0:c2ca3c5ded62 3122
ua1arn 0:c2ca3c5ded62 3123 * Explicit initialization of BSS segment variables.
ua1arn 0:c2ca3c5ded62 3124
ua1arn 0:c2ca3c5ded62 3125 * read() in BSD socket library could drop data.
ua1arn 0:c2ca3c5ded62 3126
ua1arn 0:c2ca3c5ded62 3127 * Problems with memory alignment.
ua1arn 0:c2ca3c5ded62 3128
ua1arn 0:c2ca3c5ded62 3129 * Situations when all TCP buffers were used could lead to
ua1arn 0:c2ca3c5ded62 3130 starvation.
ua1arn 0:c2ca3c5ded62 3131
ua1arn 0:c2ca3c5ded62 3132 * TCP MSS option wasn't parsed correctly.
ua1arn 0:c2ca3c5ded62 3133
ua1arn 0:c2ca3c5ded62 3134 * Problems with UDP checksum calculation.
ua1arn 0:c2ca3c5ded62 3135
ua1arn 0:c2ca3c5ded62 3136 * IP multicast address tests had endianess problems.
ua1arn 0:c2ca3c5ded62 3137
ua1arn 0:c2ca3c5ded62 3138 * ARP requests had wrong destination hardware address.
ua1arn 0:c2ca3c5ded62 3139
ua1arn 0:c2ca3c5ded62 3140 ++ Other changes:
ua1arn 0:c2ca3c5ded62 3141
ua1arn 0:c2ca3c5ded62 3142 * struct eth_addr changed from u16_t[3] array to u8_t[6].
ua1arn 0:c2ca3c5ded62 3143
ua1arn 0:c2ca3c5ded62 3144 * A ->linkoutput() member was added to struct netif.
ua1arn 0:c2ca3c5ded62 3145
ua1arn 0:c2ca3c5ded62 3146 * TCP and UDP ->dest_* struct members where changed to ->remote_*.
ua1arn 0:c2ca3c5ded62 3147
ua1arn 0:c2ca3c5ded62 3148 * ntoh* macros are now null definitions for big endian CPUs.
ua1arn 0:c2ca3c5ded62 3149
ua1arn 0:c2ca3c5ded62 3150 (0.5.0) Changes since version 0.4.2
ua1arn 0:c2ca3c5ded62 3151
ua1arn 0:c2ca3c5ded62 3152 ++ New features:
ua1arn 0:c2ca3c5ded62 3153
ua1arn 0:c2ca3c5ded62 3154 * Redesigned operating system emulation layer to make porting easier.
ua1arn 0:c2ca3c5ded62 3155
ua1arn 0:c2ca3c5ded62 3156 * Better control over TCP output buffers.
ua1arn 0:c2ca3c5ded62 3157
ua1arn 0:c2ca3c5ded62 3158 * Documenation added.
ua1arn 0:c2ca3c5ded62 3159
ua1arn 0:c2ca3c5ded62 3160 ++ Bugfixes:
ua1arn 0:c2ca3c5ded62 3161
ua1arn 0:c2ca3c5ded62 3162 * Locking issues in buffer management.
ua1arn 0:c2ca3c5ded62 3163
ua1arn 0:c2ca3c5ded62 3164 * Bugfixes in the sequential API.
ua1arn 0:c2ca3c5ded62 3165
ua1arn 0:c2ca3c5ded62 3166 * IP forwarding could cause memory leakage. This has been fixed.
ua1arn 0:c2ca3c5ded62 3167
ua1arn 0:c2ca3c5ded62 3168 ++ Other changes:
ua1arn 0:c2ca3c5ded62 3169
ua1arn 0:c2ca3c5ded62 3170 * Directory structure somewhat changed; the core/ tree has been
ua1arn 0:c2ca3c5ded62 3171 collapsed.
ua1arn 0:c2ca3c5ded62 3172
ua1arn 0:c2ca3c5ded62 3173 (0.4.2) Changes since version 0.4.1
ua1arn 0:c2ca3c5ded62 3174
ua1arn 0:c2ca3c5ded62 3175 ++ New features:
ua1arn 0:c2ca3c5ded62 3176
ua1arn 0:c2ca3c5ded62 3177 * Experimental ARP implementation added.
ua1arn 0:c2ca3c5ded62 3178
ua1arn 0:c2ca3c5ded62 3179 * Skeleton Ethernet driver added.
ua1arn 0:c2ca3c5ded62 3180
ua1arn 0:c2ca3c5ded62 3181 * Experimental BSD socket API library added.
ua1arn 0:c2ca3c5ded62 3182
ua1arn 0:c2ca3c5ded62 3183 ++ Bugfixes:
ua1arn 0:c2ca3c5ded62 3184
ua1arn 0:c2ca3c5ded62 3185 * In very intense situations, memory leakage could occur. This has
ua1arn 0:c2ca3c5ded62 3186 been fixed.
ua1arn 0:c2ca3c5ded62 3187
ua1arn 0:c2ca3c5ded62 3188 ++ Other changes:
ua1arn 0:c2ca3c5ded62 3189
ua1arn 0:c2ca3c5ded62 3190 * Variables named "data" and "code" have been renamed in order to
ua1arn 0:c2ca3c5ded62 3191 avoid name conflicts in certain compilers.
ua1arn 0:c2ca3c5ded62 3192
ua1arn 0:c2ca3c5ded62 3193 * Variable++ have in appliciable cases been translated to ++variable
ua1arn 0:c2ca3c5ded62 3194 since some compilers generate better code in the latter case.
ua1arn 0:c2ca3c5ded62 3195
ua1arn 0:c2ca3c5ded62 3196 (0.4.1) Changes since version 0.4
ua1arn 0:c2ca3c5ded62 3197
ua1arn 0:c2ca3c5ded62 3198 ++ New features:
ua1arn 0:c2ca3c5ded62 3199
ua1arn 0:c2ca3c5ded62 3200 * TCP: Connection attempts time out earlier than data
ua1arn 0:c2ca3c5ded62 3201 transmissions. Nagle algorithm implemented. Push flag set on the
ua1arn 0:c2ca3c5ded62 3202 last segment in a burst.
ua1arn 0:c2ca3c5ded62 3203
ua1arn 0:c2ca3c5ded62 3204 * UDP: experimental support for UDP-Lite extensions.
ua1arn 0:c2ca3c5ded62 3205
ua1arn 0:c2ca3c5ded62 3206 ++ Bugfixes:
ua1arn 0:c2ca3c5ded62 3207
ua1arn 0:c2ca3c5ded62 3208 * TCP: out of order segments were in some cases handled incorrectly,
ua1arn 0:c2ca3c5ded62 3209 and this has now been fixed. Delayed acknowledgements was broken
ua1arn 0:c2ca3c5ded62 3210 in 0.4, has now been fixed. Binding to an address that is in use
ua1arn 0:c2ca3c5ded62 3211 now results in an error. Reset connections sometimes hung an
ua1arn 0:c2ca3c5ded62 3212 application; this has been fixed.
ua1arn 0:c2ca3c5ded62 3213
ua1arn 0:c2ca3c5ded62 3214 * Checksum calculation sometimes failed for chained pbufs with odd
ua1arn 0:c2ca3c5ded62 3215 lengths. This has been fixed.
ua1arn 0:c2ca3c5ded62 3216
ua1arn 0:c2ca3c5ded62 3217 * API: a lot of bug fixes in the API. The UDP API has been improved
ua1arn 0:c2ca3c5ded62 3218 and tested. Error reporting and handling has been
ua1arn 0:c2ca3c5ded62 3219 improved. Logical flaws and race conditions for incoming TCP
ua1arn 0:c2ca3c5ded62 3220 connections has been found and removed.
ua1arn 0:c2ca3c5ded62 3221
ua1arn 0:c2ca3c5ded62 3222 * Memory manager: alignment issues. Reallocating memory sometimes
ua1arn 0:c2ca3c5ded62 3223 failed, this has been fixed.
ua1arn 0:c2ca3c5ded62 3224
ua1arn 0:c2ca3c5ded62 3225 * Generic library: bcopy was flawed and has been fixed.
ua1arn 0:c2ca3c5ded62 3226
ua1arn 0:c2ca3c5ded62 3227 ++ Other changes:
ua1arn 0:c2ca3c5ded62 3228
ua1arn 0:c2ca3c5ded62 3229 * API: all datatypes has been changed from generic ones such as
ua1arn 0:c2ca3c5ded62 3230 ints, to specified ones such as u16_t. Functions that return
ua1arn 0:c2ca3c5ded62 3231 errors now have the correct type (err_t).
ua1arn 0:c2ca3c5ded62 3232
ua1arn 0:c2ca3c5ded62 3233 * General: A lot of code cleaned up and debugging code removed. Many
ua1arn 0:c2ca3c5ded62 3234 portability issues have been fixed.
ua1arn 0:c2ca3c5ded62 3235
ua1arn 0:c2ca3c5ded62 3236 * The license was changed; the advertising clause was removed.
ua1arn 0:c2ca3c5ded62 3237
ua1arn 0:c2ca3c5ded62 3238 * C64 port added.
ua1arn 0:c2ca3c5ded62 3239
ua1arn 0:c2ca3c5ded62 3240 * Thanks: Huge thanks go to Dagan Galarneau, Horst Garnetzke, Petri
ua1arn 0:c2ca3c5ded62 3241 Kosunen, Mikael Caleres, and Frits Wilmink for reporting and
ua1arn 0:c2ca3c5ded62 3242 fixing bugs!
ua1arn 0:c2ca3c5ded62 3243
ua1arn 0:c2ca3c5ded62 3244 (0.4) Changes since version 0.3.1
ua1arn 0:c2ca3c5ded62 3245
ua1arn 0:c2ca3c5ded62 3246 * Memory management has been radically changed; instead of
ua1arn 0:c2ca3c5ded62 3247 allocating memory from a shared heap, memory for objects that are
ua1arn 0:c2ca3c5ded62 3248 rapidly allocated and deallocated is now kept in pools. Allocation
ua1arn 0:c2ca3c5ded62 3249 and deallocation from those memory pools is very fast. The shared
ua1arn 0:c2ca3c5ded62 3250 heap is still present but is used less frequently.
ua1arn 0:c2ca3c5ded62 3251
ua1arn 0:c2ca3c5ded62 3252 * The memory, memory pool, and packet buffer subsystems now support
ua1arn 0:c2ca3c5ded62 3253 4-, 2-, or 1-byte alignment.
ua1arn 0:c2ca3c5ded62 3254
ua1arn 0:c2ca3c5ded62 3255 * "Out of memory" situations are handled in a more robust way.
ua1arn 0:c2ca3c5ded62 3256
ua1arn 0:c2ca3c5ded62 3257 * Stack usage has been reduced.
ua1arn 0:c2ca3c5ded62 3258
ua1arn 0:c2ca3c5ded62 3259 * Easier configuration of lwIP parameters such as memory usage,
ua1arn 0:c2ca3c5ded62 3260 TTLs, statistics gathering, etc. All configuration parameters are
ua1arn 0:c2ca3c5ded62 3261 now kept in a single header file "lwipopts.h".
ua1arn 0:c2ca3c5ded62 3262
ua1arn 0:c2ca3c5ded62 3263 * The directory structure has been changed slightly so that all
ua1arn 0:c2ca3c5ded62 3264 architecture specific files are kept under the src/arch
ua1arn 0:c2ca3c5ded62 3265 hierarchy.
ua1arn 0:c2ca3c5ded62 3266
ua1arn 0:c2ca3c5ded62 3267 * Error propagation has been improved, both in the protocol modules
ua1arn 0:c2ca3c5ded62 3268 and in the API.
ua1arn 0:c2ca3c5ded62 3269
ua1arn 0:c2ca3c5ded62 3270 * The code for the RTXC architecture has been implemented, tested
ua1arn 0:c2ca3c5ded62 3271 and put to use.
ua1arn 0:c2ca3c5ded62 3272
ua1arn 0:c2ca3c5ded62 3273 * Bugs have been found and corrected in the TCP, UDP, IP, API, and
ua1arn 0:c2ca3c5ded62 3274 the Internet checksum modules.
ua1arn 0:c2ca3c5ded62 3275
ua1arn 0:c2ca3c5ded62 3276 * Bugs related to porting between a 32-bit and a 16-bit architecture
ua1arn 0:c2ca3c5ded62 3277 have been found and corrected.
ua1arn 0:c2ca3c5ded62 3278
ua1arn 0:c2ca3c5ded62 3279 * The license has been changed slightly to conform more with the
ua1arn 0:c2ca3c5ded62 3280 original BSD license, including the advertisement clause.
ua1arn 0:c2ca3c5ded62 3281
ua1arn 0:c2ca3c5ded62 3282 (0.3.1) Changes since version 0.3
ua1arn 0:c2ca3c5ded62 3283
ua1arn 0:c2ca3c5ded62 3284 * Fix of a fatal bug in the buffer management. Pbufs with allocated
ua1arn 0:c2ca3c5ded62 3285 RAM never returned the RAM when the pbuf was deallocated.
ua1arn 0:c2ca3c5ded62 3286
ua1arn 0:c2ca3c5ded62 3287 * TCP congestion control, window updates and retransmissions did not
ua1arn 0:c2ca3c5ded62 3288 work correctly. This has now been fixed.
ua1arn 0:c2ca3c5ded62 3289
ua1arn 0:c2ca3c5ded62 3290 * Bugfixes in the API.
ua1arn 0:c2ca3c5ded62 3291
ua1arn 0:c2ca3c5ded62 3292 (0.3) Changes since version 0.2
ua1arn 0:c2ca3c5ded62 3293
ua1arn 0:c2ca3c5ded62 3294 * New and improved directory structure. All include files are now
ua1arn 0:c2ca3c5ded62 3295 kept in a dedicated include/ directory.
ua1arn 0:c2ca3c5ded62 3296
ua1arn 0:c2ca3c5ded62 3297 * The API now has proper error handling. A new function,
ua1arn 0:c2ca3c5ded62 3298 netconn_err(), now returns an error code for the connection in
ua1arn 0:c2ca3c5ded62 3299 case of errors.
ua1arn 0:c2ca3c5ded62 3300
ua1arn 0:c2ca3c5ded62 3301 * Improvements in the memory management subsystem. The system now
ua1arn 0:c2ca3c5ded62 3302 keeps a pointer to the lowest free memory block. A new function,
ua1arn 0:c2ca3c5ded62 3303 mem_malloc2() tries to allocate memory once, and if it fails tries
ua1arn 0:c2ca3c5ded62 3304 to free some memory and retry the allocation.
ua1arn 0:c2ca3c5ded62 3305
ua1arn 0:c2ca3c5ded62 3306 * Much testing has been done with limited memory
ua1arn 0:c2ca3c5ded62 3307 configurations. lwIP now does a better job when overloaded.
ua1arn 0:c2ca3c5ded62 3308
ua1arn 0:c2ca3c5ded62 3309 * Some bugfixes and improvements to the buffer (pbuf) subsystem.
ua1arn 0:c2ca3c5ded62 3310
ua1arn 0:c2ca3c5ded62 3311 * Many bugfixes in the TCP code:
ua1arn 0:c2ca3c5ded62 3312
ua1arn 0:c2ca3c5ded62 3313 - Fixed a bug in tcp_close().
ua1arn 0:c2ca3c5ded62 3314
ua1arn 0:c2ca3c5ded62 3315 - The TCP receive window was incorrectly closed when out of
ua1arn 0:c2ca3c5ded62 3316 sequence segments was received. This has been fixed.
ua1arn 0:c2ca3c5ded62 3317
ua1arn 0:c2ca3c5ded62 3318 - Connections are now timed-out of the FIN-WAIT-2 state.
ua1arn 0:c2ca3c5ded62 3319
ua1arn 0:c2ca3c5ded62 3320 - The initial congestion window could in some cases be too
ua1arn 0:c2ca3c5ded62 3321 large. This has been fixed.
ua1arn 0:c2ca3c5ded62 3322
ua1arn 0:c2ca3c5ded62 3323 - The retransmission queue could in some cases be screwed up. This
ua1arn 0:c2ca3c5ded62 3324 has been fixed.
ua1arn 0:c2ca3c5ded62 3325
ua1arn 0:c2ca3c5ded62 3326 - TCP RST flag now handled correctly.
ua1arn 0:c2ca3c5ded62 3327
ua1arn 0:c2ca3c5ded62 3328 - Out of sequence data was in some cases never delivered to the
ua1arn 0:c2ca3c5ded62 3329 application. This has been fixed.
ua1arn 0:c2ca3c5ded62 3330
ua1arn 0:c2ca3c5ded62 3331 - Retransmitted segments now contain the correct acknowledgment
ua1arn 0:c2ca3c5ded62 3332 number and advertised window.
ua1arn 0:c2ca3c5ded62 3333
ua1arn 0:c2ca3c5ded62 3334 - TCP retransmission timeout backoffs are not correctly computed
ua1arn 0:c2ca3c5ded62 3335 (ala BSD). After a number of retransmissions, TCP now gives up
ua1arn 0:c2ca3c5ded62 3336 the connection.
ua1arn 0:c2ca3c5ded62 3337
ua1arn 0:c2ca3c5ded62 3338 * TCP connections now are kept on three lists, one for active
ua1arn 0:c2ca3c5ded62 3339 connections, one for listening connections, and one for
ua1arn 0:c2ca3c5ded62 3340 connections that are in TIME-WAIT. This greatly speeds up the fast
ua1arn 0:c2ca3c5ded62 3341 timeout processing for sending delayed ACKs.
ua1arn 0:c2ca3c5ded62 3342
ua1arn 0:c2ca3c5ded62 3343 * TCP now provides proper feedback to the application when a
ua1arn 0:c2ca3c5ded62 3344 connection has been successfully set up.
ua1arn 0:c2ca3c5ded62 3345
ua1arn 0:c2ca3c5ded62 3346 * More comments have been added to the code. The code has also been
ua1arn 0:c2ca3c5ded62 3347 somewhat cleaned up.
ua1arn 0:c2ca3c5ded62 3348
ua1arn 0:c2ca3c5ded62 3349 (0.2) Initial public release.