forked from scionproto/scion-lwip
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGELOG
3339 lines (2490 loc) · 134 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
HISTORY
(CVS HEAD)
* [Enter new changes just after this line - do not remove this line]
++ New features:
2012-03-25: Simon Goldschmidt (idea by Mason)
* posix/*: added posix-compatibility include files posix/netdb.h and posix/sys/socket.h
which are a simple wrapper to the correct lwIP include files.
2012-01-16: Simon Goldschmidt
* opt.h, icmp.c: Added option CHECKSUM_GEN_ICMP
2011-12-17: Simon Goldschmidt
* ip.h: implemented API functions to access so_options of IP pcbs (UDP, TCP, RAW)
(fixes bug #35061)
2011-09-27: Simon Goldschmidt
* opt.h, tcp.c, tcp_in.c: Implemented limiting data on ooseq queue (task #9989)
(define TCP_OOSEQ_MAX_BYTES / TCP_OOSEQ_MAX_PBUFS in lwipopts.h)
2011-09-21: Simon Goldschmidt
* opt.h, api.h, api_lib.c, api_msg.h/.c, sockets.c: Implemented timeout on
send (TCP only, bug #33820)
2011-09-21: Simon Goldschmidt
* init.c: Converted runtime-sanity-checks into compile-time checks that can
be disabled (since runtime checks can often not be seen on embedded targets)
2011-09-11: Simon Goldschmidt
* ppp.h, ppp_impl.h: splitted ppp.h to an internal and external header file
to get a clear separation of which functions an application or port may use
(task #11281)
2011-09-11: Simon Goldschmidt
* opt.h, tcp_impl.h, tcp.c, udp.h/.c: Added a config option to randomize
initial local TCP/UDP ports (so that different port ranges are used after
a reboot; bug #33818; this one added tcp_init/udp_init functions again)
2011-09-03: Simon Goldschmidt
* dhcp.c: DHCP uses LWIP_RAND() for xid's (bug #30302)
2011-08-24: Simon Goldschmidt
* opt.h, netif.h/.c: added netif remove callback (bug #32397)
2011-07-26: Simon Goldschmidt
* etharp.c: ETHARP_SUPPORT_VLAN: add support for an external VLAN filter
function instead of only checking for one VLAN (define ETHARP_VLAN_CHECK_FN)
2011-07-21: Simon Goldschmidt (patch by hanhui)
* ip4.c, etharp.c, pbuf.h: bug #33634 ip_forward() have a faulty behaviour:
Added pbuf flags to mark incoming packets as link-layer broadcast/multicast.
Also added code to allow ip_forward() to forward non-broadcast packets to
the input netif (set IP_FORWARD_ALLOW_TX_ON_RX_NETIF==1).
2011-06-26: Simon Goldschmidt (patch by Cameron Gutman)
* tcp.c, tcp_out.c: bug #33604: added some more asserts to check that
pcb->state != LISTEN
2011-05-14: Simon Goldschmidt (patch by Stéphane Lesage)
* tcpip.c/.h: patch #7449 allow tcpip callback from interrupt with static
memory message
++ Bugfixes:
2012-09-26: Simon Goldschmidt
* api_msg.c: fixed bug #37405 'err_tcp()' uses already freed 'netconn' object
2012-09-26: patch by Henrik Persson
* dhcp.c: patch #7843 Fix corner case with dhcp timeouts
2012-09-26: patch by Henrik Persson
* dhcp.c: patch #7840 Segfault in dhcp_parse_reply if no end marker in dhcp packet
2012-08-22: Simon Goldschmidt
* memp.c: fixed bug #37166: memp_sanity check loops itself
2012-05-08: Simon Goldschmidt
* tcp_out.c: fixed bug: #36380 unsent_oversize mismatch in 1.4.1RC1 (this was
a debug-check issue only)
2012-03-27: Simon Goldschmidt
* vj.c: fixed bug #35756 header length calculation problem in ppp/vj.c
2012-03-27: Simon Goldschmidt (patch by Mason)
* tcp_out.c: fixed bug #35945: SYN packet should provide the recv MSS not the
send MSS
2012-03-22: Simon Goldschmidt
* ip4.c: fixed bug #35927: missing refragmentaion in ip_forward
2012-03-20: Simon Goldschmidt (patch by Mason)
* netdb.c: fixed bug #35907: lwip_gethostbyname_r returns an invalid h_addr_list
2012-03-12: Simon Goldschmidt (patch by Bostjan Meglic)
* ppp.c: fixed bug #35809: PPP GetMask(): Compiler warning on big endian,
possible bug on little endian system
2012-02-23: Simon Goldschmidt
* etharp.c: fixed bug #35595: Impossible to send broadcast without a gateway
(introduced when fixing bug# 33551)
2012-02-16: Simon Goldschmidt
* ppp.c: fixed pbuf leak when PPP session is aborted through pppSigHUP()
(bug #35541: PPP Memory Leak)
2012-02-16: Simon Goldschmidt
* etharp.c: fixed bug #35531: Impossible to send multicast without a gateway
(introduced when fixing bug# 33551)
2012-02-16: Simon Goldschmidt (patch by Stéphane Lesage)
* msg_in.c, msg_out.c: fixed bug #35536 SNMP: error too big response is malformed
2012-02-15: Simon Goldschmidt
* init.c: fixed bug #35537: MEMP_NUM_* sanity checks should be disabled with
MEMP_MEM_MALLOC==1
2012-02-12: Simon Goldschmidt
* tcp.h, tcp_in.c, tcp_out.c: partly fixed bug #25882: TCP hangs on
MSS > pcb->snd_wnd (by not creating segments bigger than half the window)
2012-02-11: Simon Goldschmidt
* tcp.c: fixed bug #35435: No pcb state check before adding it to time-wait
queue while closing
2012-01-22: Simon Goldschmidt
* tcp.c, tcp_in.c: fixed bug #35305: pcb may be freed too early on shutdown(WR)
2012-01-21: Simon Goldschmidt
* tcp.c: fixed bug #34636: FIN_WAIT_2 - Incorrect shutdown of TCP pcb
2012-01-20: Simon Goldschmidt
* dhcp.c: fixed bug #35151: DHCP asserts on incoming option lengths
2012-01-20: Simon Goldschmidt
* pbuf.c: fixed bug #35291: NULL pointer in pbuf_copy
2011-11-25: Simon Goldschmidt
* tcp.h/.c, tcp_impl.h, tcp_in.c: fixed bug #31177: tcp timers can corrupt
tcp_active_pcbs in some cases
2011-11-23: Simon Goldschmidt
* sys.c: fixed bug #34884: sys_msleep() body needs to be surrounded with
'#ifndef sys_msleep'
2011-11-22: Simon Goldschmidt
* netif.c, etharp.h/.c: fixed bug #34684: Clear the arp table cache when
netif is brought down
2011-10-28: Simon Goldschmidt
* tcp_in.c: fixed bug #34638: Dead code in tcp_receive - pcb->dupacks
2011-10-23: Simon Goldschmidt
* mem.c: fixed bug #34429: possible memory corruption with
LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT set to 1
2011-10-18: Simon Goldschmidt
* arch.h, netdb.c: fixed bug #34592: lwip_gethostbyname_r uses nonstandard
error value
2011-10-18: Simon Goldschmidt
* opt.h: fixed default values of TCP_SNDLOWAT and TCP_SNDQUEUELOWAT for small
windows (bug #34176 select after non-blocking send times out)
2011-10-18: Simon Goldschmidt
* tcp_impl.h, tcp_out.c: fixed bug #34587: TCP_BUILD_MSS_OPTION doesn't
consider netif->mtu, causes slow network
2011-10-18: Simon Goldschmidt
* sockets.c: fixed bug #34581 missing parentheses in udplite sockets code
2011-10-18: Simon Goldschmidt
* sockets.h: fixed bug #34580 fcntl() is missing in LWIP_COMPAT_SOCKETS
2011-10-17: Simon Goldschmidt
* api_msg.c: fixed bug #34569: shutdown(SHUT_WR) crashes netconn/socket api
2011-10-13: Simon Goldschmidt
* tcp_in.c, tcp_out.c: fixed bug #34517 (persist timer is started although no
zero window is received) by starting the persist timer when a zero window is
received, not when we have more data queued for sending than fits into the
window
2011-10-13: Simon Goldschmidt
* def.h, timers.c: fixed bug #34541: LWIP_U32_DIFF is unnecessarily complex
2011-10-13: Simon Goldschmidt
* sockets.c, api_lib.c: fixed bug #34540: compiler error when CORE_LOCKING is
used and not all protocols are enabled
2011-10-12: Simon Goldschmidt
* pbuf.c: fixed bug #34534: Error in sending fragmented IP if MEM_ALIGNMENT > 4
2011-10-09: Simon Goldschmidt
* tcp_out.c: fixed bug #34426: tcp_zero_window_probe() transmits incorrect
byte value when pcb->unacked != NULL
2011-10-09: Simon Goldschmidt
* ip4.c: fixed bug #34447 LWIP_IP_ACCEPT_UDP_PORT(dst_port) wrong
2011-09-27: Simon Goldschmidt
* tcp_in.c, tcp_out.c: Reset pcb->unsent_oversize in 2 more places...
2011-09-27: Simon Goldschmidt
* tcp_in.c: fixed bug #28288: Data after FIN in oos queue
2011-09-27: Simon Goldschmidt
* dhcp.c: fixed bug #34406 dhcp_option_hostname() can overflow the pbuf
2011-09-24: Simon Goldschmidt
* mem.h: fixed bug #34377 MEM_SIZE_F is not defined if MEM_LIBC_MALLOC==1
2011-09-23: Simon Goldschmidt
* pbuf.h, tcp.c, tcp_in.c: fixed bug #33871: rejecting TCP_EVENT_RECV() for
the last packet including FIN can lose data
2011-09-22: Simon Goldschmidt
* tcp_impl.h: fixed bug #34355: nagle does not take snd_buf/snd_queuelen into
account
2011-09-21: Simon Goldschmidt
* opt.h: fixed default value of TCP_SND_BUF to not violate the sanity checks
in init.c
2011-09-20: Simon Goldschmidt
* timers.c: fixed bug #34337 (possible NULL pointer in sys_check_timeouts)
2011-09-11: Simon Goldschmidt
* tcp_out.c: use pcb->mss instead of TCP_MSS for preallocate mss-sized pbufs
(bug #34019)
2011-09-09: Simon Goldschmidt
* udp.c: fixed bug #34072: UDP broadcast is received from wrong UDP pcb if
udp port matches
2011-09-03: Simon Goldschmidt
* tcp_in.c: fixed bug #33952 PUSH flag in incoming packet is lost when packet
is aggregated and sent to application
2011-09-01: Simon Goldschmidt
* opt.h: fixed bug #31809 LWIP_EVENT_API in opts.h is inconsistent compared
to other options
2011-09-01: Simon Goldschmidt
* tcp_in.c: fixed bug #34111 RST for ACK to listening pcb has wrong seqno
2011-08-24: Simon Goldschmidt
* api_msg.c, sockets.c: fixed bug #33956 Wrong error returned when calling
accept() on UDP connections
2011-08-24: Simon Goldschmidt
* sockets.h: fixed bug #34057 socklen_t should be a typedef
2011-08-24: Simon Goldschmidt
* pbuf.c: fixed bug #34112 Odd check in pbuf_alloced_custom (typo)
2011-08-24: Simon Goldschmidt
* dhcp.c: fixed bug #34122 dhcp: hostname can overflow
2011-08-24: Simon Goldschmidt
* netif.c: fixed bug #34121 netif_add/netif_set_ipaddr fail on NULL ipaddr
2011-08-22: Simon Goldschmidt
* tcp_out.c: fixed bug #33962 TF_FIN not always set after FIN is sent. (This
merely prevents nagle from not transmitting fast after closing.)
2011-07-22: Simon Goldschmidt
* api_lib.c, api_msg.c, sockets.c, api.h: fixed bug #31084 (socket API returns
always EMSGSIZE on non-blocking sockets if data size > send buffers) -> now
lwip_send() sends as much as possible for non-blocking sockets
2011-07-22: Simon Goldschmidt
* pbuf.c/.h, timers.c: freeing ooseq pbufs when the pbuf pool is empty implemented
for NO_SYS==1: when not using sys_check_timeouts(), call PBUF_CHECK_FREE_OOSEQ()
at regular intervals from main level.
2011-07-21: Simon Goldschmidt
* etharp.c: fixed bug #33551 (ARP entries may time out although in use) by
sending an ARP request when an ARP entry is used in the last minute before
it would time out.
2011-07-04: Simon Goldschmidt
* sys_arch.txt: Fixed documentation after changing sys arch prototypes for 1.4.0.
2011-06-26: Simon Goldschmidt
* tcp.c: fixed bug #31723 (tcp_kill_prio() kills pcbs with the same prio) by
updating its documentation only.
2011-06-26: Simon Goldschmidt
* mem.c: fixed bug #33545: With MEM_USE_POOLS==1, mem_malloc can return an
unaligned pointer.
2011-06-26: Simon Goldschmidt
* mem.c: fixed bug #33544 "warning in mem.c in lwip 1.4.0 with NO_SYS=1"
2011-05-25: Simon Goldschmidt
* tcp.c: fixed bug #33398 (pointless conversion when checking TCP port range)
(STABLE-1.4.0)
++ New features:
2011-03-27: Simon Goldschmidt
* tcp_impl.h, tcp_in.c, tcp_out.c: Removed 'dataptr' from 'struct tcp_seg' and
calculate it in tcp_zero_window_probe (the only place where it was used).
2010-11-21: Simon Goldschmidt
* dhcp.c/.h: Added a function to deallocate the struct dhcp from a netif
(fixes bug #31525).
2010-07-12: Simon Goldschmidt (patch by Stephane Lesage)
* ip.c, udp.c/.h, pbuf.h, sockets.c: task #10495: Added support for
IP_MULTICAST_LOOP at socket- and raw-API level.
2010-06-16: Simon Goldschmidt
* ip.c: Added an optional define (LWIP_IP_ACCEPT_UDP_PORT) that can allow
link-layer-addressed UDP traffic to be received while a netif is down (just
like DHCP during configuration)
2010-05-22: Simon Goldschmidt
* many many files: bug #27352: removed packing from ip_addr_t, the packed
version is now only used in protocol headers. Added global storage for
current src/dest IP address while in input functions.
2010-05-16: Simon Goldschmidt
* def.h: task #10391: Add preprocessor-macros for compile-time htonl
calculation (and use them throughout the stack where applicable)
2010-05-16: Simon Goldschmidt
* opt.h, memp_std.h, memp.c, ppp_oe.h/.c: PPPoE now uses its own MEMP pool
instead of the heap (moved struct pppoe_softc from ppp_oe.c to ppp_oe.h)
2010-05-16: Simon Goldschmidt
* opt.h, memp_std.h, dns.h/.c: DNS_LOCAL_HOSTLIST_IS_DYNAMIC uses its own
MEMP pool instead of the heap
2010-05-13: Simon Goldschmidt
* tcp.c, udp.c: task #6995: Implement SO_REUSEADDR (correctly), added
new option SO_REUSE_RXTOALL to pass received UDP broadcast/multicast
packets to more than one pcb.
2010-05-02: Simon Goldschmidt
* netbuf.h/.c, sockets.c, api_msg.c: use checksum-on-copy for sending
UDP data for LWIP_NETIF_TX_SINGLE_PBUF==1
2010-04-30: Simon Goldschmidt
* udp.h/.c, pbuf.h/.c: task #6849: added udp_send(_to/_if) functions that
take a precalculated checksum, added pbuf_fill_chksum() to copy data
into a pbuf and at the same time calculating the checksum for that data
2010-04-29: Simon Goldschmidt
* ip_addr.h, etharp.h/.c, autoip.c: Create overridable macros for copying
2-byte-aligned IP addresses and MAC addresses
2010-04-28: Patch by Bill Auerbach
* ip.c: Inline generating IP checksum to save a function call
2010-04-14: Simon Goldschmidt
* tcpip.h/.c, timers.c: Added an overridable define to get informed when the
tcpip_thread processes messages or timeouts to implement a watchdog.
2010-03-28: Simon Goldschmidt
* ip_frag.c: create a new (contiguous) PBUF_RAM for every outgoing
fragment if LWIP_NETIF_TX_SINGLE_PBUF==1
2010-03-27: Simon Goldschmidt
* etharp.c: Speedup TX by moving code from find_entry to etharp_output/
etharp_query to prevent unnecessary function calls (inspired by
patch #7135).
2010-03-20: Simon Goldschmidt
* opt.h, tcpip.c/.h: Added an option to disable tcpip_(un)timeout code
since the linker cannot do this automatically to save space.
2010-03-20: Simon Goldschmidt
* opt.h, etharp.c/.h: Added support for static ARP table entries
2010-03-14: Simon Goldschmidt
* tcp_impl.h, tcp_out.c, inet_chksum.h/.c: task #6849: Calculate checksum
when creating TCP segments, not when (re-)transmitting them.
2010-03-07: Simon Goldschmidt
* sockets.c: bug #28775 (select/event_callback: only check select_cb_list
on change) plus use SYS_LIGHTWEIGHT_PROT to protect the select code.
This should speed up receiving data on sockets as the select code in
event_callback is only executed when select is waiting.
2010-03-06: Simon Goldschmidt
* tcp_out.c: task #7013 (Create option to have all packets delivered to
netif->output in one piece): Always copy to try to create single pbufs
in tcp_write.
2010-03-06: Simon Goldschmidt
* api.h, api_lib.c, sockets.c: task #10167 (sockets: speed up TCP recv
by not allocating a netbuf): added function netconn_recv_tcp_pbuf()
for tcp netconns to receive pbufs, not netbufs; use that function
for tcp sockets.
2010-03-05: Jakob Ole Stoklundsen / Simon Goldschmidt
* opt.h, tcp.h, tcp_impl.h, tcp.c, tcp_in.c, tcp_out.c: task #7040:
Work on tcp_enqueue: Don't waste memory when chaining segments,
added option TCP_OVERSIZE to prevent creating many small pbufs when
calling tcp_write with many small blocks of data. Instead, pbufs are
allocated larger than needed and the space is used for later calls to
tcp_write.
2010-02-21: Simon Goldschmidt
* stats.c/.h: Added const char* name to mem- and memp-stats for easier
debugging.
2010-02-21: Simon Goldschmidt
* tcp.h (and usages), added tcp_impl.h: Splitted API and internal
implementation of tcp to make API usage cleare to application programmers
2010-02-14: Simon Goldschmidt/Stephane Lesage
* ip_addr.h: Improved some defines working on ip addresses, added faster
macro to copy addresses that cannot be NULL
2010-02-13: Simon Goldschmidt
* api.h, api_lib.c, api_msg.c, sockets.c: task #7865 (implement non-
blocking send operation)
2010-02-12: Simon Goldschmidt
* sockets.c/.h: Added a minimal version of posix fctl() to have a
standardised way to set O_NONBLOCK for nonblocking sockets.
2010-02-12: Simon Goldschmidt
* dhcp.c/.h, autoip.c/.h: task #10139 (Prefer statically allocated
memory): added autoip_set_struct() and dhcp_set_struct() to let autoip
and dhcp work with user-allocated structs instead of callin mem_malloc
2010-02-12: Simon Goldschmidt/Jeff Barber
* tcp.c/h: patch #6865 (SO_REUSEADDR for TCP): if pcb.so_options has
SOF_REUSEADDR set, allow binding to endpoint in TIME_WAIT
2010-02-12: Simon Goldschmidt
* sys layer: task #10139 (Prefer statically allocated memory): converted
mbox and semaphore functions to take pointers to sys_mbox_t/sys_sem_t;
converted sys_mbox_new/sys_sem_new to take pointers and return err_t;
task #7212: Add Mutex concept in sys_arch (define LWIP_COMPAT_MUTEX
to let sys.h use binary semaphores instead of mutexes - as before)
2010-02-09: Simon Goldschmidt (Simon Kallweit)
* timers.c/.h: Added function sys_restart_timeouts() from patch #7085
(Restart system timeout handling)
2010-02-09: Simon Goldschmidt
* netif.c/.h, removed loopif.c/.h: task #10153 (Integrate loopif into
netif.c) - loopif does not have to be created by the port any more,
just define LWIP_HAVE_LOOPIF to 1.
2010-02-08: Simon Goldschmidt
* inet.h, ip_addr.c/.h: Added reentrant versions of inet_ntoa/ipaddr_ntoa
inet_ntoa_r/ipaddr_ntoa_r
2010-02-08: Simon Goldschmidt
* netif.h: Added netif_s/get_igmp_mac_filter() macros
2010-02-05: Simon Goldschmidt
* netif.h: Added function-like macros to get/set the hostname on a netif
2010-02-04: Simon Goldschmidt
* nearly every file: Replaced struct ip_addr by typedef ip_addr_t to
make changing the actual implementation behind the typedef easier.
2010-02-01: Simon Goldschmidt
* opt.h, memp_std.h, dns.h, netdb.c, memp.c: Let netdb use a memp pool
for allocating memory when getaddrinfo() is called.
2010-01-31: Simon Goldschmidt
* dhcp.h, dhcp.c: Reworked the code that parses DHCP options: parse
them once instead of parsing for every option. This also removes
the need for mem_malloc from dhcp_recv and makes it possible to
correctly retrieve the BOOTP file.
2010-01-30: simon Goldschmidt
* sockets.c: Use SYS_LIGHTWEIGHT_PROT instead of a semaphore to protect
the sockets array.
2010-01-29: Simon Goldschmidt (patch by Laura Garrett)
* api.h, api_msg.c, sockets.c: Added except set support in select
(patch #6860)
2010-01-29: Simon Goldschmidt (patch by Laura Garrett)
* api.h, sockets.h, err.h, api_lib.c, api_msg.c, sockets.c, err.c:
Add non-blocking support for connect (partly from patch #6860),
plus many cleanups in socket & netconn API.
2010-01-27: Simon Goldschmidt
* opt.h, tcp.h, init.c, api_msg.c: Added TCP_SNDQUEUELOWAT corresponding
to TCP_SNDLOWAT and added tcp_sndqueuelen() - this fixes bug #28605
2010-01-26: Simon Goldschmidt
* snmp: Use memp pools for snmp instead of the heap; added 4 new pools.
2010-01-14: Simon Goldschmidt
* ppp.c/.h: Fixed bug #27856: PPP: Set netif link- and status-callback
by adding ppp_set_netif_statuscallback()/ppp_set_netif_linkcallback()
2010-01-13: Simon Goldschmidt
* mem.c: The heap now may be moved to user-defined memory by defining
LWIP_RAM_HEAP_POINTER as a void pointer to that memory's address
(patch #6966 and bug #26133)
2010-01-10: Simon Goldschmidt (Bill Auerbach)
* opt.h, memp.c: patch #6822 (Add option to place memory pools in
separate arrays)
2010-01-10: Simon Goldschmidt
* init.c, igmp.c: patch #6463 (IGMP - Adding Random Delay): added define
LWIP_RAND() for lwip-wide randomization (to be defined in cc.h)
2009-12-31: Simon Goldschmidt
* tcpip.c, init.c, memp.c, sys.c, memp_std.h, sys.h, tcpip.h
added timers.c/.h: Separated timer implementation from semaphore/mbox
implementation, moved timer implementation to timers.c/.h, timers are
now only called from tcpip_thread or by explicitly checking them.
(TASK#7235)
2009-12-27: Simon Goldschmidt
* opt.h, etharp.h/.c, init.c, tcpip.c: Added an additional option
LWIP_ETHERNET to support ethernet without ARP (necessary for pure PPPoE)
++ Bugfixes:
2011-04-20: Simon Goldschmidt
* sys_arch.txt: sys_arch_timeouts() is not needed any more.
2011-04-13: Simon Goldschmidt
* tcp.c, udp.c: Fixed bug #33048 (Bad range for IP source port numbers) by
using ports in the IANA private/dynamic range (49152 through 65535).
2011-03-29: Simon Goldschmidt, patch by Emil Lhungdahl:
* etharp.h/.c: Fixed broken VLAN support.
2011-03-27: Simon Goldschmidt
* tcp.c: Fixed bug #32926 (TCP_RMV(&tcp_bound_pcbs) is called on unbound tcp
pcbs) by checking if the pcb was bound (local_port != 0).
2011-03-27: Simon Goldschmidt
* ppp.c: Fixed bug #32280 (ppp: a pbuf is freed twice)
2011-03-27: Simon Goldschmidt
* sockets.c: Fixed bug #32906: lwip_connect+lwip_send did not work for udp and
raw pcbs with LWIP_TCPIP_CORE_LOCKING==1.
2011-03-27: Simon Goldschmidt
* tcp_out.c: Fixed bug #32820 (Outgoing TCP connections created before route
is present never times out) by starting retransmission timer before checking
route.
2011-03-22: Simon Goldschmidt
* ppp.c: Fixed bug #32648 (PPP code crashes when terminating a link) by only
calling sio_read_abort() if the file descriptor is valid.
2011-03-14: Simon Goldschmidt
* err.h/.c, sockets.c, api_msg.c: fixed bug #31748 (Calling non-blocking connect
more than once can render a socket useless) since it mainly involves changing
"FATAL" classification of error codes: ERR_USE and ERR_ISCONN just aren't fatal.
2011-03-13: Simon Goldschmidt
* sockets.c: fixed bug #32769 (ESHUTDOWN is linux-specific) by fixing
err_to_errno_table (ERR_CLSD: ENOTCONN instead of ESHUTDOWN), ERR_ISCONN:
use EALRADY instead of -1
2011-03-13: Simon Goldschmidt
* api_lib.c: netconn_accept: return ERR_ABRT instead of ERR_CLSD if the
connection has been aborted by err_tcp (since this is not a normal closing
procedure).
2011-03-13: Simon Goldschmidt
* tcp.c: tcp_bind: return ERR_VAL instead of ERR_ISCONN when trying to bind
with pcb->state != CLOSED
2011-02-17: Simon Goldschmidt
* rawapi.txt: Fixed bug #32561 tcp_poll argument definition out-of-order in
documentation
2011-02-17: Simon Goldschmidt
* many files: Added missing U/UL modifiers to fix 16-bit-arch portability.
2011-01-24: Simon Goldschmidt
* sockets.c: Fixed bug #31741: lwip_select seems to have threading problems
2010-12-02: Simon Goldschmidt
* err.h: Fixed ERR_IS_FATAL so that ERR_WOULDBLOCK is not fatal.
2010-11-23: Simon Goldschmidt
* api.h, api_lib.c, api_msg.c, sockets.c: netconn.recv_avail is only used for
LWIP_SO_RCVBUF and ioctl/FIONREAD.
2010-11-23: Simon Goldschmidt
* etharp.c: Fixed bug #31720: ARP-queueing: RFC 1122 recommends to queue at
least 1 packet -> ARP_QUEUEING==0 now queues the most recent packet.
2010-11-23: Simon Goldschmidt
* tcp_in.c: Fixed bug #30577: tcp_input: don't discard ACK-only packets after
refusing 'refused_data' again.
2010-11-22: Simon Goldschmidt
* sockets.c: Fixed bug #31590: getsockopt(... SO_ERROR ...) gives EINPROGRESS
after a successful nonblocking connection.
2010-11-22: Simon Goldschmidt
* etharp.c: Fixed bug #31722: IP packets sent with an AutoIP source addr
must be sent link-local
2010-11-22: Simon Goldschmidt
* timers.c: patch #7329: tcp_timer_needed prototype was ifdef'ed out for
LWIP_TIMERS==0
2010-11-20: Simon Goldschmidt
* sockets.c: Fixed bug #31170: lwip_setsockopt() does not set socket number
2010-11-20: Simon Goldschmidt
* sockets.h: Fixed bug #31304: Changed SHUT_RD, SHUT_WR and SHUT_RDWR to
resemble other stacks.
2010-11-20: Simon Goldschmidt
* dns.c: Fixed bug #31535: TCP_SND_QUEUELEN must be at least 2 or else
no-copy TCP writes will never succeed.
2010-11-20: Simon Goldschmidt
* dns.c: Fixed bug #31701: Error return value from dns_gethostbyname() does
not match documentation: return ERR_ARG instead of ERR_VAL if not
initialized or wrong argument.
2010-10-20: Simon Goldschmidt
* sockets.h: Fixed bug #31385: sizeof(struct sockaddr) is 30 but should be 16
2010-10-05: Simon Goldschmidt
* dhcp.c: Once again fixed #30038: DHCP/AutoIP cooperation failed when
replugging the network cable after an AutoIP address was assigned.
2010-08-10: Simon Goldschmidt
* tcp.c: Fixed bug #30728: tcp_new_port() did not check listen pcbs
2010-08-03: Simon Goldschmidt
* udp.c, raw.c: Don't chain empty pbufs when sending them (fixes bug #30625)
2010-08-01: Simon Goldschmidt (patch by Greg Renda)
* ppp.c: Applied patch #7264 (PPP protocols are rejected incorrectly on big
endian architectures)
2010-07-28: Simon Goldschmidt
* api_lib.c, api_msg.c, sockets.c, mib2.c: Fixed compilation with TCP or UDP
disabled.
2010-07-27: Simon Goldschmidt
* tcp.c: Fixed bug #30565 (tcp_connect() check bound list): that check did no
harm but never did anything
2010-07-21: Simon Goldschmidt
* ip.c: Fixed invalid fix for bug #30402 (CHECKSUM_GEN_IP_INLINE does not
add IP options)
2010-07-16: Kieran Mansley
* msg_in.c: Fixed SNMP ASN constant defines to not use ! operator
2010-07-10: Simon Goldschmidt
* ip.c: Fixed bug #30402: CHECKSUM_GEN_IP_INLINE does not add IP options
2010-06-30: Simon Goldschmidt
* api_msg.c: fixed bug #30300 (shutdown parameter was not initialized in
netconn_delete)
2010-06-28: Kieran Mansley
* timers.c remove unportable printing of C function pointers
2010-06-24: Simon Goldschmidt
* init.c, timers.c/.h, opt.h, memp_std.h: From patch #7221: added flag
NO_SYS_NO_TIMERS to drop timer support for NO_SYS==1 for easier upgrading
2010-06-24: Simon Goldschmidt
* api(_lib).c/.h, api_msg.c/.h, sockets.c/.h: Fixed bug #10088: Correctly
implemented shutdown at socket level.
2010-06-21: Simon Goldschmidt
* pbuf.c/.h, ip_frag.c/.h, opt.h, memp_std.h: Fixed bug #29361 (ip_frag has
problems with zero-copy DMA MACs) by adding custom pbufs and implementing
custom pbufs that reference other (original) pbufs. Additionally set
IP_FRAG_USES_STATIC_BUF=0 as default to be on the safe side.
2010-06-15: Simon Goldschmidt
* dhcp.c: Fixed bug #29970: DHCP endian issue parsing option responses
2010-06-14: Simon Goldschmidt
* autoip.c: Fixed bug #30039: AutoIP does not reuse previous addresses
2010-06-12: Simon Goldschmidt
* dhcp.c: Fixed bug #30038: dhcp_network_changed doesn't reset AUTOIP coop
state
2010-05-17: Simon Goldschmidt
* netdb.c: Correctly NULL-terminate h_addr_list
2010-05-16: Simon Goldschmidt
* def.h/.c: changed the semantics of LWIP_PREFIX_BYTEORDER_FUNCS to prevent
"symbol already defined" i.e. when linking to winsock
2010-05-05: Simon Goldschmidt
* def.h, timers.c: Fixed bug #29769 (sys_check_timeouts: sys_now() may
overflow)
2010-04-21: Simon Goldschmidt
* api_msg.c: Fixed bug #29617 (sometime cause stall on delete listening
connection)
2010-03-28: Luca Ceresoli
* ip_addr.c/.h: patch #7143: Add a few missing const qualifiers
2010-03-27: Luca Ceresoli
* mib2.c: patch #7130: remove meaningless const qualifiers
2010-03-26: Simon Goldschmidt
* tcp_out.c: Make LWIP_NETIF_TX_SINGLE_PBUF work for TCP, too
2010-03-26: Simon Goldschmidt
* various files: Fixed compiling with different options disabled (TCP/UDP),
triggered by bug #29345; don't allocate acceptmbox if LWIP_TCP is disabled
2010-03-25: Simon Goldschmidt
* sockets.c: Fixed bug #29332: lwip_select() processes readset incorrectly
2010-03-25: Simon Goldschmidt
* tcp_in.c, test_tcp_oos.c: Fixed bug #29080: Correctly handle remote side
overrunning our rcv_wnd in ooseq case.
2010-03-22: Simon Goldschmidt
* tcp.c: tcp_listen() did not copy the pcb's prio.
2010-03-19: Simon Goldschmidt
* snmp_msg.c: Fixed bug #29256: SNMP Trap address was not correctly set
2010-03-14: Simon Goldschmidt
* opt.h, etharp.h: Fixed bug #29148 (Incorrect PBUF_POOL_BUFSIZE for ports
where ETH_PAD_SIZE > 0) by moving definition of ETH_PAD_SIZE to opt.h
and basing PBUF_LINK_HLEN on it.
2010-03-08: Simon Goldschmidt
* netif.c, ipv4/ip.c: task #10241 (AutoIP: don't break existing connections
when assiging routable address): when checking incoming packets and
aborting existing connection on address change, filter out link-local
addresses.
2010-03-06: Simon Goldschmidt
* sockets.c: Fixed LWIP_NETIF_TX_SINGLE_PBUF for LWIP_TCPIP_CORE_LOCKING
2010-03-06: Simon Goldschmidt
* ipv4/ip.c: Don't try to forward link-local addresses
2010-03-06: Simon Goldschmidt
* etharp.c: Fixed bug #29087: etharp: don't send packets for LinkLocal-
addresses to gw
2010-03-05: Simon Goldschmidt
* dhcp.c: Fixed bug #29072: Correctly set ciaddr based on message-type
and state.
2010-03-05: Simon Goldschmidt
* api_msg.c: Correctly set TCP_WRITE_FLAG_MORE when netconn_write is split
into multiple calls to tcp_write.
2010-02-21: Simon Goldschmidt
* opt.h, mem.h, dns.c: task #10140: Remove DNS_USES_STATIC_BUF (keep
the implementation of DNS_USES_STATIC_BUF==1)
2010-02-20: Simon Goldschmidt
* tcp.h, tcp.c, tcp_in.c, tcp_out.c: Task #10088: Correctly implement
close() vs. shutdown(). Now the application does not get any more
recv callbacks after calling tcp_close(). Added tcp_shutdown().
2010-02-19: Simon Goldschmidt
* mem.c/.h, pbuf.c: Renamed mem_realloc() to mem_trim() to prevent
confusion with realloc()
2010-02-15: Simon Goldschmidt/Stephane Lesage
* netif.c/.h: Link status does not depend on LWIP_NETIF_LINK_CALLBACK
(fixes bug #28899)
2010-02-14: Simon Goldschmidt
* netif.c: Fixed bug #28877 (Duplicate ARP gratuitous packet with
LWIP_NETIF_LINK_CALLBACK set on) by only sending if both link- and
admin-status of a netif are up
2010-02-14: Simon Goldschmidt
* opt.h: Disable ETHARP_TRUST_IP_MAC by default since it slows down packet
reception and is not really necessary
2010-02-14: Simon Goldschmidt
* etharp.c/.h: Fixed ARP input processing: only add a new entry if a
request was directed as us (RFC 826, Packet Reception), otherwise
only update existing entries; internalized some functions
2010-02-14: Simon Goldschmidt
* netif.h, etharp.c, tcpip.c: Fixed bug #28183 (ARP and TCP/IP cannot be
disabled on netif used for PPPoE) by adding a new netif flag
(NETIF_FLAG_ETHERNET) that tells the stack the device is an ethernet
device but prevents usage of ARP (so that ethernet_input can be used
for PPPoE).
2010-02-12: Simon Goldschmidt
* netif.c: netif_set_link_up/down: only do something if the link state
actually changes
2010-02-12: Simon Goldschmidt/Stephane Lesage
* api_msg.c: Fixed bug #28865 (Cannot close socket/netconn in non-blocking
connect)
2010-02-12: Simon Goldschmidt
* mem.h: Fixed bug #28866 (mem_realloc function defined in mem.h)
2010-02-09: Simon Goldschmidt
* api_lib.c, api_msg.c, sockets.c, api.h, api_msg.h: Fixed bug #22110
(recv() makes receive window update for data that wasn't received by
application)
2010-02-09: Simon Goldschmidt/Stephane Lesage
* sockets.c: Fixed bug #28853 (lwip_recvfrom() returns 0 on receive time-out
or any netconn_recv() error)
2010-02-09: Simon Goldschmidt
* ppp.c: task #10154 (PPP: Update snmp in/out counters for tx/rx packets)
2010-02-09: Simon Goldschmidt
* netif.c: For loopback packets, adjust the stats- and snmp-counters
for the loopback netif.
2010-02-08: Simon Goldschmidt
* igmp.c/.h, ip.h: Moved most defines from igmp.h to igmp.c for clarity
since they are not used anywhere else.
2010-02-08: Simon Goldschmidt (Stéphane Lesage)
* igmp.c, igmp.h, stats.c, stats.h: Improved IGMP stats
(patch from bug #28798)
2010-02-08: Simon Goldschmidt (Stéphane Lesage)
* igmp.c: Fixed bug #28798 (Error in "Max Response Time" processing) and
another bug when LWIP_RAND() returns zero.
2010-02-04: Simon Goldschmidt
* nearly every file: Use macros defined in ip_addr.h (some of them new)
to work with IP addresses (preparation for bug #27352 - Change ip_addr
from struct to typedef (u32_t) - and better code).
2010-01-31: Simon Goldschmidt
* netif.c: Don't call the link-callback from netif_set_up/down() since
this invalidly retriggers DHCP.
2010-01-29: Simon Goldschmidt
* ip_addr.h, inet.h, def.h, inet.c, def.c, more: Cleanly separate the
portability file inet.h and its contents from the stack: moved htonX-
functions to def.h (and the new def.c - they are not ipv4 dependent),
let inet.h depend on ip_addr.h and not the other way round.
This fixes bug #28732.
2010-01-28: Kieran Mansley
* tcp.c: Ensure ssthresh >= 2*MSS
2010-01-27: Simon Goldschmidt
* tcp.h, tcp.c, tcp_in.c: Fixed bug #27871: Calling tcp_abort() in recv
callback can lead to accessing unallocated memory. As a consequence,
ERR_ABRT means the application has called tcp_abort()!
2010-01-25: Simon Goldschmidt
* snmp_structs.h, msg_in.c: Partly fixed bug #22070 (MIB_OBJECT_WRITE_ONLY
not implemented in SNMP): write-only or not-accessible are still
returned by getnext (though not by get)
2010-01-24: Simon Goldschmidt
* snmp: Renamed the private mib node from 'private' to 'mib_private' to
not use reserved C/C++ keywords
2010-01-23: Simon Goldschmidt
* sockets.c: Fixed bug #28716: select() returns 0 after waiting for less
than 1 ms
2010-01-21: Simon Goldschmidt
* tcp.c, api_msg.c: Fixed bug #28651 (tcp_connect: no callbacks called
if tcp_enqueue fails) both in raw- and netconn-API
2010-01-19: Simon Goldschmidt
* api_msg.c: Fixed bug #27316: netconn: Possible deadlock in err_tcp
2010-01-18: Iordan Neshev/Simon Goldschmidt
* src/netif/ppp: reorganised PPP sourcecode to 2.3.11 including some
bugfix backports from 2.4.x.
2010-01-18: Simon Goldschmidt
* mem.c: Fixed bug #28679: mem_realloc calculates mem_stats wrong
2010-01-17: Simon Goldschmidt
* api_lib.c, api_msg.c, (api_msg.h, api.h, sockets.c, tcpip.c):
task #10102: "netconn: clean up conn->err threading issues" by adding
error return value to struct api_msg_msg
2010-01-17: Simon Goldschmidt
* api.h, api_lib.c, sockets.c: Changed netconn_recv() and netconn_accept()
to return err_t (bugs #27709 and #28087)
2010-01-14: Simon Goldschmidt
* ...: Use typedef for function prototypes throughout the stack.
2010-01-13: Simon Goldschmidt
* api_msg.h/.c, api_lib.c: Fixed bug #26672 (close connection when receive
window = 0) by correctly draining recvmbox/acceptmbox
2010-01-11: Simon Goldschmidt
* pap.c: Fixed bug #13315 (PPP PAP authentication can result in
erroneous callbacks) by copying the code from recent pppd
2010-01-10: Simon Goldschmidt
* raw.c: Fixed bug #28506 (raw_bind should filter received packets)
2010-01-10: Simon Goldschmidt
* tcp.h/.c: bug #28127 (remove call to tcp_output() from tcp_ack(_now)())
2010-01-08: Simon Goldschmidt
* sockets.c: Fixed bug #28519 (lwip_recvfrom bug with len > 65535)
2010-01-08: Simon Goldschmidt
* dns.c: Copy hostname for DNS_LOCAL_HOSTLIST_IS_DYNAMIC==1 since string
passed to dns_local_addhost() might be volatile
2010-01-07: Simon Goldschmidt
* timers.c, tcp.h: Call tcp_timer_needed() with NO_SYS==1, too
2010-01-06: Simon Goldschmidt
* netdb.h: Fixed bug #28496: missing include guards in netdb.h
2009-12-31: Simon Goldschmidt
* many ppp files: Reorganised PPP source code from ucip structure to pppd
structure to easily compare our code against the pppd code (around v2.3.1)
2009-12-27: Simon Goldschmidt
* tcp_in.c: Another fix for bug #28241 (ooseq processing) and adapted
unit test
(STABLE-1.3.2)
++ New features:
2009-10-27 Simon Goldschmidt/Stephan Lesage
* netifapi.c/.h: Added netifapi_netif_set_addr()
2009-10-07 Simon Goldschmidt/Fabian Koch
* api_msg.c, netbuf.c/.h, opt.h: patch #6888: Patch for UDP Netbufs to
support dest-addr and dest-port (optional: LWIP_NETBUF_RECVINFO)
2009-08-26 Simon Goldschmidt/Simon Kallweit
* slipif.c/.h: bug #26397: SLIP polling support
2009-08-25 Simon Goldschmidt
* opt.h, etharp.h/.c: task #9033: Support IEEE 802.1q tagged frame (VLAN),
New configuration options ETHARP_SUPPORT_VLAN and ETHARP_VLAN_CHECK.
2009-08-25 Simon Goldschmidt
* ip_addr.h, netdb.c: patch #6900: added define ip_ntoa(struct ip_addr*)
2009-08-24 Jakob Stoklund Olesen
* autoip.c, dhcp.c, netif.c: patch #6725: Teach AutoIP and DHCP to respond
to netif_set_link_up().
2009-08-23 Simon Goldschmidt
* tcp.h/.c: Added function tcp_debug_state_str() to convert a tcp state
to a human-readable string.
++ Bugfixes:
2009-12-24: Kieran Mansley
* tcp_in.c Apply patches from Oleg Tyshev to improve OOS processing
(BUG#28241)
2009-12-06: Simon Goldschmidt
* ppp.h/.c: Fixed bug #27079 (Yet another leak in PPP): outpacket_buf can
be statically allocated (like in ucip)
2009-12-04: Simon Goldschmidt (patch by Ioardan Neshev)
* pap.c: patch #6969: PPP: missing PAP authentication UNTIMEOUT
2009-12-03: Simon Goldschmidt
* tcp.h, tcp_in.c, tcp_out.c: Fixed bug #28106: dup ack for fast retransmit
could have non-zero length
2009-12-02: Simon Goldschmidt
* tcp_in.c: Fixed bug #27904: TCP sends too many ACKs: delay resetting
tcp_input_pcb until after calling the pcb's callbacks
2009-11-29: Simon Goldschmidt
* tcp_in.c: Fixed bug #28054: Two segments with FIN flag on the out-of-
sequence queue, also fixed PBUF_POOL leak in the out-of-sequence code
2009-11-29: Simon Goldschmidt