this repository aim to make the official ST DISCO F746NG demo from STM32Cube_FW_F7_V1.2.0 working on mbed.

Dependencies:   BSP_DISCO_F746NG_patch mbed-rtos mbed

Committer:
NirT
Date:
Mon Nov 02 23:38:08 2015 +0000
Revision:
0:c00e6c923941
Error: Incomplete type is not allowed in "patch/LwIP/src/include/lwip/dhcp.h", Line: 83, Col: 4; ; and more like this.

Who changed what in which revision?

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