[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lwip-commits] [SCM] lwIP - A Lightweight TCPIP stack annotated tag, STA
From: |
Simon Goldschmidt |
Subject: |
[lwip-commits] [SCM] lwIP - A Lightweight TCPIP stack annotated tag, STABLE-2_0_0_RC1, created. STABLE-2_0_0_RC1 |
Date: |
Wed, 27 Apr 2016 20:12:35 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "lwIP - A Lightweight TCPIP stack".
The annotated tag, STABLE-2_0_0_RC1 has been created
at 2a1e7bec19b772fc92f82d475cf5597f59bd4195 (tag)
tagging 33955c636d17bee230cde746a92e1cff11a7a177 (commit)
tagged by sg
on Wed Apr 27 22:10:24 2016 +0200
- Log -----------------------------------------------------------------
2.0.0 RC1 (which is actually a first beta, rather)
"Grant Erickson" (1):
Fixed typo in debug formatting in ip6.c
Axel Lin (34):
dns: Fix dns_alloc_pcb for reuse an existing one case
api_msg_c: remove superfluous NETCONN_SET_SAFE_ERR call before
TCPIP_APIMSG_ACK
Slightly improve raw_remove()/udp_remove() implementation
Drop unnecessary NULL test for h->next->next in memp_sanity
memp: Fix if MEMP_OVERFLOW_CHECK guard in memp_free_pool
Trivial comment fix about calling tcp_slowtmr
Simplify testing minimum priority in tcp_kill_prio()
Drop #if TCP_DEBUG guard around tcp_debug_print_state calls
igmp: Drop unneeded initialization for *group in igmp_lookup_group()
dns: Remove always true test in dns_alloc_random_port
ipaddr_aton: Avoid duplicate code to handle IPv4 address string conversion
Use SYS_ARCH_SET macro at appropriate places
Remove unnecessary p->len checking for pbuf_alloc calls with PBUF_RAM type
netbuf: Move #include "lwip/opt.h" out of #if LWIP_NETCONN || LWIP_SOCKET
guard
icmp: Fix memory leak in icmp_input() error paths
memp: Fixup LWIP_HOOK_MEMP_AVAILABLE() hook
Catch tcpip_callback call failure
tcp_out: Use LWIP_DBG_LEVEL_SERIOUS instead of magic number
igmp: Optimize the implementation of igmp_start_timer
Trivial comment fix for lwip_netconn_do_disconnect()
udp_bind: Allocate a random port earlier to correctly detect port conflict
tcp_bind/tcp_connect: Omit checking for the same port if no port specified
udp_bind: Fix the logic to check both pcbs have REUSEADDR set
tcp_out: Use LWIP_DBG_LEVEL_SERIOUS instead of hard coded number
udp_bind: Omit checking for the same port if no port specified
tcp_rexmit_rto: Remove superfluous #if TCP_OVERSIZE guard
memp: Simplify implementation of memp_overflow_check_all
stats: Move memp_names table out of stats_init/stats_display_memp
functions
raw: Remove unnecessary #if guard around PCB_ISIPV6() calls
raw: Fix build error
Clear addr_hint pointer after calling ip_output_if() in
tcp_zero_window_probe()
stats: Add proper #if guard to prevent unused-variable warning for
memp_names
Make ERR_IS_FATAL() test first fatal error instead of last non-fatal error
tcp_alloc(): Remove superfluous initialization for pcb->keep_cnt_sent
Clint Sbisa (1):
tcp: Fix ooseq processing when seqno is near 2^32
Dirk Ziegelmeier (264):
PPP: fix constness in PPP related files (GCC -Wcast-qual)
Compiler warning fixes (mostly constness in dual-stack configurations)
Fixed using wrong sockaddr type in lwip_getaddrinfo when IPv6 is enabled
make netif_ip4_addr/netmask/gw macros return constant IP address pointers
make netif_ip4_* get accessors return const pointers
snmp: fixed ugly inheritance implementation by aggregating the "base
class" (struct mib_node) in all derived node classes to get more type-safe code
dns_found_callback should take const IP addr
fixed bug #46089: snmp: race condition on length change between
get_object_def() and get_value()
snmp: eliminiate mib_ram_array_node (it is not necessary: to the agent,
the nodes may be const since the actual mib implementation knows the structures
behind the nodes which do not have to be const)
snmp mib2: more nodes can be const
Remove global variable used in macros, it can be declared locally.
Export tcp_pcb_lists from tcp.c - can be used in SNMP code to implement
MIB2 tcp connection tables
Implement possibility to declare private memory pools. This is useful to
decouple some apps from the core (SNMP stack) or make contrib app useage
simpler (httpserver_raw) .
Completely decouple SNMP stack from lwIP core by using private memory
pools;
Rename snmp_mib2.h to snmp.h so source compatibility for user netif
implementations is preserved
Move some prototypes from snmp_msg.h to snmp.h because they are used by
user code
Add note about moved SNMP stack to CHANGELOG
Also fix compile of ethernetif.c after SNMP refactoring
Implement API function to iterate over stable ARP table entries
Move httpd from contrib to main git repository
Add Filelists.mk file containing all LWIP files. May be useful for client
projects.
Add iperf to apps;
lwiperf: TX buffer can be static
snmp.h: Fix header include guard
snmp.h: Add missing #if around function prototypes
Update header include guard naming of all apps headers
Forgot to remove two SNMP options from opt.h that are now in
lwip/apps/snmp_opts.h
Fix compile when netconn api is disabled but socket api is enabled.
makefsdata.c: Adapt to new header include location
Add missing comment for MIB2 callbacks in opt.h
SNMP agent rewrite
Minor SNMP compile and comment fix
Add SNMP agent note in CHANGELOG
C-Style comments only, please
Some SNMP MIB2 code layout cleanups
SNMP: Fix compile when IPV4 is not enabled
SNMP: Cleanup snmp IP helper functions, add IPv6 support
Start working on udpEndpointTable
Add some comments and OID checks to udpEndpointTable
SNMP: Two bugfixes in SNMP GET requests
SNMP: Another release_instance call bugfix in SNMP Get/GetNext requests
SNMP: Finish implementing UDP-MIB. Add unsupported udpHCInDatagrams and
udpHCOutDatagrams items.
Add comment about udpEnpointTable non-accessible columns
SNMP RAW API: Listen on IPV6 UDP port, too
SNMP MIB2: Update UDP endpoint table variable names
SNMP MIB2: Implement tcpListenerTable
SNMP MIB2: Implement tcpConnectionTable
SNMP: Move common MIB code into snmp_core.c helper functions
Fix C++ style comment in snmp_asn1.h
Fix compile of SNMP on MSVC
snmp_traps.c: #if 0 ... #endif around C++ style comments does not work -
remove the code completely for now
SNMP: Fix shadowing warning pointed out by Erik Ekman
SNMP: Fix shadowing warning in another file. Pointed out by Erik Ekman.
Update some MIB2 comments
Merge branch 'master' of ssh://git.sv.gnu.org:/srv/git/lwip
SNMP: SMEMCPY should only be used when size is known at compile time
Merge branch 'master' of ssh://git.sv.gnu.org:/srv/git/lwip
SNMP: Found the correct cause of a memory leak
SNMP: Table API cleanup
SNMP: Add MIB compiler (code generator)
SNMP: Add more MIB compiler info
SNMP MIB compiler: Add ability to generate UDP-MIB and TCP-MIB
Update SNMP README - add correct SharpSnmpLib reference
MIB compiler: Eliminate the need for a cast
SNMP MIB Viewer: Adapt to changes in SNMP framework that were required to
compile UDP-MIB and TCP-MIB
Add .gitignore (currently including SNMP MIB compiler binaries)
Add .userprefs file to .gitignore
SNMP: Add some basic MIBs
SNMP MIB Compiler: Deal with multiple OID assignments in a MIB file
SNMP MIB Compiler: Resolve MIB files in a case-insensitive way
SNMP MIB Compiler: Add example command line to compile UDP-MIB
SNMP MIB Compiler: Treat read-create nodes as read-only
SNMP MIB Compiler: Update project settings, fix wrong output path in
SharpSnmpLib
Fix bug #46837 Don't send dhcp_release message in dhcp_release function
SNMP: Fix InetAddress octet string encoding (length was missing)
Apply patch #8854: dns: Simplify #ifdef guard around
dns_gethostbyname_addrtype from Axel Lin
SNTP: Add function to get operating mode
SNMP MIB2: Add unsupported snmpSilentDrops and snmpProxyDrops objects
SNMP: Fix variable naming in snmp_pbuf_stream
SNMP: Convert SNMP error #defines to an enum and fix type mismatches
discovered by conversion; Convert SNMP_NEXT_OID_STATUS to an enum
SNMP: Add missing closing braces in #ifdef __cplusplus case
Private mempools: Add missing include for LWIP_MEM_ALIGN_SIZE in
memp_priv.h
SNMP: Update threadsync not to use mem_malloc - memory can be
instantiated statically since it is only needed once per threadsync instance
pbuf: Make pbuf_skip function public, so it can be used in SNMP code
snmp_pbuf_stream: Reduce code duplication. Most is already implemented in
lwIP pbuf framework.
SNMP: Implement basic SNMPv1 traps; Remove IPv6 support in RAW API again
until there is a clean solution for dual-stack UDP
SNMP: Add some comments in thread sync code
SNMP: Remove comment about traps in README
SNMP: Fix compile in dual-stack configuration
SNMP: Correctly name a global variable
ICMP: Fix unused value in icmp_input (found by Coverity)
ICMP: Fix responses were always sent to default netif because of
uninitialized source IP (found by Coverity)
Netconn: Fix potential NULL pointer dereference (found by Coverity)
DNS: Fix potential array out of bounds access. Variable nanswers may
contain bogus values. (found by Coverity)
mem.c: Fix unintended sign extension (found by Coverity)
snmp_threadsync.c: Fix ignored return value of mutex/semaphore creation.
Found by Coverity.
snmp_msg.c: Fix unchecked return value. Found by Coverity.
etharp.c: Make MAX_AGE of an ARP entry configurable
Found some struct instances that can be const
Let MIB compiler generate const structs, too (see last commit)
Fix netconn access after it was freed in lwiperf - found by Coverity
Fix tcp pcb access after it was freed in tcp.c - found by Coverity
PPP: Init SNMP members of PPP netifs
Reduce usage of PCB IP version flag in raw and tcp code. Maybe we can
figure out a good way for dual-stack UDP when we manage to remove the flag
(nearly) entirely from the code.
Reduce usage of PCB IP version flag in UDP code. Maybe we can figure out
a good way for dual-stack UDP when we manage to remove the flag (nearly)
entirely from the code.
Eliminate IP_PCB_IPVER_INPUT_MATCH macro
Eliminate IP_PCB_IPVER_EQ macro
Reduce PCB_ISIPV6 macro usage some more
Review with Simon: Remove dead code (since 2003)
Review with Simon: Init TCP/UDP/RAW PCBs with correct IP types in _new
functions to make my changes work correct
Together with Simon: Eliminate last instances of isipv6 member in pcbs;
Change signature of ip_output, ip_output_if, ip_output_if_src,
ip_output_hinted, ip_route, ip_netif_get_local_ip, ip_route_get_local_ip and
tcp_eff_send_mss not to take an isipv6 parameter. Use the IP version of the
destination address instead.
Cleanup NETCONNTYPE_ISIPV6 macro
Two compile fixes after eliminating isipv6 member in PCBs
Change TCPIP INPKT API message to take a function pointer. Allows
integration of other protocols without extending lwIP core (e.g. 6LoWPAN)
Eliminate TCPIP_MSG_INPKT_PPPOS message type.
Add generic tcpip_inpkt function that can be called to make last changes
really usable
slipif: Fix compile when only IPv6 is enabled
Initial import of Ivan Delamer's 6LoWPAN implementation with slight
modifications to allow compiling in IPv6 only mode
Add note to CHANGELOG about 6LoWPAN
Eliminate tcpip_pppos_input function
Use netif_input_fn typedef instead of creating a new one in tcpip.h
Fix shadowing warning in lowpan6.c - found by Erik Ekman's Travis CI
snmp_traps.c: Fix compile on Win32 - missing string.h include
I don't know why I have a diff here (I guess line ending problems like in
my last lowpan6.c commit)...
Add note about 6LoWPAN in src/netif/FILES
lwip/stats.h: Add some comments to MIB2 variables to explain correct
usage a bit
lowpan6.c: Implement SNMP counters
sys.h: Avoid un #defined LWIP_COMPAT_MUTEX macro (usually #defined in
arch/sys_arch.h)
udp.c: Simplify and cleanup input PCB matching
udp.c: Further udp_input simplifications
Implement UDP dual-stack PCB support
minor: Cleanups in raw/tcp/udp code by using macros and reducing #ifdefs
udp: udp_send and udp_send_chksum: Check for PCB NULL pointer and PCB
must not be the new IP_ANY_TYPE, but a real IPv4 and IPv6 address
No need for dual-stack code in ip4.c and icmp.c -> use ip4 only versions
Fix compile when PPPOE is enabled
Cleanup: Create new file ip.c and move dual-stack code from ipv4 and ipv6
folder in there
Add compatibility macro for udp_new_ip6()
Rework DHCP PCB handling: Old code registered one UDP PCB per netif where
DHCP was active and there was a special case in udp_input() for this. New
implementation uses one PCB for all netifs and removes special case in
udp_input().
Implement support for IP_ANY_TYPE in SNMP
Implement support for UDP IP_ANY_TYPE in netconn API
Implement dual-stack in SNMP for netconn API
Minor: Avoid ip_input() call indirection for when only IPv4 or IPv6 are
enabled
Apply patch from Simon to fix buffer overflow handling tcp_in.c which was
discovered by Coverity
lowpan6: Fix incorrect array bounds check (found by Coverity)
SNMP MIB2: Fix temporary OID buffer size some tables have been too small
udp: Fix possible NULL pointer dereference, update comments
ip_addr.h: Update ip_addr_copy macro to correctly copy new IP_ANY_TYPE
address
TCP: Implement dual stack support using new IP_ANY_TYPE introduced at UDP
raw.c: Avoid NULL pointer dereference
Implement new style TCP dual-stack in netconn API
Adapt HTTP server to new dual-stack API
Implement dual-stack in lwiperf, netbiosns and sntp
Compile fix lwiperf.c after my last change
Simon says: dual-stack does not work on iperf because there IPs encoded
in the payloads and IPv6 is not supported there in the current lwIP
implementation -> revert
Apply patch from Derek Pravala: Fix segfault in ip6_route when there is
no default netif
Add compatibility macro for tcp_new_ip6()
Minor code cleanup in udp.c
Implement dual-stack in RAW API in the same way as in UDP and TCP
Fix comment in tcp.c
api_lib.c: Don't propagate NULL pointers as ip address to subsequent
functions
netconn API: Reimplement dual-stack API to be socket-like.
snmp_netconn: Use new "socket-like" netconn API dual-stack implementation
Fix compile error in raw.c (possible unused arg)
Fix my previous netconn_do_listen changes in lwip_netconn_do_listen
Apply patch from Elias Ãnal to fix a few datatypes in SNMP MIB2
Fix ip_addr_cmp to correctly compare IPADDR_ANY_TYPE ips
snmp: Fix snmp_oid_to_ip for IPADDR_ANY_TYPE ips
netconn: Create API macros to get/set IPV6ONLY flag
netifapi: Do not pass NULL pointers for IP addresses to subsequent
functions
ip_addr.h: Use IP_GET_TYPE macro in other macros
netifapi.c: Fix compile when IPv4 is not enabled
Implement generic API message handling
Decouple tcpip.c/tcpip_priv.h from PPP API
Decouple tcpip.c/tcpip_priv.h from netconn API
Reduce includes of tcpip_priv.h
Minor cleanups in #includes and comments
Fix compile with LWIP_TCPIP_CORE_LOCKING
netifapi: Eliminate wrapper struct netifapi_msg and rename
netifapi_msg_msg to netifapi_msg
tcpip_send_api_msg function is only needed in non-core-locking mode
Add missing #include in memp.c
Fix wrong usage of LWIP_NETCONN_SEM_PER_THREAD macro in api_msg.h
SNMP: Support LWIP_TCPIP_CORE_LOCKING sync method
Fix bug #47370: Port DNS client to IPv6
tcpip.c: Implement an easier way for TCPIP API calls - client code does
not have to deal with semaphores and core locking any more
Port netifapi to new simple tcpip API call method
Port PPP API to new simple tcpip API call method
Minor TCPIP API call functions cleanup
pppol2tp.c: Avoid an #ifdef - there is a new UDP API function that can be
used here
tcpip API calls: Implement LWIP_NETCONN_SEM_PER_THREAD support for ALL
API calls
LwipMibCompiler: MibTree: Adapt coding style to the rest of the C# project
LwipMibCompiler: Don't generate empty root nodes
LwipMibCompiler: Add windows command line example
Fix bug #47426 incorrect typecast in pppapi.c
Add some comments to functions and #defines. According to Simon, LWIP
core locking is not experimental any more.
tcpip.c tcpip_send_api_msg: Handle core locking case internally
netconn API: Cleanup, remove lots of #defines, take advantage of new
tcpip_send_api_msg function feature to abstract core locking away
netconn API: Remove api_msg wrapper struct, it is not needed any more
LwipMibCompiler: Set MIB compiler as startup project instead of MIB viewer
Accidentally committed my MIB compiler test, sorry!
Rename tcpip_send_api_msg to tcpip_send_msg_wait_sem (hopefully a little
bit clearer name)
Readd struct protoype in api.h
Rename tcpip_apimsg to netconn_apimsg (better suits naming convention in
api_lib.c)
PPPAPI: Don't return garbage in *_create calls in case tcpip_api_call()
fails;
Delete script to compile MOBA MIB
Fix netconn API in core locking mode
Update git ignore list for LwipMibCompiler
udp.c: Allow udp_connect() on a dual-stack UDP PCB (type
IPADDR_TYPE_ANY). This may be useful in some applications - no need to keep
separate storage for target IP.
Fix newly introduced tcpip_api_call did not return correct return value
Cleanup and simplify tcpip_api_call() implementation a bit
SNMP: Move MIB2 SNMP subtree to separate file to get snmp_mib2.c smaller
SNMP: Move MIB2 UDP subtree to separate file to get snmp_mib2.c smaller
SNMP: Move MIB2 TCP subtree to separate file to get snmp_mib2.c smaller
SNMP: Move MIB2 ICMP subtree to separate file to get snmp_mib2.c smaller
SNMP: Move MIB2 interfaces subtree to separate file to get snmp_mib2.c
smaller
SNMP: Move MIB2 system subtree to separate file to get snmp_mib2.c smaller
SNMP: Move MIB2 ip subtree to separate file to get snmp_mib2.c smaller
SNMP: Cleanups after my last changes
SNMP: Reduce #includes of snmp_mib2.c
Fix compile of snmp/snmp_mib2.c - don't know why I didn't notice
yesterday...
Fix bug #47556: snmp agent uses wrong err 'ERR_ABRT' - use ERR_ARG as old
code. Was tested to be != ERR_OK only, so actual code did not matter
Update changelog
Partly apply Elias Oenal's SNMP V3 patch. There is more to come, the work
is incomplete at the moment and does not compile when LWIP_SNMP_V3 is enabled.
Partly apply Elias Oenal's SNMP V3 patch, part 2: Add SNMPv3 support
routines. Crypto does not work yet.
Fix SNMP compile on Win32 due to missing #includes
SNTP: Add function to get SNTP enabled state
Fix #define IPADDR_STRLEN_MAX in IPv6 only and dual-stack case
Fix shadowing warning (when compiling in C++) in TCPIP call API. Reported
by Freddie Chopin.
Fix bug #47592: pppapi_do_ppp_set_notify_phase_callback has invalid
parameter type
Commit Elias Oenal's SNMPv3 work, with some restructuring:
Fix build when mbedtls is not available :-) Thanks Erik!
Fix build when snmpv3 is not available. One more thanks, Erik :-)
Apply [patch #8969] from Freddie Chopin: Constify netif in
dhcp_supplied_address()
snmpv3_dummy.c: Add newline at end of file
Avoid divisions / module in SNMP code on stupid compilers
Create new IP_IS_V4 macros and use them at instead of !IP_IS_V6 - since
we now have an IPADDR_ANY_TYPE, just checking for !V6 does not mean it is V4
two minor fixes in snmpv3_mbedtls.c
SNMPv3: Make receiving DES encrypted frames work, sending still fails
because of broken padding
snmpv3_mbedtls.c: snmpv3_crypt() is only needed when LWIP_SNMP_V3_CRYPTO
is enabled
Fix bug #47749: #define ETHARP_TRUST_IP_MAC does not compile
Move PPP API files to netif/ppp subdir
Work on task #13907 PPP cleanups: Move PPP options from opt.h to
dedicated ppp_opts.h file
Fix projects without PPP do not compile any more
Move some definitions from tcpip_priv.h to better places since they are
of "public interest" (LWIP core locking mode, watchdog trigger)
task #13907: PPP cleanups: Move PPP mempools out of lwIP core to PPP code
Fix compile when PPP is not enabled
More PPP cleanups
Fix compile of api_lib.c when LWIP_MPU_COMPATIBLE is enabled
tcpip_priv.h: Add helper macros for APIs that use private mempools
tcpip_priv.h: More flexible API by including return value in
API_VAR_ALLOC macro
tcpip_priv.h: More API improvements
Fix bug #47507: PPP API does not support LWIP_MPU_COMPATIBLE
Fix compile when PPP is not enabled - Macro MEMP_NUM_PPP_PCB always needs
to be #defined
Fix compile of Simon's last change on MSVC
Fix compile warnings (==errors) in new httpd
Fix bug #47446: tcpip api calls: fail if mbox is invalid instead of
returning an error
Work on bug #47512: MPU_COMPATIBLE may fail on empty pool (not finished!)
tcpip_send_msg_wait_sem() can return void now due to my last changes
Revert "tcpip_send_msg_wait_sem() can return void now due to my last
changes"
Fix compile errors found by Erik Ekman's Travis-CI
Work on bug #47512: MPU_COMPATIBLE may fail on empty pool (still not
finished)
Remove netconn_recved() call - it was only needed in sockets
implementation and contributed to bug #47512
Fix bug #47512: MPU_COMPATIBLE may fail on empty pool
Fix bug #47641: lwIP would accept IPv6 source addresses from the network
that are mapped IPv4 adresses
Dirk Zigelmeier (1):
netif_get_ip6_addr_match/netif_add_ip6_address must take a const ip6addr
to be usable
Edgar Bonet (3):
SNMP, Missing const qualifier on internet_nodes[] in mib2.c.
sockets: do not assume defined(FD_SET) implies defined(FD_SET_VAL).
Fix documentation of TCP_WRITE_FLAG_MORE.
Erik Ekman (19):
Add unit tests for DHCP
PPP: Add option to skip FCS table
Don't mark arrays as const since they are modified by the test
Remove newlines in LWIP_ERROR calls
netif: Update header file documentation
Restore DHCP relay test packet numbers
err, debug: add missing ERR_ALREADY to lwip_strerr()
Fix edge case in pbuf_take_at()
test_tcp_oos: Remove last_dropped variable, never read
test_etharp: Fix warning about braces
Fix tests after ip4_current_header() made const
Add functions to join/leave IGMP group by netif
Add functions to join/leave v6 multicast group by netif
mld6: Simplify join/leavegroup()
Remove old comments about DHCP setting netif up
PPP: Fix shadowing of global declaration
PPP: Fix shadowing of global declaration
PPP: Fix shadowing of global declaration
PPP: Fix shadowing of global declaration 'sha1'
Fatih AÅıcı (1):
snmp: Fix a memory leak
Fred Baksik (2):
LWIP_ASSERT: check for LWIP_PLATFORM_ASSERT if LWIP_NOASSERT is not
defined.
LWIP_PLATFORM_DIAG: check if LWIP_PLATFORM_DIAG is defined as needed.
Freddie Chopin (9):
SNMP: source of ocstrncpy() and objectidncpy() may be const
SNMP: mib-2.system.sysDescr is read-only, so add const qualifiers to
functions and pointers
SNMP: use MEMCPY() instead of ocstrncpy() and objectidncpy()
SNMP: mib-2.system.sysObjectID is read-only, so make the object "static
const" and modify just the pointer; snmp_get_sysobjid_ptr() and
snmp_set_sysobjid() take a pointer to "const" object now
snmp_trap_header_sum(): use strlen() to get the length of community string
msg_in.c, snmp_msg.h: don't hardcode size of community string
msg_in.c, msg_out.c, snmp_msg.h: rename snmp_publiccommunity to
snmp_community, update descriptions
msg_in.c, snmp_msg.h: convert snmp_community to a modifiable pointer
msg_in.c, msg_in.c: add snmp_get_community() and snmp_set_community()
accessors
Grant Erickson (3):
autoip: add autoip_remove_struct
This patch addresses the following error when compiled against clang/LLVM
3.3 with -std=c++11:
Add RFC3542-style checksum compuation on raw, IPv6 sockets
Greg Renda (1):
fixed bug #38210 (ip reassembly while remove oldest datagram)
Henrik Persson (2):
Segfault in dhcp_parse_reply if no end marker
Fix corner case with dhcp timeouts
Ivan Delamer (51):
Fixed bug in serialization of IPv6 addresses.
Use target address as source address in IPv6 neighbour advertisement
Add cast to IP6_ADDR_BLOCKx
Initialize recvmbox size for undefined netconn type, to supress
Fix bug #34526: nd6_queue_packet() frees too much if out-of-memory
handle NULL when parsing IPv6 address (check for formatting)
Conditional compilation in ppp.c according to PPP_ options.
Use pppRecvWakeup only if PPP_INPROC_OWNTHREAD is defined.
Generate ICMPv6 responses from a context other than input callback
Add IPv6 timeouts to check for MEMP_NUM_SYS_TIMEOUT).
Added parenthesis to netif/ip6 macros.
bug #34846: time-exceeded was sometimes not sent to original fragment
Allow unicast NA messages without LLA option, in accordance to RFC2461
Set ip_data.current_netif earlier to allow ICMPv6 packets in ip6_fwd.
Fixed error in calculating some IPv6 option header lengths.
Support IP_HDRINCL in ip6_output() and ip6_output_hinted(),
Check that pbuf_header succeeds in IPv6 reassembly.
Early exit when checking if ip6 reassembled packet is valid.
Check arguments in nd6, and some other minor fixes nearby.
Missing declarations in supporting IP_HDRINCL.
Disable leftover ND6 queueing code when !LWIP_ND6_QUEUING.
Support single-packet queueing in ND6 (similar to ARP), when
Fix bug #36391 - inet6_addr_to_ip6addr()
fixes bug #36389: Use IPv6 Src Address of Echo Response as Destination
In ip6_input(), accept solicited node packets that match the receiving
Fixed #define that was commited by mistake.
In ip6_input(), do not accept link-local packets on netifs other than
Allow setting/getting socket option IPV6_V6ONLY for stream sockets
Add a "NULL" output function for ipv6 by default, to avoid NULL
Fixed typo in previous commit.
Fix bug #37959: ip6_debug_print prints plen, nexth, hoplim in wrong
Removed unused netif flag for point to point connections
Removed unused netif flag for DHCP
Modified netif flag values.
fixed bug #44565: PPPOS support in tcpip thread breaks SLIP
fix ip6 part of bug #43904: ip_route() and ip6_route() must detect
added macros for handling IPv6 multicast filter callback.
Pending fix for bug #37993: IPv6 Does Not Subscribe to Link-Local
fixed bug #39226: Validity of netif IPv6 address is not always checked
renamed ND6_RA_FLAG_OTHER_STATEFUL_CONFIG to ND6_RA_FLAG_OTHER_CONFIG
fixed bug #42885 nd6_reachability_hint() accepts an address of an
fixed bug #43095. Check actual link-layer address option length, versus
fixed bug #43843: ip6_addr_ismulticast_ doesn't allow for transient
fix bug #44578: Build fails for IPv6-only configuration
fix bug #44586: nd6_send_rs() pbuf size error
Small bug fix in ipaddr_ntoa_r when IPv4 and IPv6 are enabled.
Bug fix: properly use unspecified source address for router solicitation
Only send RS messages if we have a LL address in some state other than
changes to ip6addr_aton() to avoid crash with some ill-formatted
Improved IPv6 address formatting in ip6addr_ntoa_r().
Remove 6LowPAN flag that will not be used.
James Smith (2):
Applied patch by James Smith to implement IPV6_V6ONLY support in
Fix bug #36857: tcp_listen_dual_with_backlog() only works with ANY
Jan Breuer (4):
LwipMibCompiler: Fix generating SnmpScalarArrayNode callbacks
LwipMibCompiler: Remove false positive root entities
LwipMibCompiler: preserve upper case in comments
LwipMibCompiler: Don't preserve upper case on generated variables
Jay Logue (1):
Enable support for IPv6 loopback
Joel Cunningham (23):
fixed bug #43028 (IP_MULTICAST_TTL affects unicast datagrams)
Fix netbuf_destport() when LWIP_CHECKSUM_ON_COPY is not enabled
netif, loopif: set link up on loopback interface
IPv6 sockaddr clean ups
Add multicast support to loopif
Fix typos from task #12243
Sockets: add sendmsg
Hook up TCP cachehit stat
Add writev function
Update socket options comments
Update snd_queuelen comment documentation
Correct comment word usage in ip4_frag.c
Fix blocking close with LWIP_SO_SNDTIMEO
Fix type on snmp_set_test_ok to be snmp_err_t
Define LWIP_CHKSUM_COPY_ALGORITHM when port provides LWIP_CHKSUM_COPY
macro
Update lwip_selscan documentation
Optimize lwip_selscan()
Fix bug in FIONREAD handling in LINUXMODE
Allow backlog to be updated
Optimize sendmsg UDP pbuf chain creation
don't fail closing a socket/netconn when failing to allocate the FIN
segment; blocking the calling thread for a while is better than risking leaking
a netconn/socket (see bug #46701)
Fix year in recent CHANGELOG entries
udp: use netif addr as src for multicast sockets
Mark Lakata (1):
PPP, IAR EWARM won't compile ppp-new due to keyword clash
Philip Gladstone (1):
Patch #8360 (Speed up the acquisition of SLAAC addresses) - adapted to
bug #43784
Philipp Toelke (1):
httpd: fix sending of data from send_headers
Robert Szewczyk (1):
pbuf_take: make it comply with API specifications
Simon Goldschmidt (192):
Fixed bug #33802 tcpip: tcpip_callbackmsg_new sets msg->type to wrong type
Fixed bug #33801 Corruption of nd6 tables
Fixed bug #33804 LWIP_IPV6_MLD #define missing from mld6.c
(bug #30185): added LWIP_FIONREAD_LINUXMODE that makes ioctl/FIONREAD
return the size of the next pending datagram.
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.
ETHARP_SUPPORT_STATIC_ENTRIES: don't need the member 'static_entry' on
struct etharp_entry, we can use 'state' to mark them as static
ETHARP_STATE_STABLE_REREQUESTING: no need for member 'netif' in 'struct
etharp_entry' if we re-request only from etharp_output() and use etharp_tmr()
to reset the state of such entries to ETHARP_STATE_STABLE: that way, we also
only send one ARP request per ARP_TMR_INTERVAL, but only if the entry is really
still used.
correctly prefix all functions with 'etharp_' (also static functions)
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).
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.
forgot CHANGELOG: 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.
init.c: changed some checks from runtime to compiletime (had to adapt
some defines in ip.h for that)
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 and only returns EWOULDBLOCK if the buffers
are full
Removed commas from the end of enum lists
Fixed some C compiler warnings
Prevent non-static function that is not declared in header file
IPv4: splitted IPv4 header fields version/len and tos, made macros depend
on BYTE_ORDER to prevent unnecessary calls to htons()
ETHARP_SUPPORT_VLAN: add support for an external VLAN filter function
instead of only checking for one VLAN (define ETHARP_VLAN_CHECK_FN)
adapted unit tests to changes after adding IPv6 support
Fixed complier error for CHECKSUM_CHECK_TCP==0
fixed bug #33962 TF_FIN not always set after FIN is sent. (This merely
prevents nagle from not transmitting fast after closing.)
fixed bug #34121 netif_add/netif_set_ipaddr fail on NULL ipaddr
fixed bug #34122 dhcp: hostname can overflow
fixed bug #34112 Odd check in pbuf_alloced_custom (typo)
fixed bug #34057 socklen_t should be a typedef
fixed bug #33956 Wrong error returned when calling accept() on UDP
connections
fixed bug #34124 struct in6_addr does not conform to the standard
added netif remove callback (bug #32397)
fixed bug #34111 RST for ACK to listening pcb has wrong seqno
Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/lwip
fixed bug #31809 LWIP_EVENT_API in opts.h is inconsistent compared to
other options
netconn_alloc(): return on invalid protocol instead of initializing mbox
size to 0
unit tests: correctly handle small PBUF_POOL_BUFSIZE settings, prevent
NULL-pointer-deref. (ooseq test is still not running correctly...)
fixed bug #33952 PUSH flag in incoming packet is lost when packet is
aggregated and sent to application
DHCP uses LWIP_RAND() for xid's (bug #30302)
Make LWIP_RAND optional (useful for small targets)
fixed bug #34072: UDP broadcast is received from wrong UDP pcb if udp
port matches
Fixed typo: TCP_SNDQUEUELOWAT must be less than TCP_SND_QUEUELEN (as
checked in init.c), not greater
lwip_accept: fixed warning about accessing uninitialized 'port' when
SOCKETS_DEBUG is enabled
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);
use pcb->mss instead of TCP_MSS for preallocate mss-sized pbufs (bug
#34019)
nd6: use a static buffer to process RA options instead of using
mem_malloc()
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)
Converted runtime-sanity-checks into compile-time checks that can be
disabled (since runtime checks can often not be seen on embedded targets)
fixed default value of TCP_SND_BUF to not violate the sanity checks in
init.c
Implemented timeout on send (TCP only, bug #33820)
Corrected fix for bug #34072 (UDP broadcast is received from wrong UDP
pcb if udp port matches): pcbs bound to IPADDR_ANY did not receive broadcasts
any more (bug #34294)
fixed bug #34355: nagle does not take snd_buf/snd_queuelen into account
Fixed tcp_accepted define (need brackets around the parameter)
fixed bug #34360 tcp_shutdown: RST on unacked is not send when shutting
down both rx AND tx
fixed bug #33871: rejecting TCP_EVENT_RECV() for the last packet
including FIN can lose data
Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/lwip
Reverted invalid fix for invalid bug #34360 done yesterday...
fixed bug #34377 MEM_SIZE_F is not defined if MEM_LIBC_MALLOC==1
fixed unit tests (one TCP test failed, removed comma at the end of array
initializers)
added unit tests for data-after-FIN
fixed bug #28288: Data after FIN in oos queue
Implemented limiting data on ooseq queue (task #9989) (define
TCP_OOSEQ_MAX_BYTES / TCP_OOSEQ_MAX_PBUFS in lwipopts.h), added unit test for
this new feature
Tried to fix bug #32417 ("TCP_OVERSIZE seems to have problems with
(fast-)retransmission"): Reset pcb->unsent_oversize in 2 more places...
fixed bug #34447 LWIP_IP_ACCEPT_UDP_PORT(dst_port) wrong
fixed bug #34426: tcp_zero_window_probe() transmits incorrect byte value
when pcb->unacked != NULL
Added unit test case for persist timer / zero window probes
slightly rearranged freeing an acked segment to prevent keeping the
reference too long
added unit test cases for seqno wraparound on fast-rexmit and rto-rexmit
(unsent/unacked lists must be correctly sorted)
fixed bug #34534: Error in sending fragmented IP if MEM_ALIGNMENT > 4
fixed bug #34540: compiler error when CORE_LOCKING is used and not all
protocols are enabled
fixed bug #34541: LWIP_U32_DIFF is unnecessarily complex: removed that
define
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
fixed bug #34569: shutdown(SHUT_WR) crashes netconn/socket api
fixed bug #34587: TCP_BUILD_MSS_OPTION doesn't consider netif->mtu,
causes slow network
fixed default values of TCP_SNDLOWAT and TCP_SNDQUEUELOWAT for small
windows (bug #34176 select after non-blocking send times out)
fixed bug #34592: lwip_gethostbyname_r uses nonstandard error value,
removed those unused (nonstandard?) error values from arch.h
Changed C++ comments to C style
fixed bug #38066 Raw pcbs can alter packet without eating it: added
assertion to check that p->payload is unchanged
fixed bug #37705 Possible memory corruption in DNS query
fixed bug #37705 Possible memory corruption in DNS query
Added additional sanity check that all headers (without IP- or TCP
options) fit into the first pbuf.
Fixed bug #37893 Unused variables in tcp_out (and in udp.c/.h)
fixed more unused variables
fixed bug #38097 pbuf_free_ooseq() warning
fixed bug #37665 ip_canforward operates on address in wrong byte order
Removed the demand to post trivial patches to lwip-users, things keep
getting lost there.
fixed bug #38701 (wrong comment on tcp_pcb::snd_queuelen
Fixed bug #38586
fixed bug #38526 Coverity: Recursive Header Inclusion in ip6.h
fixed possible division by zero
patch #8008 Fix a potential null pointer dereference in assert
patch #8030: fixed spelling of "received"
- removed include instead of commenting it out;
bug #37585/task #12600: fixed struct in6_addr.s6_addr to conform to spec
partially fixed bug #37585: IPv6 compatibility (in socket structs)
fixed bug #39898 tcp_fasttmr() possible lock due to infinte queue process
loop
bug #41188 Alignment error in memp_init() when MEMP_SEPARATE_POOLS==1
fixed bug #41041 Potential use-after-free in IPv6 reassembly
Added an assert that should trigger bug #41009 (IPv6 reassembly broken on
64-bit platforms)
updated CHANGELOG
patch by Thomas Faber: patch #8241: Fix implicit declaration of ip_input
with LWIP_TCPIP_CORE_LOCKING_INPUT disabled
Fixed chrysn's patch: it only works for NO_SYS :-(
SNMP: fixed typo: snmp_set_sysdesr -> snmp_set_sysdescr
Updated CHANGELOG
Patch #7904 by Grant Erickson: Add mnemonics for IPPROTO_{ICMP,ICMPV6}
Updated CHANGELOG
patch #7912 by Grant Erickson: Add a macro for introspecting the IPv6
loopback address.
Added IPv6 loopback address to loopback-netif, fixed last commit
Fixed LWIP_IPV6==0
patch #8160 (by Valery Ushakov): Simplify ip6_addr_set_solicitednode()
and ip6_addr_cmp_solicitednode().
patch #8027: Completed HW checksuming for IPv4 and IPv6 ICMP's
patch #8237 by Brian Fahs: tcp_rexmit_rto fails to update
pcb->unsent_oversize when necessary
patch #8021 Add INET[6]_ADDRSTRLEN Preprocessor Definitions If Not
Previously Defined
patch #8009 by chrysn: stats_display_igmp used by ml6d
Updated CHANGELOG
patch #7920 thread-safe api dhcp calls for dhcp_infor, dhcp_renew and
dhcp_release
patch #6537/#7858: TCP window scaling support (OOS queueing still needs
special handling)
Added .gitattributes to normalize CRLF
Merge branch 'master' of git.sv.gnu.org:/srv/git/lwip
TCP window scaling: change tcp_pcb::acked to u32_t when window scaling is
enabled to prevent an overflow when more than 64 Kbytes are ACKed
Added comments to clarify the LWIP_TCP_TIMESTAMPS option.
Fixed forgotten brackets in last commit
Fixed misleading comment on sys_untimeout()
Another fix to window scaling: support queueing more than 64 KByte in
ooseq data
Merge branch 'master' of git.sv.gnu.org:/srv/git/lwip
Unit test patch by Erik Ekman: use macro to store correct testcase name
Minor fixes to init.c preprocessor checks
Fixed typo.
Patch #7815 by James Smith: added inet_ntop/inet_pton
patch #7885: modification of api modules to support FreeRTOS-MPU (don't
pass stack-pointers to other threads) (based on patch by Artem Pisarenko)
Minor: coding style cleanups...
patch #7993: Added support for transmitting packets with VLAN headers via
hook function LWIP_HOOK_VLAN_SET and to check them via hook function
LWIP_HOOK_VLAN_CHECK
Added missing IPPROTO_RAW
fixed bug #41499 netconn::recv_avail can overflow
netconn::recv_avail: forgot one line
IGMP: fixed !define LWIP_RAND case
Fixed comment on LWIP_HAVE_LOOPIF
fixed bug #40050 SNMP problem with MIB arrays > 255
fixed bug #39882 No function shall set errno to 0
Fixed bug #39718: disconnecting an UDP socket reports an error
fixed bug #39683 Assertion "seg->tcphdr not aligned" failed with
MEM_ALIGNMENT = 8
Fixed IPv6 raw checksumming after a hint from Philip Gladstone
Fixed netconn_gethostbyname for LWIP_MPU_COMPATIBLE: removed invalid
check on 'addr', copy 'name' since it could be located on the caller's stack
fixed bug #34682 Limit ARP request flood for unresolved entry
fixed bug #34681 Limit ARP queue length by ARP_QUEUE_LEN (=3)
fixed bug #39076 ETHARP_STATS is not defined when LWIP_STATS is 0
fixed bug #39145 IGMP membership report for 224.0.0.1
Fixed bug #39224 Unused IPv6 address state defines in nd6
fixed bug #39225 udp.c uses netif_matches_ip6_addr() incorrectly; renamed
function netif_matches_ip6_addr() to netif_get_ip6_addr_match()
fixed bug #39356 Wrong increment in pbuf_memfind()
fixed bug #39514 ip_route() may return an IPv6-only interface
etharp_entry::ctime must be u16_t after changing ARP_TMR_INTERVAL from 5
seconds to 1 second when fixing bug #34682
fixed bug #41729 Some socket functions return Exyz instead of -1
fixed bug #38404 getpeeraddr returns success on unconnected/listening TCP
sockets
fixed bug #41680 raw socket can not receive IPv6 packet when
IP_SOF_BROADCAST_RECV==1
fixed bug #40303 DHCP xid renewed when sending a DHCPREQUEST
fixed bug #35928 BSD sockets functions must set errno for
POSIX-compliance (patch by Mason)
- fixed bug #36153 TCP Cheksum error if LWIP_CHECKSUM_ON_COPY=1;
Fixed bug #41787 DHCP Discovery is invalid when an IP is set to thet
netif (send discover, request and decline from 'any').
Multiple small/minor issues: bug #36492 Static Analysis on code 1.4.0
Fixed compiling broken ip6.c after last commit
Fixed bug #36210 lwIP does not elicit an empty ACK when received
unacceptable ACK
Fixed bug #36167 tcp server crash when client closes (maximum window)
try to fix another warning from static code analysis
lwip_gethostbyname: fixed using uninitialized variable when
LWIP_DNS_API_HOSTENT_STORAGE==1
Fixed bug #35874 reserved identifier violation (removed leading
underscores from header include guards)
Fixed typo-bug introduced some months ago while fixing bug #41041...
Fixed bug #41686 (ipv4 ip_reass() crash error) introduced some months ago
while fixing bug #41041...
fixed bug #37184 tcp_write problem for pcbs in the SYN_SENT state
fixed bug #37969 SYN packet dropped as short packet in tcp_input function
again bug #26069: Documentation of tcp_connect() incorrectly describes
handling of errors
fixed bug #42987 lwIP is vulnerable to DNS cache poisoning due to
non-randomized TXIDs
Fixed CHANGELOG to correctly show the differences to 1.4.1 (got messed up
because git master was developed in parallel to the 1.4.1 branch, both starting
at 1.4.0)
fixed bug #42299 tcp_abort() leaves freed pcb on tcp_bound_pcbs list
fixed bug #42117 lwip_fcntl does not set errno
minor: fixed a comment typo only
Moved #define NETDB_ELEM_SIZE from dns.h to netdb.h, where it belongs,
and use sizeof() instead of hacked constants that are wrong on 64-bit platforms
netconn_gethostbyname() needs to check for name length when
LWIP_MPU_COMPATIBLE==1
fixed bug #43110 (call getpeername() before listen() will cause a error)
by re-sorting the error numbers and letting listen() continue on ERR_CONN
DNS: split request callback information from actual DNS table to be able
to optimize memory usage for multiple parallel requests (and clean up the code
a bit)
Merge branch 'master' of git.sv.gnu.org:/srv/git/lwip
DNS: minor coding style fix: pEntry -> entry
revert accidentally committed test code
added source port randomization to make the DNS client more robust (see
bug #43144)
DNS: does not support IPv6, may return a name cased different than the
request (when multiple requests are combined to one)
added pbuf_take_at() and pbuf_put_at() (in preparation for dns.c changes)
dns.c: change dns_send/dns_recv to operate on pbuf, not on contiguous
buffer -> dns_payload_buffer/DNS_MSG_SIZE can be removed
fixed bug #43192 tcp_enqueue_flags() should not check TCP_SND_QUEUELEN
when sending FIN
minor: fixed coding style in pppapi.h/.c
tabs -> spaces in opt.h (ppp-related)
init.c: LWIP_PPP_API needs NO_SYS==0
patch #8480 Fix handling of dns_seqno wraparound
Parts of patch #8397 Typos corrected in comments and text outputs
More of patch #8397 Typos corrected in comments and text outputs
Reverted typo fix for vj.c which is in the original sources: no need to
add a diff only because of a typo...
fixed bug #43173, pppos_input() corrupts memory if IP_FORWARD is enabled
Stathis Voukelatos (2):
Fixed netif_poll() operation when LWIP_LOOPBACK_MAX_PBUFS > 0.
Fixed size calculation in MALLOC memory pool creation macro.
Stephan Linz (5):
slipif: fix several compiler warnings
ip_frag: fix compiler warnings, unused variable
PPP: fix typo in debug message
IPv4: fix some meaningless debug messages
PPP: CCP: add error debug messages for dropped packets due to missing
transmit or receive CCP method
Stian Sebastian Skjelstad (1):
Forget addresses set up by SLAAC when prefix expires.
Stian Skjelstad (1):
udp: multicast, fix udp_set_multicast_ttl() parameter and structure
member conflict
Sylvain Rochet (738):
Early development stage of an attempt to port PPPd 2.4.5 to lwIP.
added LCP adaptive echo from Debian patches, I like the idea
added IPCP no/replace default route option from Debian patches, I like
the idea
using rp-pppoe pppd exits with EXIT_OK after receiving a timeout waiting
for PADO due to no modem attached, from Debian patches
pppd: Terminate correctly if lcp_lowerup delayed calling fsm_lowerup
fixed demand_rexmit() with new IP addr, maybe we will never support
demand or drop it, but it is already patched just in case
PPPoL2TP patch from Debian, not used yet, but already fixed
using UNTIMEOUT macro instead of timeout()
CHAP auth is now working
removed passwd_from_file usage, removed some of unused PAP file fetch code
moved refuse_mschap, refuse_mschap_v2, refuse_eap from globals to
ppp_settings
removed user and passwd globals
removed run_program() support
world changed, removed IPX support
ported randm module from previous PPP port
reworked magic/randm
Removed TDB code, which we cannot port, because it needs a filesystem.
replaced MIN to LWIP_MIN
don't compile wkmodulus[] if SRP is not used
Replaced md4/md5/sha1 implementations to PolarSSL ones
modified auth_reset() so that we can choose which auth we want
Added PolarSSL DES library, which is necessary for MSCHAP.
Removed uneeded crypt() from auth.c and session.c
Revert "Added PolarSSL DES library, which is necessary for MSCHAP."
Revert "modified auth_reset() so that we can choose which auth we want"
Revert "Replaced md4/md5/sha1 implementations to PolarSSL ones"
modified auth_reset() so that we can choose which auth we want
now using OpenBSD DES implementation
removed salted DES ( known as crypt() function ), we don't need it
Removed all stuff requiring encryption.
removed useless system header from EAP
EAP support is now optional
Revert "Removed all stuff requiring encryption."
Revert "removed salted DES ( known as crypt() function ), we don't need
it"
Revert "now using OpenBSD DES implementation"
Revert "Revert "Replaced md4/md5/sha1 implementations to PolarSSL ones""
Revert "Revert "Added PolarSSL DES library, which is necessary for
MSCHAP.""
fixed MS-CHAP and MS-CHAP-V2, MD4 polarssl uses bytes as input length,
not bits
Commit to prouve we copied the raw BSD PolarSSL files
cleaned PolarSSL files
removed HMAC support from ciphers
disabled almost all PPP options strings and support as well as useless
file-based auth code
more and more ppp options removal
using MEMCPY() instead of memcpy()
replaced BCOPY to lwip-MEMCPY
disabled upap_rauthreq()
less and less auth code
and less and less useless auth code (will this end ?)
MSCHAP is now an optional compile-time feature
CHAP support is now an optional compile-time feature
PAP support is now an optional compile-time feature
changed PolarSSL compile-time condition
removed some useless Linux calls
autoselecting which PolarSSL files to use support added
Linux ioctl() gone, ECP support optional, CCP support optional
removed pathnames.h and pidfile support
demand support is now a compile-time option
removed demand prototypes if not compiled-in
print packet functions are now optional
removed more protent fields only used by print packets functions
removed set/getenv functions
POSIX signal support removed
added necessary pppSingleBuf() call before passing the packet to the
appropriate PPP subsystem
clarifying what is actually the "datainput" entry in protent
PPP interval timeout support disabled (using lwIP timeout support),
protocol_name() moved to our PPP impl and disabled by default
re-enabled auth notifiers
PPP notifier support is now a compile time option
moved new_phase() to our own implementation, re-enabled new_phase()
support
PPP statistics optional (non working) compile time option added
more ppp.c cleaning
resolve conflit, ipcp.c defines ip_ntoa() which is already defined by
lwIP, disabled ipcp.c::ip_ntoa() and using lwIP one
added pppmy.h in all .c files to easily find conflicts
protent table moved to our PPP impl
ppp.c disabled, everything required for lwIP moved to our impl
cleaning unused stuff in pppd.h, syslog() is no more used
pppd.h disabled, renamed MAX() to LWIP_MAX()
removed pppd.h and ppp.c, renamed pppmy.c to ppp.c and pppmy.h to ppp.h
removed sys-linux.c
removed headers that were initially copied but not used (yet)
fixed all PPP compilation warnings with -Wall
fixed most PPP compilation warnings with -pedantic
build PolarSSL MD5 if MD5_SUPPORT is enabled (for randm)
make it build with avr32-gcc
removed all system headers except the strict minimum
demystified a bit the PPP impl, renamed output() to ppp_output() to
prevent conflict
clarified a bit more ppp.[ch]
added ECP_SUPPORT in opt.h (disabled by default); renamed MD5_SUPPORT to
PPP_MD5_RANDM, which is more meaningful
removed all useless header files, merged ppp_defs.h to ppp.h
LQR (Link Quality Report) support is now optional
more ppp.[ch] cleaning
don't build any PPP file if PPP support is disabled
automatically enable MD5 Random support if CHAP or EAP is enabled
fixed MD5 Random enabling conditions
re-added PPPoS code from the previous port, it builds, maybe it works
ppp_impl.h is back!
VJ support is back!
removed CamelCase for all ppp.h declared functions
removed CamelCase in ppp.c and ppp_impl.h, added compat macro in ppp.h
(but disabled for now)
disabled all plugins hooks
disabled all plugins hooks
cleaned depreacted __P() and __V() macros, removed the legacy varargs.h
header
cleared IDE warnings
fixed print_string() prototype
PPPoE reauth bug fixed
re-enabled LCP echo interval / echo fail
get_mask now returns "255.255.255.255" by default, which is what we want
in almost all cases on a PPP link
setting default route by default
we should reduce nak_buffer[] size
disabled ppp_over_ethernet_close(), which is not exported and probably
bogus, until we fix it
added missing initialisation in ppp_init.c
re-enabled DNS support
PPPoE is now guessing its MTU from the underlying netif MTU (in most
cases 1500 minus 8 = 1492, which is the most common PPPoE MTU)
added MTU support (using MRU from the peer)
fixed some debug strings
fixed typos s/parms/params/g
improved PPPoE callback with state values, so that PPP know exactly what
is happening on the PPPoE side
added a persist option (enabled by default for now until we add a way for
users to pass a ppp_settings structure)
added PPPoE persist support (don't timeout sending PADI packets)
fixed pbuf leaks in ppp_input() in case of packets not expected
fixed randm if random MD5 support is not enabled
PPP server support is now optional (disabled by default, not working
until PPP have a "listen" support)
removed malloc() from ms chap
dns server support is done, clearing FIXME entries
now using maxconnect from ppp_settings
print packet is working back, at least for PPPoE
pr_log is unused, don't even try to build it
unused ifunit global variable removed
removed multilink option when multilink support is not compiled
removed useless options
removed holdoff support, can be handled without persist mode outside lwIP
using idle_time_limit from ppp_settings
using our_name from ppp_settings (only used in server mode and disabled
by default)
moved debug option from options.c to ppp.c
options.c is now empty, removed
using PPP_DEBUG instead of debug global variable
phase global variable moved to ppp_control structure
removed useless error_count global variable
removed some useless extern
moved remote_name and explicit_remote global variable to ppp_settings
removed useless error_count global variable from ppp.c
removed unused "unsuccess" global variable
moved listen_time global variable to ppp_settings
moved exit status global variable to ppp_control
PPPoE persist is working, removing FIXME comments about that
moved hide_password global variable to ppp_options
moved ppp_settings to ppp_control, improved PPP API to really allow
multiple PPP sessions
renamed ppp_control to ppp_pcb, replaced unit number to ppp_pcb in all
ppp.h declared functions
ppp_set_auth() modified to handle new handled authtype (mschap + eap)
added missing EAP_SUPPORT macro
improved ppp_set_auth() mschap support
no more PPP unit number in PPPoE, now using ppp_pcb
pppoe now have access to the ppp_pcb structure, removed "persist" option
copy
ppp_close() on PPPoE actually works,
don't add ppp_pcb_rx to ppp_pcb struct if PPPOS support is disabled
started the unit to ppp_pcb replacement
removed all PPP unit in ppp.c except pih->unit and unit used in debugging
output
fixed PPPoS support, improved ppp_input()
removed ppp_input_header, replaced using 2 chained pbuf the only area we
need it
removed unit from ppp_ioctl()
auth.c functions now use ppp_pcb* as first argument
moved auth.c global variables to ppp_pcb
PAP and CHAP are now using ppp_pcb*
EAP is now using ppp_pcb as well
global variables removed from chap support
IPCP and LCP structures moved to ppp_pcb
protent prototype switched from unit to ppp_pcb
removed fsm->unit
IPCP global variables moved to ppp_pcb
FSM global variables moved to ppp_pcb
LCP global variables moved to ppp_pcb as well as input/output buffers
fixed PPPoS xmit_accm ppp_pcb variable access
no more pcb->unit, new user selectable pcb->num for debugging purpose
(like netif does)
removed unused inpacket_buf in ppp_pcb
NUM_PPP is defined is opt.h, clearing from ppp_impl.h
fixed most "unit 0" used instead of pcb pointer
fixed pppoe_find_softc_by_session() when we have the same PPPoE session
id on 2 ethif
prevent conflict with existing (md4|md5|sha1|des) object file if polarssl
is already used elsewhere in the project
cleanified old style C function declaration from utils.c
moved back temporarily moved structure definitions from various headers
to ppp.h during unit to ppp_pcb transition
PPP_PCB are now allocated using memp_alloc()
PAP is now using pbuf instead of pcb->outpacket_buf
CHAP is now using pbuf instead of pcb->outpacket_buf
pcb->outpacket_buf replaced by pbuf everywhere it was used
do not allocated pbuf of more than pcb->peer_mru instead of PPP_MRU, to
save some memory
pcb->nak_buffer replaced with a pbuf
moved ppp_settings.lax_recv and ppp_settings.noendpoint bool types (so
char) to the ppp_settings bitfield
ppp_settings.remote_name is now a compile time option
reduced ppp_settings types size
idle time limit and connect time limit are now compile time options
removed useless flags from ppp_settings
more idle time limit macros
don't duplicate user and password anymore, anyway, the PPP user will have
them already allocated as static strings or from configuration flash/file
replaced exit code (pcb->status) with ppp_ioctl()
removed pcb->num if PPP debug is not compiled
improved much more ppp_pcb entry size
reduced MTU/MRU variables
removed pcb->chap_mdtype_all
LCP and IPCP variable size improved
some more improvements to ppp_pcb
improved PAP control structure size
improved CHAP structure size, however there is not much we can do
improved lcp_options structure size
improved IPCP control structure size
added raw IPv6 PPP files
added compilation macro to eui64.[ch] and cleaned unix-dependant code
PPP IPv6 local link support added
don't destroy and create the PPP interface each time sifup() is called
(it is actually called twice with IPv4 + IPv6 enabled)
randomized seed when using MD5 random support and PPPoE
replaced call from ppp_write to ppp_write_pbuf
merged ppp_write and ppp_write_pbuf
improved ppp_write_over_ethernet(), don't MEMCPY the entire packet into a
new pbuf
SNMP prefers tot_len
fixed PPPoS suppport compilation
fixed sent PPPoE dump packet and copy everything we need after
pppoe_xmit() free'd the pbuf
improved ipv6cp_options struct size
improved FSM structure size
moved ipv6cp global variables to ppp_pcb
don't build ppp_netif_output_ip6() if PPP IPV6 support is disabled
set LL addresses before bringing the interface up for IPv6
added ppp_pcb to ppp callback
phase must be set to initalize each time we try to reconnect
PPP timeouts required depend on the number of allowed PPP sessions
setting tot_len before using it, oops
"ISO C forbids conversion of function pointer to object pointer type" -
removed callback function pointer display in debug messages. Anyway, this is
quite a meaningless information.
display IPV6CP packets
fixed some endianess issues with PPPoS
now displaying sent packet before PPPoS add its escaping, trailing flags,
...
fixed PPPoS multithread support
clarified PPP_INPROC_OWNTHREAD documentation
removed bool type, replaced by u8_t
replaced u_int{8,16,32}_t to lwIP u{8,16,32}_t types
Merge branch 'master' into ppp-new
fixed LCP Echo Request/Reply feature
improved PPP API header documentation
initialize PPP in the lwip_init() function
added PPP Sequential API module, based from the Network Interface
Sequential API module
some buggy compiler get confused with duplicated labels used in enum
tcp_state and fsm.h, prepending PPP's ones
some buggy compiler get confused with duplicated labels used in enum
tcp_state and fsm.h, prepending PPP's ones
added L2TPv2 (PPP over L2TP, a.k.a. UDP tunnels) support
added holdoff support for PPPoE and PPPoL2TP when persist mode is used
L2TP output netif is now selectable, making it useful to select a default
route for the L2TP tunnel, in case the default interface is set to the L2TP PPP
interface
improved PPP default interface management, added ppp_set_default() API
call
replaced PPPoL2TP printf() used to debug to PPPDEBUG a/o deletion
saving 14 bytes per PPPoE pbuf; not allocating struct eth_hdr two times
per packet
saved some bytes from PPPoE control block, improved PADI retries
reduced call stack by one when receiving a PPPoE disc packet
removed some FIXME that are not relevant anymore
UCHAR_MAX is defined in limits.h, I do not want to add any system
include, replaced to 0xff
improved persist mode, we now clear everything we can in the PPP control
block structure, ensuring we start a new session from a clean state
Do not destroy the PPP control block automatically anymore, added
ppp_delete() API function.
ppp_close() PPPoL2TP support added
improved PPP API, added ppp_reopen()
handle cases when ppp_close() is called while session is in dead or
holdoff phase
don't call ppp_hup() and ppp_stop() if PPPoE or PPPoL2TP failed to connect
fixed some more PPP phase state machine issues
switch to phase dead if PPPoE or PPPoL2TP failed to connect
pcb->link_status_cb must be set, we don't need to check each time we use
it if not NULL
removed time-based PPP phase state machine hacks from PPPoE dans PPPoL2TP
Merge remote-tracking branch 'origin/master' into ppp-new
Merge remote-tracking branch 'origin/master' into ppp-new
removed some compiler warnings in pppoe_disconnect()
Moved the include of lwip_md5.h or md5.h into the #if PPP_MD5_RANDM
block, as suggested by Ivan Delamer
Moved PPP headers into include/netif/ppp/, fixing bug #37040.
Added <string.h> header to ppp_impl.h, this appears to be required, found
out by Ivan Delamer.
added <stdlib.h> to ppp_impl.h, some PPP modules are using strtol()
PPP, renamed all functions using common names in utils.c that can
conflict with lwIP user code during link operation
PPP, added missing pppapi_delete() thread safe function
PPP, added missing entry in pppapi.h
Added PPPd follow-up file, so that we can track what is happening on pppd.
Added ChangeLog entry reporting all the work done in the ppp-new branch.
PPP, updated pppapi_reopen() to follow ppp_reopen() prototype change
Merge branch 'master' into ppp-new
PPP, don't allocate twice struct eth_hdr per PPPoE pbuf
PPP L2TP, only skip HDLC header if necessary
PPP, moved out PPPoS code into their own functions, improved ppp.c
readability
PPP, ppp_input() code cleaning, removed dead code, fixed indentation
PPP, using PBUF_POOL instead of PBUF_RAM pbufs for PPP negociation packets
PPP, improved fsm_sconfreq() allocated buffer size
PPP, cleaned persist and holdoff features
PPP, removed unnecessary ethif from ppp_pcb
PPP, added PPPoS reopen support
PPP, cleaned MTU,MRU variables
Merge branch 'master' into ppp-new
PPP, changed all the code enclosed between PPP_SERVER #if macro to our
PPP PCB structure, making it easier to support PPP server in the future
PPP, disable persist mode by default, so the default behavior does not
look like a buggy behavior. Fixes bug #37279.
PPP, adding const pragma to struct protent, saving about 200 bytes in
.data segment
PPP, adding const pragma to FSM callbacks, saving about 350 bytes in
.data segment
PPP, switched chap_digests linked list to a const table in .rodata/flash,
saving about 100 bytes in .data segment if chap(md5) and mschap is enabled
PPP, correctly cast int to u8_t in PPPCTLS_ERRCODE in ppp_ioctl()
PPP, using timeouts values defined in opt.h instead of values defined in
PPP headers or statically assigned values
PPP, moved DEFLOOPBACKFAIL from ppp/lcp.h to lwip/opt.h
PPP, improved PAP and CHAP timeout/request/maxrequests configuration
values
PPP, moved EAP timeouts and max requests default values to opt.h
PPP, moved PAP configuration to ppp_settings struct
PPP, moved EAP configuration to ppp_settings struct
PPP, moved FSM configuration to ppp_settings struct
Merge branch 'master' into ppp-new
PPP, fixed some IAR warnings
Merge branch 'master' into ppp-new
PPP, added missing semicolon (dammit)
PPP, fixed one more IAR warnings
PPP, "try" variable used in LCP might conflict with some buggy C++
compiler
Merge branch 'master' into ppp-new
Merge branch 'master' into ppp-new
PPP, fixed LCP delayed up feature
PPP, fixed return code coherency for ppp_netif_output_*() callbacks
(using ERR_* as expected by lwIP core instead of PPPERR_*)
PPP, free input pbuf left in ppp_delete()
PPP, added ppp_addrs() macro to get the pointer of the ppp->addrs struct
PPP, added define for u_long, u_int, u_short, u_char for compilers or
toolchains which don't have them
PPP, removed ppposapi_input(), unnecessary because pppos_input() is
already thread-safe
PPP, slight API change, great code factorisation
PPP, added ppp_free()
Merge branch 'master' into ppp-new
PPP, cleared compilation warning about unused variable 'pcb' in
ppp_drop() if neither VJ nor SNMP support are enabled
cleared compilation warning, C++ style comments are not allowed in ISO C90
reverted dhcp.c from DOS (CRLF) to UNIX (LF) format
Merge branch 'master' into ppp-new
picked up the wrong commit date in CHANGELOG, fixed
Merge branch 'master' into ppp-new
PPP, removed PPP_INPROC_OWNTHREAD feature, which almost only make things
harder
PPP, added PPP_USE_PBUF_RAM compile time option
PPP, moved PPP_INPROC_MULTITHREADED compile time option from ppp.h to
opt.h
PPP, reduced by one buffer PPPoS RX requirements in multithreaded context
PPP, added PPP notify phase support
Merge branch 'master' into ppp-new
Merge branch 'master' into ppp-new
PPP, fixed VJ compression/decompression output IP path
Merge branch 'master' into ppp-new
Merge branch 'master' into ppp-new
recently applied patches changed LF-terminated filed to mostly LF and
CR+LF only where the patches changed lines
Merge branch 'master' into ppp-new
normalize to LF (auto cleaned due to git attributes and must be commited
before switching branch)
Merge branch 'master' into ppp-new
Merge branch 'master' into ppp-new
Merge branch 'master' into ppp-new
Merge branch 'master' into ppp-new
Merge branch 'master' into ppp-new
Merge branch 'master' into ppp-new
PPP, most PPP headers are using u_long, u_int, u_short and u_char types,
moved typedef of those types before we include any PPP header
PPP, PPPoS, fixed IP forward from PPP to Ethernet by allocating PBUF_LINK
instead of PBUF_RAW if IP forwarding is enabled
PPP, VJ compression enabled, fixed IP forward from PPP to Ethernet by
allocating a PBUF_LINK instead of a PBUF_RAW if IP forwarding is enabled
Merge branch 'master' into ppp-new
PPP, from PPPD upstream, take out unused %r conversion completely,
PPP, from PPPD upstream, Don't crash if NULL pointer passed to vslprintf
for %q or %v
PPP, from PPPD upstream, accept IPCP ConfAck packets containing MS-WINS
options
PPP, updated pppd followup
PPP, PPPoE, fixed bug #42138, pppoe_destroy() called with wrong pointer,
PPPoE control block was never freed
Merge branch 'master' into ppp-new
Merge branch 'master' into ppp-new
Merge branch 'ppp-new'
fixed bug #43235, cleared compiler warnings when using gcc with -Wextra
option
fixed bug #43235, checking for non-existent preprocessor macros is
non-standard, added predefinition for all affected macros
fixed cosmetic bug #43499: wrong argument order in
src/include/netif/etharp.h defines
slightly improved compiler warning fixes
PPP, fixed some compiler warnings
CORE: fixed missing prototype for pbuf_header_impl() function
PPP, added const modifier on auth strings
PPP, fixed more compiler warnings
PPPAPI, added const modifier on auth strings
PPP, moved ppp_init() from public API (ppp.h) to private API (ppp_impl.h)
PPP,SLIP include lwip/sio.h after lwip/sys.h to prevent functions
prototype collision
PPP, from PPPD upstream, separate IPv6 handling for sifup/sifdown
PPP, from PPPD upstream, Eliminate some unnecessary ifdefs
PPP, updated pppd followup
inet_checksum: fixed prototype of lwip_standard_chksum() when
LWIP_CHKSUM_ALGORITHM == 1
opt: fix build without SNMP_COMMUNITY_EXT
snmp: syntax error fix on endif comment
PPP: moved netif out of PPP control block
PPP: removed ppp_new(), merged with ppp_over_X_create()
PPP: removed ppp_delete(), merged with ppp_free()
PPP: using a macro for ppp_set_default() instead of a function
PPP: ppp_init() is not a public function, moving it in private part
PPP: re-order functions in the common sense API order
PPP: moved duplicated init code from ppp_over_X_create() to ppp_new()
PPP: moved ppp_new() to low level protocol init for PPPoE and PPPoL2TP
PPP: removed PPPoE and PPPoL2TP callback status notifier
PPP: re-order prototypes, ppp_init before ppp_new
PPP: removed duplicated code in ppp_close()
PPP: re-order functions in the common sense API order
PPP: prepared callbacks from PPP core to low level protocols
PPP, prepare new callbacks for low level protocols
PPP, moved ppp_write and ppp_netif_output low level protocols functions
to respective low level protocol files
PPP, removed low level create functions from PPP core
PPP, moved low level protocol connect init to low level protocol files
PPP, generalized callbacks calls from PPP core, removed all PPPoE and
PPPoL2TP references
PPP: Moved PPPoS from ppp.c to pppos.c
PPP, add PPPoS CB for PPPoS private data
PPP, PPPoS needs vj.h
PPP, PPPoS moved fd from ppp_pcb to pppos_pcb
PPP, PPPoS, moved VJ from PPP core to PPPoS
PPP, PPPoS, renamed *sc pointer to *pppos, renamed *pcb pointers to
*pppos and *ppp
PPP, PPPoS, various static and const added
PPP, PPPoS, fixed build with PPP_FCS_TABLE=1
PPP, PPPoS, check if PPPoS configuration functions are used on PPPoS
PPP, PPPoS, using PPPoS PCB pointer on VJ and pppos_ configuration
functions
PPP, PPPoS, re-enabled PPPCTLG_FD
PPP, PPPoS, moved ppp.rx to pppos.rx
PPP, PPPoS, merged ppp(os)_pcb_rx to pppos_pcb
PPP, PPPoS, removed xmit_accm, almost duplicate of out_accm
PPP, PPPoS, moved out_accm from PPP core to PPPoS
PPP, PPPoS, structure size optimisation
PPP, PPPoE, improved removal from linked list
PPP, CORE, fixed callbacks return value
PPP, CORE, code cleaning
PPP, CORE, Fixed warning with PPP_PROTOCOLNAME enabled
PPP, all protocols, uniformised naming
PPP, CORE, prepared for lower protocols callbacks returning state
PPP, lower protocols, chained returns from local functions to callback
caller
PPP, chained returns up to ppp_open()
PPP, CORE, removed useless st variable in ppp_close()
PPP, chained returns up to ppp_free()
PPP, modified CHANGELOG about the previous large PPP rework
PPP, PPPoS, fixed warnings with PPPDEBUG disabled
PPP, CORE, Removed useless enabled_flag from struct protent
PPP, CORE, Removed (*datainput) from struct protent if not used
PPP, CORE, removed useless include of chap-new.h
PPP, CORE, beautified auth protocols debug
PPP, PPPoS, only check PPPoS PCB pointer if PPPoS is not the only enabled
lower protocol
PPP, PPPoX, added warnings about functions in headers which should not be
called from lwIP user application
CORE, enabling only PPPoL2TP is also a valid choice
PPP, CORE, now using const callbacks struct from lower level protocols
PPP, CORE, new callbacks, send_config, recv_config, vj_config
PPP, uniformised callbacks naming
PPP, PPPoS, added sub-ioctl commands
PPP, CORE, beautified ppp_ioctl()
PPP, PPPoS, moved VJ protocol handler to PPPoS
PPP, PPPoS, removed linked list
PPP, CORE, we don't need PPP_LINK_ENABLED_NUMBER anymore
PPP, PPPoS, code cleaning
PPP, PPPoS, added missing static modifier on pppos_netif_input()
PPP, PPPoE, removed PPPERR_ usage
PPP, PPPoL2TP, removed PPPERR_ usage
PPP, PPPoS, removed PPPERR_ on err_t return type
PPP, using err_t return type on ppp_ioctl()
PPP, using err_t return code instead of PPPERR_
PPP, added PPP documentation
PPP, Documentation, minor fixes
PPP, using PPP netif->num number instead of ppp->num
PPP, Documentation, fixed PPP_INPROC_MULTITHREADED default status
opt: clarified VJ support
PPP, CORE, compile out auth support if none of auth protocols are enabled
PPP, PPPoS, fixed PPP_INPROC_MULTITHREADED support
opt.h: fixed warnings if PPP auth support is not enabled
PPP, CORE, using u8_t on ioctl command instead of int
PPP, CORE, don't use ppp_ioctl() from PPP core, assign pcb->err_code
instead
PPP, CORE, remove the user ability to set the PPP error code
(PPPCTLS_ERRCODE)
PPP, CORE, improved, re-ordered and re-numbered IOCTL commands
PPP, CORE, IPv6, if_up flag used instead of if6_up for outgoing IPv6
packets, fixed
PPP, IPv6, fixed unicode in file headers
PPP, CORE, removed if_up and if6_up checks in sifdown() and sif6down()
PPP, IPV6, enable PPP IPv6 by default if LWIP_IPV6 is set
PPP, CORE, using ip*_set_* functions instead of IP4_ADDR and SMEMCPY
PPP, CORE, ppp_ioctl PPPCTLG_UPSTATUS command now returns true if only
IPv6 is up
PPP, IPv4 support is now optional
PPP, CORE, disable VJ is PPP IPV4 is compiled out
PPP, FSM, fixed "timeout sending Config-Requests" output
PPP, CORE, fixed PPP phase state machine when ppp_close() is called
during HOLDOFF phase
PPP, CORE, carrier lost signal, fixed FSM mismatch
PPP, CORE, ppp_close() and ppp_sighup() ended up sharing almost
everything, merged
CORE, INIT, fail if none of PPP_IPV[46]_SUPPORT are enabled if
PPP_SUPPORT is enabled
PPP, PPPoS, moved advise about modem from pppos_create() to ppp_open()
PPP, code cleaning
PPP, PPPoS, removed unused next field in pppos_pcb
PPP, apply warnings found by MSVC fixes on other files needing the same
fix
PPP, fixed warnings introduced by const pointers on ip_addr_t
Fixed warnings on whole project introduced by const pointers on ip_addr_t
PPP, CORE, functions ppp_set_netif_statuscallback() and
ppp_set_netif_linkcallback() replaced with defines
PPP, CORE, cleaned ppp_close() function
PPP, PPPoS, removed ppp_accm_mask[], saved a few bytes of ROM
netif: fixed compiler warning
PPP, CORE, IPCP: removed useless ask_for_local boolean
PPP, CORE, cleaned struct ppp_settings coding style
PPP, CORE, beautified ppp_set_auth()
PPP, CORE, moved auth configuration from auth_reset() to lcp_resetci()
PPP, CORE, SERVER, set auth configuration before auth
PPP, SERVER: added PAP authentication support
PPP, SERVER, CHAP: fixed wrong pointer used on chap_timeout()
PPP, SERVER: added CHAP authentication support
PPP, CORE: code cleaning
PPP, SERVER: statically define our name for authentication purposes
PPP, MAGIC: new function: magic_pow
PPP, replaced drand48() with magic_pow()
PPP, EAP: removed malloc() and free()
PPP, EAP: using MAXNAMELEN define instead of hardcoded 256 size for
rhostname
PPP, remove VJ callback from link_callbacks if VJ support is not enabled
PPP, SERVER: added PPPoS server support
PPP, SERVER, MSCHAP: move output message from chap_server.message struct
to stack
PPP, renamed ppp_open to ppp_connect
PPP, L2TP, using LNS chosen destination port
PPP, L2TP, check source ip address and port
PPP, L2TP, merged common output code
PPP, L2TP, added link-level IPv6 support
PPP, PPPoE, removed global static buffer only used for debug
PPP, PPPoE, improve reliability if we receive a PADT
PPP, PPPoE, removed devname variable from pppoe_disc_input()
PPP, CORE, call netif_set_up() after if4_up and if6_up flags are set, to
prevent dropping packets
PPP, CORE, separated administrative status from link status of PPP netif
PPP, make DNS a little more optional if LWIP_DNS is unset
DNS, warning fix, dns_init() -> dns_init(void)
PPP, improved IPv4 address setting
PPP, using DNS API for DNS servers
PPP, improved IPv6 address setting
PPP, removed now useless struct ppp_addrs from ppp_pcb
PPP, Documentation, updated
PPP, PPPoS, fixed thread safety of pppos_input()
PPP, PPPoS, added necessary comment about mutex
PPP, improved IPv6 address setting
PPP, IPv6, reduce size of llv6_ntoa() function
API: netdb: replaced deprecated ip_ntoa() to ipaddr_ntoa()
PPP: Documentation: replaced deprecated ip_ntoa() to ipaddr_ntoa()
PPP, Documentation, added DNS change
PPP, IPCP, fully removed VJ support from IPCP if VJ_SUPPORT is disabled
PPP, IPCP, fully removed DNS support from IPCP if LWIP_DNS is disabled
PPP, IPCP, removed WINS support
PPP, IPCP, removed proxy ARP support
PPP, IPV6CP, build out IPv6 VJ support using the existing IPV6CP_COMP
define
PPP, IPV6CP, code cleaning on VJ support
PPP, updated netif/FILES about PPP
PPP, display correct pbuf size in ppp_input() debug messages
Revert "PPP, PPPoS, added necessary comment about mutex"
Revert "PPP, PPPoS, fixed thread safety of pppos_input()"
PPP, PPPoS, don't protect pppos->in_accm if PPP_INPROC_MULTITHREADED is
not enabled
PPP, PPPoS, improve thread safety of pppos_input()
PPP, PPPoE and PPPoL2TP, removed ppp->pcomp usage
PPP, PPPoS, moved vj_enabled flag from PPP CORE to PPPoS
PPP, PPPoS, moved pcomp and accomp only used by PPPoS to PPPoS
PPP, PPPoS, improve the freeing of remaining RX pbuf if
PPP_INPROC_MULTITHREADED is not enabled
PPP, PPPoS, TCPIP: add packet input path for point to point interfaces
(only PPPoS for now) through the TCPIP API
PPP, PPPoS, PPP_INPROC_MULTITHREADED defaults to 0, explain thread safety
issue with it
PPP, PPPoS, add pppos_input_tcpip() input helper function for !NO_SYS
users
PPP, PPPoS, now using MEMCPY here, add #include <string.h>
PPP, PPPoS, disable TCPIP API if PPP_INPROC_MULTITHREADED is true
PPP, Documentation, improved PPP_INPROC_MULTITHREADED part
PPP, PPPoS, reworked output path, reduced serial tx pbuf buffers to 1
PPP, ppp->last_xmit is only used in PPPoS, moved to PPPoS
PPP, PPPoS, code cleaning
PPP, PPPoE, removed redundant size check
PPP, PPPoL2TP, warning fix if PPP IPv6 is enabled
PPP, PPPoS, code cleaning
PPP, PPPoS, moved checksum computation to pppos_output_append()
PPP, PPPoS, moved common FCS output code in pppos_output_last()
PPP, PPPoS, code cleaning
PPP, fixed warnings if LWIP_SNMP is disabled
PPP, code cleaning, u_char to u8_t
PPP, cleared warnings if PPP_DEBUG is off
PPP, PPPoS, changed pppos_output_append() description to match code change
PPP, PPPoS, struct pbuf *n and u8_t *cur are now unused, removed
PPP, PPPoL2TP, fixed build without IPv6 enabled
PPP, PPPoS, improved tcpip input path, fixed bug #44565
PPP, PPPoS, renamed PPP_INPROC_MULTITHREADED to PPP_INPROC_IRQ_SAFE
PPP, CCP, commented-in unused PPP config file parsing
PPP, CCP, updated FSM state with our FSM state define PPP_FSM_x
PPP, CCP, replaced bool to unsigned int in struct ccp_options
PPP, CCP, moved CCP global variables to ppp_pcb (ppp.h)
PPP, CCP, reworked to our ppp_pcb* pointer and ppp_pcb->ccp* data field
PPP, CCP, added ccp.h in ppp.h
PPP, CCP, commented-in unused global variables used for options
PPP, CCP, updated ANY_COMPRESS() to use ccp_options*
PPP, CCP, updated ccp_printpkt() prototype to match other *_printpkt()
PPP, CCP, updated to our utils.c function name
PPP, CCP, various compiler warnings fix
PPP, CCP, various fix if MPPE is enabled
PPP, CORE, removed auth fields from struct ppp_pcb if auth is disabled
PPP, MPPE, replaced #ifdef MPPE to #if MPPE_SUPPORT
PPP, CCP, add dummy ccp_ functions in ppp.c so it builds if CCP_SUPPORT
is set
PPP, PPPoL2TP, fixed build with IPv6 enabled
tcp_in: typo fix. Fixes bug #4458944589.
nd6: fixed compiler warnings
PPP, CORE, don't build get_loop_output() if demand support (not
supported) is not enabled
PPP, IPV6, fixed build if VJ support is disabled
PPP, IPV6, correct fix for IPV6CP_COMP disabling
PPP, CCP: Fix ccp_cilen returning size if both deflate_correct and
deflate_draft are enabled
PPP, FSM, added assert to easily track cilen size mismatch
PPP, CCP, moved ccp_test() from ccp_addci() to ccp_resetci()
PPP, MPPE, ccp_options->mppe is a bitfield of MPPE_OPT_* and not a
boolean, fixed
PPP, PPPoS, protect open flag in connect() and listen()
PPP, MPPE, import unmodified Linux MPPE encoder/decoder
PPP, MPPE, cleaning license notice
PPP, MPPE, fixed path to mppe.h
PPP, MPPE, replaced printk() to PPPDEBUG()
PPP, CCP, added missing defines from linux/ppp-comp.h to ccp.h
PPP, MPPE, removed include we don't have
PPP, MPPE, removed a bit more Linux stuff
PPP, MPPE, using lwIP ERR_BUF instead of Linux DECOMP_ERROR error type
PPP, MPPE, using our SHA1 instead of Linux crypto sha1
PPP, MPPE, added build macro if MPPE is not enabled
PPP, MPPE, import unmodified ARC4 from polarssl
PPP, MPPE, updated polarssl ARC4 for lwIP
PPP, updated polarssl readme
PPP, MPPE, using our ARC4 instead of Linux crypto ARC4
PPP, MPPE, removed now useless setup_sg() function
PPP, MPPE, removed "compression" stats
PPP, MPPE, improved SHA1 padding
PPP, MPPE, removed useless Linux stuff
PPP, MPPE, temporarily replaced kzalloc() with malloc()
PPP, MPPE, commented-in Linux interface calls structure
PPP, MPPE. fixed port mistake on SHA1 computation
PPP, MPPE, fixed compiler warnings
PPP, MPPE, exported MPPE functions
fixed some obvious compiler warnings
PPP, added new build dependencies in init.c
PPP, PPPoL2TP, switched to dual stack IPv4/IPv6
PPP, PPPoL2TP, merged pppol2tp_input_ip() to pppol2tp_input()
PPP, PPPoL2TP, improved pppol2tp_create() error path
ip6_addr.c: fixed IPv6 ip6_addr_any value
PPP, MPPE, fixed SHA1 padding
PPP, MPPE, fixed mppe_rekey()
PPP, using ip4_input() instead of ip_input()
PPP, MPPE, handle packets in decompressor without address and control nor
protocol
PPP, PPPoE, removed unnecessary single pbuf
PPP, MPPE, adapt decompressor to use pbuf
PPP, MPPE, using err_t return for mppe_decompress
PPP, PPPoL2TP, removed unnecessary single pbuf
PPP, get_mask() is only used for IPCP, moved to PPP_IPV4_SUPPORT
functions group
PPP, fixed LWIP_IPV4=1 and PPP_IPV4_SUPPORT=0 support
PPP, code cleaning, fixed ppp_input() indentation
PPP, MPPE, removed address, control and protocol from compressor output
PPP, MPPE, removed address, control and protocol from compressor input
PPP, MPPE, adapt compressor to use pbuf
PPP, CCP, re-added missing ccp_test()
PPP, MPPE, merged get_new_key_from_sha() to mppe_rekey()
PPP, MPPE, reworked mppe_rekey()
PPP, MPPE, moved struct ppp_mppe_state from mppe.c to mppe.h
PPP, MPPE, changed API to use struct ppp_mppe_state* instead of void*
PPP, MPPE, removed mppe_alloc() and mppe_free()
PPP, MPPE, remove dead code
PPP, MPPE, merged mppe_comp_init() and mppe_decomp_init() into mppe_init()
PPP, CCP, compile-out a bit more MPPE code if MPPE is disabled
PPP, CCP, deflate, BSD compress, predictor 1 & 2 are now optional at
compile time
PPP, MPPE, optimized struct ppp_mppe_state size
PPP, MPPE, struct ppp_mppe_state to typedef
PPP, MPPE, added ppp_mppe_state comp and decomp to ppp.h
PPP, CHAP, reworked to pass ppp_pcb pointer to CHAP childs (MD5, MSCHAP,
MSCHAPv2)
PPP, MPPE, moved MPPE global variables from MSCHAP to ppp_pcb
PPP, MSCHAP, reworked local functions and constants
PPP, MSCHAP, MPPE: shared identical mppe_sha1_pad* between MSCHAP and MPPE
PPP, MSCHAP: ensure magic tables are not copied and initialized on stack
PPP, CCP, reworked ppp_pcb ccp_localstate and all_rejected fields
PPP, CCP, MPPE: calling mppe_init() in ccp.c instead of using ccp_test()
PPP, MSCHAP, merged mppe_set_keys() to Set_Start_Key(), merged
mppe_set_keys2() to SetMasterKeys()
PPP, MSCHAP, CCP, MPPE: reworked key passing from CCP to MPPE
PPP, MPPE, reworked MPPE debug, using ppp_pcb metadata
PPP, CCP, added MPPE user configuration flags
PPP, MPPE, close current session using lcp_close() if something went wrong
PPP, CCP, added receive and transmit chosen protocols in ccp_flags_set()
(renamed ccp_set())
PPP, CCP, added data packet configuration in ppp_pcb
PPP, normalized debug messages
PPP, CCP, MPPE: added packet plumbing in ppp.c to process MPPE packets
PPP, CORE, reworked ppp_netif_output* functions to process CCP on all
protocols
PPP, MSCHAP, fixed compiler warnings if MPPE support is disabled
PPP, MPPE: allow users to enable CCP and MPPE support in opt.h
PPP, change ppp_write() return type from int to err_t
PPP, MPPE, MPPE also requires MSCHAP support (therefore CHAP support as
well)
PPP, CCP, MPPE, handle CCP Reset-Request and Reset-Ack for MPPE
PPP, MPPE, compile-out unused mppe_incomp() function
PPP, VJ, CCP: rework to fix protocol order
PPP, MPPE, drop unencrypted input packet if MPPE is required
PPP, VJ, improved opt.h comment about VJ
Fixed PBUF_LINK_ENCAPSULATION_HLEN support
PPP, removed useless padding in bitfields
PPP, don't assert if we receive a too short packet in ppp_input(), just
drop
PPP, L2TP, minor fixes
debug.h: fixed LWIP_PLATFORM_ERROR macro if LWIP_DEBUG and LWIP_NOASSERT
are defined
netconn: api_msg.c, fixed warning about unused state variable by using it
a little more
PPP, place print packet debug codenames in ROM
PPP, MPPE, sanity error path rework
PPP, MPPE, discard late packet in stateless mode
PPP, MPPE, issue CCP reset request if synchronization is lost
PPP, MPPE, don't issue CCP reset request in stateless mode
PPP, MPPE, try to use pbuf_header() in mppe_compress()
PPP, added missing cast on pbuf_header()
PPP, PPPoS, also clear last_xmit when resetting PPPoS control block
PPP, removed unnecessary memset()
PPP, sifnpmode() is only useful if on demand is supported, build out if
not
PPP, cleanup unused/redefined/useless limits in ppp_impl.h
PPP, assert if ppp_fatal() is called
PPP, display MTU set through netif_set_mtu() if debug is enabled
PPP, re-enabled MRU defines in opt.h
PPP, L2TP, added configurable L2TP MRU using opt.h
PPP, opt.h: fixed coding style
PPP, don't store the name by which the peer authenticated itself to us if
multilink support is disabled
fixed bug #39683 Assertion "seg->tcphdr not aligned" failed with
MEM_ALIGNMENT 1 or 2
PPP, Documentation, add that we support MPPE
PPP, MPPE, fixed TCP over MPPE
PPP, PPPoS, fixed copy/paste typo in pppos_send_config() out accm debug
message
PPP, explain better why we don't need protp->datainput callback
PPP, MPPE, improve dropping of unencrypted received packet
fixed typo: IP6_FRAG_COPYHEADER -> IPV6_FRAG_COPYHEADER
PPP, MPPE, drop input/output packets if we couldn't find the chosen
decompressor/compressor
PPP, minor coding style fix
PPP, PPPoS, remove magic_randomize() from PPPoS, it is already called in
ppp_input()
PPP, magic, MD5 random pool size cannot be anything else than MD5 hash
size, code cleaning to make it clear
PPP, magic, enables building without PPP_MD5_RANDM support
PPP, magic, renamed random_bytes() to magic_random_bytes() for API
coherency
PPP, magic, using magic_random_bytes() for CHAP/MSCHAP/EAP instead of
for-loop byte where possible
PPP, magic, improved magic_randomize() for PPP_MD5_RANDM is not enabled
PPP, magic, use LWIP_RAND() if available
converted CHANGELOG from ISO-8859-1 to UTF8
PPP, magic, improved magic_randomize() when using PPP_MD5_RANDM
PPP, magic, call magic_randomize() for all packets
PPP, magic, build-out useless code when LWIP_RAND is defined
dns: fixed trivial compiler warning
PPP: fix constness in PPP related files when PRINTPKT_SUPPORT is enabled
Documentation, add pppapi.h to thread-safe header whitelist
PPP, PPPoS, replaced static sio_write() calls to a user defined callback
PPP, remove now unused ioctl callback from link_callbacks structure
PPP, reorder initialisation of low level protocols to call
ppp_link_set_callbacks() just after PPP control block allocation
PPP, merged ppp_link_set_callbacks() into ppp_new()
tcp: fixed CHECKSUM_GEN_TCP feature (misplaced #define)
PPP: more const and mixed u_char/char types fixes
PPP, auth, code cleaning: removed useless variables on stack
doc: contrib: CVS -> Git, punctuation fixes
documentation: rawapi: update to current lwIP design
documentation: rawapi: improved documentation on multithreading state
documentation: rawapi: syntax fixes
documentation: rawapi: more syntax fixes
README: replaced CVS references to Git
trivial CVS to Git renaming
documentation: savannah: updated for Git
ip4: routing: check peer for point to point interfaces
PPP, PPP_MAXIDLEFLAG is now in ms instead of jiffies
sys.h: fixed comment, sys_msleep() is in ms, not in jiffies
PPP: magic: don't truncate sys_jiffies() return value
test: etharp: Fixed const warning
Documentation: SNMP: update to recent changes
all: trivial include changes related to the new "lwip/priv/" include
directory
PPP, Documentation, fixed mistake about pppos_input_sys
PPP: CCP: don't drop output packets if CCP negotiated that we don't
compress on our side
PPP, PPPoL2TP, fix double free of L2TP pcb in pppol2tp_create error path
tcp: fixed TCPH_UNSET_FLAG macro
PPP, VJ, fix header offset calculation on LP64/ILP64 systems
PPP, VJ, code cleaning
PPP, report full packet size in VJ debug output
PPP, prepare for chained compressors (e.g. VJ+MPPE) requiring packet copy
PPP, VJ, move pbuf length check so all TYPE_IP return value are within
the same code block
PPP, VJ, fixed TCP retransmission
PPP, fix reserved identifier violation (removed leading underscores from
header include guards)
PPP, remove useless ppp_init function
Wayne Uroda (1):
PPP, PPPoS, fix dereference of uninitialised pppos->in_head pointer
adamdunkels (23):
Added #if LWIP_UDP around udp_init() body, fixed bug where un-connected
UDP PCBs did not always receive correct datagram
Fixed COREFILES to reflect the tcp_input.c -> tcp_in.c and tcp_output.c
-> tcp_out.c filename changes
Updated TCP out-of-sequence handling to use recv_data variable instead of
old pcb->recv_data.
Added #undefs for htonl and friends to keep compiler from issuing "doubly
defined" warnings
Added typecasts and #includes to keep compiler from issuing warnings
Added Author: comment
Added Author: comment, #ifdef'ed linux specific stuff, added typecast for
strlen
Added SIO_FIFO_DEBUG and PPP_DEBUG to make -DDEBUG work with
arch/unix/netif/sio.c
Rewrote the COREFILES to reflect the changes from tcp_input.c and
tcp_output.c to tcp_in.c and tcp_out.c. Removed simrouter and simnode from the
all: target.
Removed #inclusion of "netif/sioslipif.h" since the file has been removed
and split into two, "netif/sio.h" and "netif/slipif.h".
Added typecasts to avoid compiler warnings
Added unsigned qualifier to the output to avoid compiler warnings for the
produced fsdata.c file. Added a final newline to the output to avoid warnings.
Added unsigned qualifier to the struct members to avoid compiler warnings.
Removed the old lwIP homepage from the example web server filesystem and
replaced it with a simple web page with short information about the lwIP
project. Previously the web pages in the example web server was a large portion
of the final .tar.gz file.
Replaced a += (combined addition and assignment) with an explicit
assignment and addition to avoid compiler warnings.
Added short descriptions of the generic network interface code.
Reformatted the code to make it consistent with the rest of lwIP.
Added a 404 error page. The web server crashed without it.
Added a 404 error page.
Added #ifdefs around each debug output switch so that those can be
defined in lwipopts.h instead.
Fixed a few C style issues to make it compatible with the rest of lwIP.
The code that increased the retransmission time was commented out for
some reason. This has been fixed. Also removed some old, out-commented, code.
Added comments to the tcp_enqueue() function.
anderscarlman (3):
Removed the lines setting dhcp->msg_in and dhcp->options_in to NULL,
since this is done implicitly through dhcp_free_reply().
Re-added code for checking tail-parameter for NULL in
Added dummy parameters for the empty macros snmp_add_ifinoctets and
cborrelli (3):
added ifndef around the TCP_TMR defines so that the user can define these
values in the lwipopts.h file if needed; this change will not be seen outside
the stack unless the user wants to change the default values.
initial version for Xilinx Virtex-II Pro port
added v2pro description; added include/ dir description
christiaans (120):
Match update_arp_entry() to prototype.
Removed struct netif; forward decl. is already included from ip_addr.h.
christiaans: Fixed SO_REUSE default to 0. Actually we should fix udp so
it won't depend on the socket layer.
christiaans: cosmetic change debug formatters as requested by Tom.
Some build fixes for OpenBSD.
Described initialization procedure.
Introduced cc.h formatters and removed SO_REUSE from transport layers.
Fixed void ptr address increment bug reported by Bertrik Sikken.
Fixed lwip_standard_chksum() for unaligned memory access. Verified to
work on c16x and BSD on P4.
Added some more fixes to the lwip_standard_chksum() comments.
Disabled the added summing routine to preserve code space, fixed some
comments.
Fixed unused variable warning.
History update and listing PPP problems as todo.
Small optimalization for udp_input().
Code style fix, C++ into C comments.
Removed timer dependency on sys.c (raw-API). Beautified indentation.
Patch from Curt McDowell fixes err_to_errno macro.
Removed tabs, default LWIP_HAVE_LOOPIF to 0 to slim footprint.
Added IP reassembly timer.
Increased ip_reassbitmap size with 1, added assertions to catch boundary
cases.
Added pbuf_alloc() return value checks in ip_frag().
Fixed compilation warning on sizeof(), reported by Beach at 20060320.
Pbuf flag test size and speed optimalisation (helping a dumb compiler).
Added LWIP_PLATFORM_BYTESWAP optimalisation flag and macro glue.
Address copy loops optimized for speed.
Added optimalization hints.
addr->addr test size and speed optimalisation (helping a dumb compiler)
Optimized for speed and size. Test against zero for both the inverted and
non-inverted address. (old and new-style broadcasts)
Disabled ARP table update on ingress IP packets.
Removed conn->sem creation and destruction from netconn_write() and added
sys_sem_new to netconn_new_*
Applied patch #5146 to handle allocation failures in accept() by Kevin
Lawson.
Fixed cold case bug #1748, printing of mem_size_t and u16_t statistics.
Prepared some SNMP options.
Added mib-2 snmp group statistics prototypes.
Added struct obj_id and a few system group access funcs.
Honoured Pedro Alves namespace request, following lwip style struct
naming.
Applied patch for cold case bug #11135.
Mentioned some recent cold case fixes.
Added ip_frag_init() to ip_init().
Added ip_frag_init() and some LWIP_DEBUGFs.
Added ip_frag_init() prototype.
Add preliminairy documentation for the SNMP agent.
Initial commit. Expirimental code, please note this is not yet fully
functional.
Fixed (experi)mental typo.
Added SNMP debug options.
Added SNMP statistics to struct netif and changed SNMP macro glue.
Added netif SNMP init.
Added minimalistic SNMP GET functionality.
Partial fix for bug #15926, flushing TCP output in do_close().
Corrected object identifier codec for object ids not starting with
.iso.dod (e.g. zeroDotZero (0.0)).
Corrected returned object id for interfaces.ifTable.ifEntry.ifSpecific to
zeroDotZero (0.0).
Added etharp_find_addr(), finds eth/IP address pair by interface ptr and
IP address.
Exported udp_pcbs in udp.h (for SNMP agent).
Added SNMP counters, moved some defines.
Corrected comment typo.
MIB-2 object values near to completion, just committing for keeping the
flame alive.
Moved noleafs_get_object_def() and noleafs_get_value() protos from mib2.c
to snmp_structs.h
Fixed bug #17200, added check for broadcast destinations for PCBs bound
to a unicast address.
Accepting zero length identifiers e.g. for getnext operation. Uncommon
but valid.
Fixed htons into htonl for trap desctination ip.
Started with getnext and ensure zero length identifiers are accepted.
Added tree expansion func protos for getnext.
Added SNMP counters.
Pacified GCC warnings.
Pacified GCC warnings and fixed double mem_free() while returning
nosuchname err.
Pacified GCC warnings and elaborated getnext to work on scalars, tables
don't work yet.
Added index tree node structs and functions, e.g. to be used for ARP
table indexes.
Changed index structs to mib_list_node structs to place the table index
trees directly in the mib tree.
Added newlines in debug output, small optimalisations, more work on
'getnext', fixed 'get' on udp table.
First getnext succes, values are returned insead of NULLs, empty tables
are skipped. Limitation: a single varbind per request, so 'snmptable' will fail.
Corrected snmp_delete_arpidx_tree() to be called in the expired state,
not only maxage.
Fixed compilation for LWIP_SNMP 0.
Improved TRAP interfacing. Varbinds maybe allocated at (external) trap
source as wel. Added trap destination settings.
Documented TRAP destination setup.
Fixed sysObjectID length to copy private IDs with unkown lengths properly.
Added some lines for SET command.
Fixed double iterator bug in send_trap(), multiple trap destinations work
ok now.
Improved mib node struct for external object access and moved
get_object_def() calls to the message processing bit.
Moved SNMP_CONCURRENT_REQUESTS to opt.h, babysteps for external MIB nodes.
Fixed NULL dereferencing for zero length raw data.
Added newlines to LWIP_DEBUGFs.
Added one strategic LWIP_DEBUGF to snmp_send_response().
Set TODO_SNMP_MSG_EVENT to 1. Moved some more code from snmp_recv() to
snmp_event_service().
Added snmp_msg_event_loop() prototype.
Redesign of snmp_msg_event() fsm, added SNMP SET to fsm.
Added en->set_value_a() call for closing external transactions.
Fixed encoding of object sub identifiers with trailing zero.
Added en->get_value_a() call for zero size get_value replies, e.g. for
closing external transactions.
Fixed snmp_mib_node_insert() to return 2, for node present (not
inserted). Also solves invalid rootnode count for this case.
Added external mibnode panic closure functions, tobe called for error
responses.
Added missing snmp_delete_arpidx_tree() in find_entry where entry state
was set to ETHARP_STATE_EMPTY.
Fixed clearing of head and tail pointers in snmp_mib_node_delete().
Improved message parse robustness. Rejecting 'error requests'. Removed
invalid genError return on varbindlist parse error, changed badValue into
noSuchName error for non-writeable objects.
Fixed up mib_external_node support, snmpwalk works for external objects.
Only mentioning SNMP development additions instead of changes, since
we're in pre-alpha.
Fixed Nagle algorithm as reported by Bob Grice.
Partially accepted patch #5449 for ANSI C compatibility / build fixes.
Fixed bug #17574 corrected UDP-Lite protocol identifier.
Fixed decoding of negative integers in snmp_asn1_dec_s32t(), removed
EXPERIMENTAL status.
Removed EXPERIMENTAL status.
Again, fixed decoding of negative integers in snmp_asn1_dec_s32t(), tnx
to though testing by Sander.
Added warning about using mem_malloc in sys_arch.c, cold case bug #1913 .
Cold case #9191 fixes for NC30 compiler for the M16 mcu, reported by
Bjorn Sundman.
Made ip_id static again, fixing bug #18065. This is required when
outputting IP fragments.
Added netif_set_up and call protection for NULL function pointers. Bug
#16602 and #17777.
Replaced tabs with space.
Trimmed whitespace at line ends.
Added missing NULL return checks for snmp_mib_lrn_alloc() and trimmed
whitespace at line ends.
Initial attempt at fixing bug #17922, calling for reviewers. This seems
to work for me, more or less, but it looks like it breaks TCP.
Removed mem_dump() reference.
Added snmp_send_trap() parameter, caller must pass enterprise id for
enterprise secific traps.
Changed heap to use naturally aligned start address and added near-fit
case to #17922 fix.
Accepted patch #5493 IP frag/reass config item tweak.
Fixed uninitalized variable warnings (using gcc 4.1.1)
In netif_add() fixed clearing of ip_addr, netmask, gw and flags.
Disabled alignment fix. Stepping back, #17922 fix fails on my target,
DHCP won't start, I don't understand.
Fixed false triggers of request_timeout.
Included xid to some DEBUGFs.
Added MEM_LIBC_MALLOC option as workaround for failing mem_malloc().
Added MEM_LIBC_MALLOC option as workaround for failing mem_malloc().
Fix the fix for GETSHORT and GETLONG bug #19052, needs to be tested by
some PPP user.
chrysn (6):
make timeouts usable reliably from outside of the timeout routine
use u32_t instead of u_int32_t
include the memp struct list once before actually using it
(api break) qualify ip_addr_t as const where feasible
fix return type of netif_add_ip6_address mismatch
PPP, FSM, don't call memcpy with NULL even when size = 0
curtmcd (9):
memp_memory could be unaligned, causing one buffer in the memp pool to
Improve formatting by fixing wrong indents and lines too long.
udp_input() operated by removing the IP and UDP headers, putting back
Add comment about purpose of struct ip_addr2.
Fix gcc warning per discussion on lwip-users 2006.04.25: dereferencing
Use isprint() instead of isascii() as it's more common
Remove unused mem_reallocm
Fix debug print, remove reference to TCP_COARSE_TIMEOUT
Fix incorrect calculation of dhcp->dns_count.
davidhaas (27):
----------------------------------------------------------------------
Added lightweight protection. In coldfire this is implemented by disabling
Add the following features and bugfixes:
Fixed some build issues regarding snmp.h
sys_thread_new() now returns the thread (request from Marc Boucher).
Fix some compile issues with both coldfire and unix builds.
Made sys_arch_prot() interface more generic by returning sys_prot_t
instead
By request: moved lightweight protection to macros.
Allow minimal unix target to build in cygwin (but not necessarily run).
Fixed SYS_ARCH_PROTECT macros when NO_SYS is not defined.
Fixed build for coldfire after last debug.h and opt.h changes.
Added default settings for DBG_MIN_LEVEL and definitions for the possible
Fix to last fix for bug 2826: find_arp_entry() was now not finding any
Fixed up and made work a PBUF_REF type. Most of the code uses this now
Fixed memory leak caused by my last pbuf_ref change.
Typo bug. The wrong semaphore was being signalled.
Fixed minor compile issues.
Made lwip timeout measurements accurate by no longer returning 1
millisecond
Fix pbuf_chain() to update tot_len of last buffer in first chain properly.
Fixed issue in pbuf_take(): old pbuf of type PBUF_REF was being
referenced
In keeping with pbuf->ref always having the count of the number of
pointers
Fixed last change to pbuf_take. There were two calls to pbuf_free in a
row.
Updated sys_arch documentation to make new timeouts clearer.
Fixed bug where tearing down a connection would cause loss of memory.
Made memory stats more accurate (real amount and max amount of memory
used).
Fix memory leaks.
Got rid of pbuf_pool_alloc_cache and pbuf_pool_free_cache. Also got rid of
fbernon (277):
no message
udp.c: remove obsolete line "static struct udp_pcb *pcb_cache = NULL;"
api_lib.c: Fix "[patch #5764] api_lib.c cleanup: after patch #5687" (from
Dmitry Potapov).
api_msg.c: Remove some compiler warnings : parameter "pcb" was never
referenced.
opt.h, sockets.h: add new configuration options
(LWIP_POSIX_SOCKETS_IO_NAMES, ETHARP_TRUST_IP_MAC, review SO_REUSE).
opt.h, ip_frag.h, tcpip.h, tcpip.c, ethernetif.c: add new configuration
option named ETHARP_TCPIP_ETHINPUT, which enable the new tcpip_ethinput. Allow
to do ARP processing for incoming packets inside tcpip_thread (protecting ARP
layer against concurrent access). You can also disable old code using tcp_input
with new define ETHARP_TCPIP_INPUT set to 0. Older ports have to use
tcpip_ethinput.
Implement SO_RCVTIMEO on UDP sockets/netconn.
Fix some "little" build problems, and a redundancy call to
"lwip_stats.link.recv++;" in low_level_input() & ethernetif_input().
Implement LWIP_SO_RCVTIMEO configuration option to enable/disable
SO_RCVTIMEO on UDP sockets/netconn.
Keepalive values can be configured at compile time, but don't change this
unless you know what you're doing (default are RFC1122 compliant).
Keepalive values can be configured at run time with LWIP_TCP_KEEPALIVE,
but don't change this unless you know what you're doing (default are RFC1122
compliant). Note that TCP_KEEPIDLE and TCP_KEEPINTVL have to be set in seconds.
Based on patch from Dmitry Potapov, bug#19225.
New configuration option LWIP_IGMP to enable IGMP processing. Based on
only one filter per all network interfaces. Declare a new function in netif to
enable to control the MAC filter (to reduce lwIP traffic processing).
Add igmp.h and igmp.c inside tree :
Remove unimplemented "memp_realloc" function from memp.h.
Add return types to tcpip_apimsg() and api_msg_post() to check ERR_MEM
problems (api_lib.c can be change now).
tcpip.c: Initialize tcpip's mbox, and verify if initialized in
tcpip_input, tcpip_ethinput, tcpip_callback, tcpip_apimsg, to fix a init
problem with network interfaces. Also fix a compiler warning.
memp.h, stats.c: Fix stats_display function where memp_names table wasn't
synchronized with memp.h
Remove obsolete include from my port.
api_msg.c, igmp.c, igmp.h: Fix C++ style comments
opt.h: Add LWIP_NETIF_CALLBACK (to avoid compiler warning) and set it to
0.
api_lib.c, api_msg.c, tcpip.c: integrate sys_mbox_fetch(conn->mbox, NULL)
calls from api_lib.c to tcpip.c's tcpip_apimsg(). Now, use a local variable and
not a dynamic one from memp to send tcpip_msg to tcpip_thread in a synchrone
call. Free tcpip_msg from tcpip_apimsg is not done in tcpip_thread. This give a
faster and more reliable communication between api_lib and tcpip.
ethernetif.c: update netif->input calls to check return value. In older
ports, it's a good idea to upgrade them, even if before, there could be another
problem (access to an uninitialized mailbox).
api_lib.c: somes resources couldn't be freed if there was errors during
netconn_new_with_proto_and_callback.
api_msg.h, api_msg.c: Remove obsolete API_MSG_ACCEPT and do_accept (never
used).
stats.h, stats.c, msg_in.c: Stats counters can be change to u32_t if
necessary with the new option LWIP_STATS_LARGE. If you need this option, define
LWIP_STATS_LARGE to 1 in your lwipopts.h. More, unused counters are not defined
in the stats structs, and not display by stats_display(). Note that some
options (SYS_STATS and RAW_STATS) are defined but never used. Fix msg_in.c with
the correct #if test for a stat display.
api_lib.c (from Dmitry Potapov) : patch for netconn_write(), fixes a
possible race condition which cause to send some garbage. It is not a
definitive solution, but the patch does solve the problem for most cases.
opt.h, tcpip.c: New configuration option LWIP_ARP allow to disable ARP
init at build time if you only use PPP or SLIP. The default is enable. Note we
don't have to call etharp_init in your port's initilization sequence if you
use tcpip.c, because this call is done in tcpip_init function.
netif.h, netif.c: A new NETIF_FLAG_ETHARP flag is defined in netif.h, to
allow to initialize a network interface's flag with. It tell this interface is
an ethernet device, and we can use ARP with it to do a "gratuitous ARP" (RFC
3220 "IP Mobility Support for IPv4" section 4.6) when interface is "up" with
netif_set_up().
opt.h, netif.h, dhcp.h, dhcp.c: New configuration option
LWIP_NETIF_HOSTNAME allow to define a hostname in netif struct (this is just a
pointer, so, you can use a hardcoded string, point on one of your's ethernetif
field, or alloc a string you will free yourself). It will be used by DHCP to
register a client hostname, but can also be use when you call snmp_set_sysname.
Minor. Add LWIP_NETIF_HOSTNAME in skeleton and comment on #endif for
LWIP_SNMP.
api.h, api_lib.c, sockets.c: netbuf_ref doesn't check its internal
pbuf_alloc call result and can cause a crash. lwip_send now check netbuf_ref
result.
Missing recv_timeout initialize in accept_function. Minor style fix
(indent, mbox checking...)
most of files: prefix all debug.h define with "LWIP_" to avoid any
conflict with others environment defines (these were too "generic").
Fix on NETIF_FLAG_ETHARP test (test inverted)
api_msg.c: add a "pcb_new" helper function to avoid redundant code, and
to add missing pcb allocations checking (in do_bind, and for each raw_new).
Fix style.
Add NETIF_FLAG_ETHARP flag and comments in this skeleton.
ip.c: if IP_REASSEMBLY is set to 1, don't set the IP_DF ("Don't
fragment") flag in the IP header in IP output packets.
Don't set the IP_DF ("Don't fragment") flag in the IP header in IP output
packets. See patch #5834.
sockets.c: remplace ENOBUFS errors on alloc_socket by ENFILE to be more
BSD compliant.
api_msg.c: Fix bug #16830: "err_tcp() posts to connection mailbox when no
pend on the mailbox is active". Now, the post is only done during a connect,
and do_send, do_write and do_join_leave_group don't do anything if a previous
error was signaled.
Fix mistakes in netconn's error field checking.
opt.h, tcpip.h, tcpip.c, netifapi.h, netifapi.c: New configuration option
LWIP_NETIF_API allow to use thread-safe functions to add/remove netif in list,
and to start/stop dhcp clients, using new functions from netifapi.h. Disable as
default (no port change to do).
opt.h: rename DBG_TYPES_ON & DBG_MIN_LEVEL with LWIP_ prefix.
Remove forgotten printf in pbuf_init().
Minor fix (tab, indent...) to respect source code style...
sockets.c, api.h, api_lib.c, api_msg.h, api_msg.c: Fix bug #19162
"lwip_sento: a possible to corrupt remote addr/port connection state". Reduce
problems "not enought memory" with netbuf (if we receive lot of datagrams).
Improve lwip_sendto (only one exchange between sockets api and api_msg which
run in tcpip_thread context). Add netconn_sento function. WARNING, if you
directly access to "fromaddr" & "fromport" field from netbuf struct, these
fields are now renamed "addr" & "port".
sockets.c, api_lib.c, api_msg.h, api_msg.c, netifapi.h, netifapi.c,
tcpip.c: Include a function pointer instead of a table index in the message to
reduce footprint. Disable some part of lwip_send and lwip_sendto if some
options are not set (LWIP_TCP, LWIP_UDP, LWIP_RAW).
Include inet.h to avoid warnings (see
http://savannah.nongnu.org/patch/?5865).
Minor fix (tabs)
tcpip.c, igmp.h, igmp.c: Fixed bug "#19800 : IGMP: igmp_tick() will not
work with NO_SYS=1". Note that igmp_init is always in tcpip_thread (and not in
tcpip_init) because we have to be sure that network interfaces are already
added (mac filter is updated only in igmp_init for the moment).
Remove warning in snmp/msg_in.c
Minor fixs to reduce footprint on the "recv part" of Sequential API...
Minor Fix (unsed code, spaces, idents..)
api_msg.c: Fix some errors forwarding
(https://savannah.nongnu.org/task/?6880)
Remove warning (missing include)
Minors fix (spaces, comments, unused variable)
api.h, api_lib.c, api_msg.h, api_msg.c: change the struct api_msg_msg to
see which parameters are used by which do_xxx function, and to avoid "misusing"
parameters (patch #5938).
sys.h, sys.c, api_lib.c, tcpip.c: remove sys_mbox_fetch_timeout() (was
only used for LWIP_SO_RCVTIMEO option) and use sys_arch_mbox_fetch() instead of
sys_mbox_fetch() in api files. Now, users SHOULD NOT use internal lwIP features
like "sys_timeout" in their application threads.
Minor fix (spaces, indent) and check for LWIP_SO_RCVTIMEO..
api.h, api_lib.c, api_msg.c, sockets.c: group the different
NETCONN_UDPxxx code in only one part...
api_lib.c: Fixed bug #5957 "Safe-thread problem inside netconn_recv" to
return an error code if it's impossible to fetch a pbuf on a TCP connection
(and not directly close the recvmbox).
api_lib.c, sockets.c: Fixed bug #5958 for netconn_listen (acceptmbox only
allocated by do_listen if success) and netconn_accept errors handling. In most
of api_lib functions, we replace some errors checkings like "if (conn==NULL)"
by ASSERT, except for netconn_delete.
api_lib.c: Implement SO_RCVTIMEO for accept and recv on TCP connections,
such present in patch #5959.
Fixed patch #5965 : Remove unused conntype in struct api_msg_msg, by
Simon Goldsmith
Minor, fix files modified by last patch...
Minor fix for warning: pbuf_copy declaration is now mandatory (since it's
used in icmp.c)
Minor, fix an obsolete comment about LWIP_SO_RCVTIMEO
Fix typo and remove RAW_STATS (not used)
Minor fix (spaces)
Add LWIP_TCPIP_CORE_LOCKING option (0 as default value) to experiment
"locking" as feature to communicate with tcpip_thread for sequential API
(netconn & socket layers). Add a alternative code for lwip_sendto to how the
code can be optimized with such feature....
Just add a comment to explain that the lwip_sendto patch for
LWIP_TCPIP_CORE_LOCKING option is just show a sample (it's not a full
implementation, RAW connection and "to" field are not handled, ...)
Patch from Jared Momose (address@hidden) for bug #19699 : "Bug in SNMP
ASN1 decode; submitted patch"
Contrib module by Dominik Spies: autoip.h, autoip.c, dhcp.h, dhcp.c,
netif.h, netif.c, etharp.h, etharp.c, opt.h: AutoIP implementation available
for IPv4, with new options LWIP_AUTOIP and LWIP_DHCP_AUTOIP_COOP if you want to
cooperate with DHCP. Some tips to adapt (see TODO mark in the source code).
Minor fix (coding style)
Minor fix. Add comments in source file from documentation text file by
Dominik Spies.
Minor fix. Add "static" to IGMP's global variables, and rename group_list
to igmp_group_list...
tcp_out.c: Fix for bug #20075 : "A problem with keep-alive timer and TCP
flags" where TCP flags wasn't initialized in tcp_keepalive. Reported by
Srinivas Gollakota with help of Oleg Tyshev.
Partial fix for bug# 20147: "getsockopt() with SO_ERROR option" 'socket
layer error is not updated if no operation on netconn).
Minor fix (comment is not at the good place)
opt.h, mem.h, mem.c, memp.c, pbuf.c, ip_frag.c, vj.c: Fix bug #20162.
Rename MEM_ALIGN in LWIP_MEM_ALIGN and MEM_ALIGN_SIZE in LWIP_MEM_ALIGN_SIZE to
avoid some macro names collision with some OS macros.
debug.h, api_msg.c: change LWIP_ERROR to use it to check errors like
invalid pointers or parameters, and let the possibility to redefined it in
cc.h. Use this macro to check "conn" parameter in api_msg.c functions (some
others change will be done...).
api_lib.c: change return expression in netconn_addr and netconn_peer,
because conn->err was reset to ERR_OK without any reasons (and error was
lost)...
tcp_in.c: Fix bug #20126 : Zero ssthresh bug (by Per-Henrik Lundblom and
Kieran Mansley).
Minor fix: warning, type... for patch #5952 : Integration of AutoIP module
Some changes for AutoIP integration in tcpip.c, and some comments.
Minor changes: fix some comments for Doygen documentation
autoip.h/.c: change autoip_init & autoip_create_rand_addr to use netif's
MAC address and tried_llipaddr to generate an "autoip"...
sockets.c: process NETCONN_RAW connections with LWIP_TCPIP_CORE_LOCKING=1
netifapi.h, netifapi.c, tcpip.h, tcpip.c: Update code to handle the
option LWIP_TCPIP_CORE_LOCKING, and do some changes to be coherent with last
modifications in api_lib/api_msg (use pointers and not type with table, etc...)
autoip.c: replace most of rand() calls by a macro LWIP_AUTOIP_RAND which
compute a "pseudo-random" value based on netif's MAC and some autoip fields.
It's always possible to define this macro in your own lwipopts.h to always use
C library's rand(). Note that autoip_create_rand_addr doesn't use this macro.
Minor fix (extra spaces)
sockets.h, sockets.c: Implement MSG_PEEK flag for recv/recvfrom functions.
ip.h, etharp.c: Fix warnings & errors about LWIP_NETIF_HWADDRHINT
(perhaps compiler dependant)
Minor fix (indent)
sockets.c: Fix a possible problem because any new socket can't be created
during the "close" (which can be "long" since fix for bug #20021).
Fix minor patch #5741 build error...
Fix bug #20315: possible memory leak problem if tcp_listen failed,
because current code doesn't follow rawapi.txt documentation.
api_msg.c: Fix bug #20318: api_msg "recv" callbacks don't call pbuf_free
in all error cases.
opt.h, netif.h, netif.c, ethernetif.c: Add new configuration option to
add a link callback in the netif struct, and functions to handle it. Be
carefull for port maintainers to add the NETIF_FLAG_LINK_UP flag (like in
ethernetif.c) if you want to be sure to be compatible with future changes...
Minor fix: debug text inside ethernetif_input
Fix do_delconn when used with LWIP_TCPIP_CORE_LOCKING=1 on "non-TCP"
connections...
Minor Fix: remove obsolete MEMP_NUM_API_MSG define and update comment
igmp.c: Fix bug #20595 to accept IGMPv3 "Query" messages.
Minor fix (warning, linker helper) signaled by Bill Florac
Minor fix on pbuf_init (fix warning) and use same coding style that
mem.h, sys.h, tcp.h, etc...
Minor fix (warning when LWIP_DEBUG is undefined)
Minor fix (warning when LWIP_DEBUG is undefined)
Minor fix (warnings on unused args, wrong type, cast u32_t to u16_t...)
Minor fix (spaces)
igmp.h, igmp.c, ip.c: Fix minor changes from bug #20503 : IGMP
Improvement. This is mainly on using lookup/lookfor, and some coding styles...
udp.c: Fix for bug #20503 : IGMP Improvement. Enable to receive a
multicast packet on a udp pcb binded on an netif's IP address, and not on "any".
stats.h, stats.c, igmp.h, igmp.c, opt.h: Fix for bug #20503 : IGMP
Improvement. Introduce IGMP_STATS to centralize statistics management.
Minor Fix (remove unused USE_ROUTER_ALERT and some coding style)
Comments Fix for Doxygen documentation
Minor change: add in tcp_in.c in tcp_input(), some calls to handle error
statistics (stats & snmp)
Minor changes (tabs, ident, coding style...)
Add raw_init in tcpip_init + minor changes (tabs, ident, coding style...)
Minor changes (tabs)
Fix comment
Minor change (fix comment)
Fix wrong define for both pool "struct tcpip_msg" + minor fix (coding
style)
Replace PBUF_LINK_HLEN before PBUF_POOL_BUFSIZE, restore PPP options
changed by Marc Boucher but lost with last Jared changes...
Force a build error if MEMP_NUM_TCPIP_MSG is always defined
Rename pbuf's "flgs" in "flags" (see in [lwip-devel] Last changes by Marc)
Forget to rename this line (pbuf->flgs->pbuf->flags)
tcpip.h, tcpip.c, ethernetif.c, opt.h: remove options ETHARP_TCPIP_INPUT
& ETHARP_TCPIP_ETHINPUT, now, only "ethinput" code is supported, even if the
name is tcpip_input (we keep the name of 1.2.0 function).
Minor fix (spaces and comment)
netif.h, netif.c, opt.h: Rename LWIP_NETIF_CALLBACK in
LWIP_NETIF_STATUS_CALLBACK to be coherent with new LWIP_NETIF_LINK_CALLBACK
option before next release.
netif.h, netif.c: Integrate "patch #6163 : Function to check if link
layer is up". Add a netif_is_link_up() function if LWIP_NETIF_LINK_CALLBACK
option is set.
First fix for "bug #20900 : Potential crash error problem with
netconn_peer & netconn_addr". Introduce NETCONN_LISTEN netconn_state and remove
obsolete ones (NETCONN_RECV & NETCONN_ACCEPT).
Fix coding style (use #if and not #ifdef) for IPv6
tcpip.c: Fix TCPIP_MSG_INPKT processing: now, tcpip_input can be used for
any kind of packets. These packets are considered like Ethernet packets
(payload pointing to ethhdr) if the netif got the NETIF_FLAG_ETHARP flag.
Else, packets are considered like IP packets (payload pointing to iphdr).
Add init.h, init.c, Change opt.h, tcpip.c: Task #7213 "Add a lwip_init
function" Add lwip_init function to regroup all modules initializations, and to
provide a place to add code for task #7142 "Sanity check user-configurable
values". Ports maintainers should remove direct initializations calls from
their code, and add init.c in their makefiles. Note that lwip_init() function
is called inside tcpip_init, but can also be used by raw api users since all
calls are disabled when matching options are disabled. Also note that their is
new options in opt.h, you should configure in your lwipopts.h (they are enabled
per default).
Minor fix: replace C++ comments by C comments.
Minor Fix (ident)
igmp.h, igmp.c, tcpip.c, init.c, netif.c: change igmp_init and add
igmp_start. igmp_start is call inside netif_add. Now, igmp initialization is in
the same spirit than the others modules. Modify some IGMP debug traces.
Minor fix (coding style, comments, spaces, endline...)
init.c: Add first version of lwip_sanity_check for task #7142 "Sanity
check user-configurable values".
igmp.h, igmp.c: Some changes to remove some redundant code, add some
traces, and fix some coding style.
Replace API programmation error checking for IGMP join/leave
(ismulticast(addr)) by LWIP_ERROR checking.
Minor change (ident, remove comment, change trace text)
Add some others sanity checkings
Add netbuf.h, netbuf.c, Change api.h, api_lib.c: #7249 "Split netbuf
functions from api/api_lib". Now netbuf API is independant of netconn, and can
be used with other API (application based on raw API, or future "socket2" API).
Ports maintainers just have to add src/api/netbuf.c in their makefile/projects.
Minor fix (use ETHARP_HWADDR_LEN)
Minor fix (else, cause build error). Since SO_REUSE is always used in the
code (even if the current code is not working), it is defined in opt.h with 0
as default value (it's normal). So, the error is not if it is defined, but if
it is defined to 1.
Add enum snmp_ifType in snmp.h, and use it in network interfaces for
NETIF_INIT_SNMP
Add in igmp_joingroup & igmp_leavegroup a LWIP_ERROR checking on netif
value.
Replace "netif_default = NULL;" by "netif_set_default(NULL);" in
netif_remove (do some processing, like for SNMP...)
Changes for "#20503 IGMP Improvement". Initialize igmp_mac_filter to NULL
in netif_add (this field should be set in the netif's "init" function). Use the
"imr_interface" field (for socket layer) and/or the "interface" field (for
netconn layer), for join/leave operations. The igmp_join/leavegroup first
parameter change from a netif to an ipaddr. This field could be a netif's
ipaddr, or "any" (same meaning than ip_addr_isany).
Minor changes (fix some warnings like "function declaration isn't a
prototype" and "no previous prototype for 'lwip_init'"...)
Fix warnings inside sockets.c with "gcc" compilers. See "Description" in
http://www.opengroup.org/onlinepubs/007908799/xns/syssocket.h.html :
Replace mem_malloc call by memp_malloc, and use a new MEMP_NUM_IGMP_GROUP
option (see opt.h to define the value). It will avoid potential fragmentation
problems, use a counter to know how many times a group is used on an netif, and
free it when all applications leave it. MEMP_NUM_IGMP_GROUP got 8 as default
value (and init.c got a sanity check if LWIP_IGMP!=0).
Minor fix (add some parenthesis where macro expansion could cause
problems)
Move some build time checkings inside init.c for task #7142 "Sanity check
user-configurable values".
Change parameters list for sys_thread_new (see "task #7252 : Create
sys_thread_new_ex()"). Two new parameters have to be provided: a task name, and
a task stack size. For this one, since it's platform dependant, you could
define the best one for you in your lwipopts.h. For port maintainers, you can
just add these new parameters in your sys_arch.c file, and but it's not
mandatory, use them in your OS specific functions.
Integrate "task #7272 : LWIP_ICMP option". The new option LWIP_ICMP
enable/disable ICMP module inside the IP stack (enable per default). Be
careful, disabling ICMP make your product non-compliant to RFC1122, but help to
reduce footprint, and to reduce "visibility" on the Internet.
several-files: replace some #include "arch/cc.h" by "lwip/arch.h", or
simply remove it as long as "lwip/opt.h" is included before (this one include
"lwip/debug.h" which already include "lwip/arch.h"). Like that, default defines
are provided by "lwip/arch.h" if they are not defined in cc.h, in the same
spirit than "lwip/opt.h" for lwipopts.h.
DON'T WORRY, it's just a test on CVS keywords (I will remove)
DON'T WORRY, it's just a test on CVS keywords (I will remove)
DON'T WORRY, it's just a test on CVS keywords (I will remove)
Last sanity checking centralization for "task #7142 : Sanity check
user-configurable values".
Minor changes (but in lot of files): add #if/#endif for options where
they could miss. #if LWIP_xxx if always put after #include "lwip/opt.h" (note
this one indirectly include cc.h). Move others includes inside #if/#endif block.
Add some deprecated options from "task #7142 : Sanity check
user-configurable values".
sockets.c, ip.h, api.h, tcp.h: declare a "struct ip_pcb" which only
contains IP_PCB. Add in the netconn's "pcb" union a "struct ip_pcb *ip;" (no
size change). Use this new field to access to common pcb fields (ttl, tos,
so_options, etc...). Enable to access to these fields with LWIP_TCP=0.
igmp.h, igmp.c, netif.h, netif.c, ip.c: To enable to have interfaces with
IGMP, and others without it, there is a new NETIF_FLAG_IGMP flag to set in
netif->flags if you want IGMP on an interface. igmp_stop() is now called inside
netif_remove(). igmp_report_groups() is now called inside netif_set_link_up()
(need to have LWIP_NETIF_LINK_CALLBACK=1) to resend reports once the link is up
(avoid to wait the next query message to receive the matching multicast
streams).
Add missing include files.
Remove CVS keyword
enable to remove SNMP timer (which consumne several cycles even when it's
not necessary). snmp_agent.txt tell to call snmp_inc_sysuptime() each 10ms
(but, it's intrusive if you use sys_timeout feature). Now, you can decide to
call snmp_add_sysuptime(100) each 1000ms (which is bigger "step", but call to a
lower frequency). Or, you can decide to not call snmp_inc_sysuptime() or
snmp_add_sysuptime(), and to define the SNMP_GET_SYSUPTIME(sysuptime) macro.
This one is undefined by default in mib2.c. SNMP_GET_SYSUPTIME is called inside
snmp_get_sysuptime(u32_t *value), and enable to change "sysuptime" value only
when it's queried (any direct call to "sysuptime" is changed by a call to
snmp_get_sysuptime).
Add missing #if/#endif to fix build problems
Add missing #if/#endif to fix build problems with:
Add a sanity check for PPP, and a #if !NO_SYS/#endif for slipif_loop
Avoid to lost previous error codes in sockets.c and api_lib.c.
Fix "bug #21075 : pbuf_realloc() use with PBUF_RAM and MEM_LIBC_MALLOC
fails" signaled by Bill Florac
udp.h, udp.c, sockets.c: Changes for "#20503 IGMP Improvement". Add
IP_MULTICAST_IF option in socket API, and a new field "multicast_ip" in "struct
udp_pcb" (for netconn and raw API users), only if LWIP_IGMP=1. Add getsockopt
processing for IP_MULTICAST_TTL and IP_MULTICAST_IF.
Minor changes by Andrew Dennison: add sanity check, improve debug
messages for memp, fix some warnings...
Minor change, sys_prot_t is undefined is NO_SYS=1
Minor changes for debug (indent, and set LWIP_DBG_TYPES_ON to LWIP_DBG_ON
to have all traces selected display per default, in the same spirit that
LWIP_DBG_MIN_LEVEL is set per default to LWIP_DBG_LEVEL_OFF)
netifapi.h, netifapi.c: add functions netifapi_netif_set_up,
netifapi_netif_set_down, netifapi_autoip_start and netifapi_autoip_stop. Use a
common function to reduce a little bit the footprint (for all functions using
only the "netif" parameter).
netifapi.h, netifapi.c: add function netifapi_netif_set_default. Change
the common function to reduce a little bit the footprint (for all functions
using only the "netif" parameter).
sockets.c, api.h, api_lib.c: First step to fix "bug #20900 : Potential
crash error problem with netconn_peer & netconn_addr". VERY IMPORTANT: this
change cause an API breakage for netconn_peer, since a parameter type change.
Any compiler should cause an error without any changes in yours netconn_peer
calls (so, it can't be a "silent change"). It also reduce a little bit the
footprint for socket layer (lwip_getpeername & lwip_getsockname use now a
common lwip_getaddrname function since netconn_peer & netconn_addr have the
same parameters).
Fix CHANGELOG entry
Minor change (coding style)
Minor change (add a default value to tune for MEMP_NUM_REASSDATA in opt.h)
Add sanity checking on TCP_MAXRTX and TCP_SYNMAXRTX
Update documentation for the SNMP uptime timestamp.
Update documentation for the SNMP uptime timestamp.
Minor fix (remove warning)
Minor change (sanity check for MEMP_NUM_REASSDATA only done if
IP_REASSEMBLY=1)
Minor change (define DHCP_COARSE_TIMER_MSECS - using
DHCP_COARSE_TIMER_SECS - to use milliseconds like all others timers)
Minor change (coding style, #if/#endif to include icmp.h is not necessary)
api.h, api_lib.c, api_msg.c: Add macro API_EVENT in the same spirit than
TCP_EVENT_xxx macros to get a code more readable. It could also help to remove
some code (like we have talk in "patch #5919 : Create compile switch to remove
select code"), but it could be done later.
sockets.h, sockets.c, api.h, api_lib.c, api_msg.h, api_msg.c, tcp.h,
tcp_out.c: Integrate "patch #6250 : MSG_MORE flag for send". MSG_MORE is used
at socket api layer, NETCONN_MORE at netconn api layer, and TCP_WRITE_FLAG_MORE
at raw api layer. This option enable to delayed TCP PUSH flag on multiple
"write" calls. Note that previous "copy" parameter for "write" APIs is now
called "apiflags".
Minor change, add comment for "apiflags" parameters.
api.h, api_lib.c, api_msg.c, sockets.c, opt.h: add SO_RCVBUF option for
UDP & RAW netconn. You need to set LWIP_SO_RCVBUF=1 in your lwipopts.h (it's
disabled by default). Netconn API users can use the netconn_recv_bufsize macro
to access it. This is a first release which have to be improve for TCP. Note it
used the netconn::recv_avail which need to be more "thread-safe" (note there is
already the problem for FIONREAD with lwip_ioctl/ioctlsocket).
sockets.c, api.h, api_lib.c, api_msg.h, api_msg.c: Fixed bug #20900. Now,
most of the netconn_peer and netconn_addr processing is done inside
tcpip_thread context in do_getaddr.
opt.h, init.c, tcpip.c, dhcp.c, dns.h, dns.c: add DNS client for simple
name requests with RAW api interface. Initialization is done in lwip_init()
with build time options. DNS timer is added in tcpip_thread context. DHCP can
set DNS server ip addresses when options are received. You need to set
LWIP_DNS=1 in your lwipopts.h file (LWIP_DNS=0 in opt.h). DNS_DEBUG can be set
to get some traces with LWIP_DEBUGF. Sanity check have been added. There is a
"todo" list with points to improve.
Minor changes on DNS client.
Minor changes on DNS client. Note that "compressed answers are fixed".
Minor changes on DNS client. Coding style & add "response" checking
Changes on DNS client. Add multiples dns servers support.
fix DNS problem with pbuf chain.
Minor changes on DNS.
Fix DNS client TTL processing.
api_msg.c, dns.h, dns.c: Implement DNS_DOES_NAME_CHECK option (check if
name received match the name query), implement DNS_USES_STATIC_BUF (the place
where copy dns payload to parse the response), return an error if there is no
place for a new query, and fix some minor problems.
Minor changes in DNS client.
Minor changes (typo and wrong defines names in sanity checks)
Minor change (doxygen tags)
Minor changes (documentation).
Minor change (redundant code)
Minor change: add #if 0 / #endif in ethernetif.c skeleton to avoid false
bug reports.
Minor change (forgot last CRLF)
Fix to be able to build SNMP with LWIP_ARP=0. It's not a perfect
solution, but I put some @todo points to review them later.
Fix macro ERR_IS_FATAL (else, no error is fatal).
First fix for bug #21664 "PPP code is broken".
Minor changes: dnsserver initialization with DNS_SERVER_ADDRESS in
dns_init
Minor changes: fix some problems with PPPoE include path, add small
comments in slip.c (unusual octal values?)
process "localhost" name in dns_gethostbyname
Changes for coding style (typo, use LINK_STATS_INC, tabs, ident, etc...).
Be careful, even if this change is minor, there is lot of lines modified, so,
an error is always possible (I hope there is no problems).
Minor changes: coding style (tabs, ident, etc...).
Minor changes: coding style (tabs, ident, etc...).
Minor changes: coding style (tabs, ident, etc...).
Include a temporary sample of queue.h to fix build.
Minor changes: coding style (tabs, ident, etc...).
Minor changes: coding style (tabs, ident, etc...).
Minor changes (tabs)
netdb.c: add a LWIP_DNS_API_HOSTENT_STORAGE option to decide to use a
static set of variables (=0) or a local one (=1). In this last case, your port
should provide a function "struct hostent* sys_thread_hostent( struct hostent*
h)" which have to do a copy of "h" and return a pointer ont the "per-thread"
copy.
Fix err_stderr[] table with new err.h defines.
dns.h, dns.c, opt.h: move DNS options to the "right" place. Most visibles
are the ones which have ram usage.
Minor change: move DNS_MSG_SIZE in opt.h, add comments.
api_msg.c, err.h, err.c, sockets.c, dns.c, dns.h: replace "enum
dns_result" by err_t type. Add a new err_t code "ERR_INPROGRESS".
Minor changes in PPP (coding style, tabs, idents...)
ip.c: Fix bug #21846 "LwIP doesn't appear to perform any IP Source
Address Filtering" reported by Tom Evans.
autoip.c, etharp.c: ip_addr.h: Integrate patch #6348: "Broadcast ARP
packets in autoip". The change in etharp_raw could be removed, since all calls
to etharp_raw use ethbroadcast for the "ethdst_addr" parameter. But it could be
wrong in the future.
Minor changes: fix some PPP traces.
rawapi.txt, api.h, api_lib.c, api_msg.h, api_msg.c, sockets.c, tcp.h,
tcp.c, tcp_in.c, init.c, opt.h: rename backlog options with TCP_ prefix,
limit the "backlog" parameter in an u8_t, 0 is interpreted as "smallest queue",
add documentation in the rawapi.txt file.
Minor changes in lwip folder: fix some warnings, coding style, and rename
"internal" netconn_alloc function.
Minor changes in lwip folder: fix some warnings.
Minor changes in lwip folder: fix some warnings.
sys_arch.txt, api.h, api_lib.c, api_msg.h, api_msg.c, tcpip.c, sys.h,
opt.h: Introduce changes for task #7490 "Add return value to sys_mbox_post"
with some modifications in the sys_mbox api: sys_mbox_new take a "size"
parameters which indicate the number of pointers query by the mailbox. There is
three defines in opt.h to indicate sizes for tcpip::mbox, netconn::recvmbox,
and for the netconn::acceptmbox. Port maintainers, you can decide to just add
this new parameter in your implementation, but to ignore it to keep the
previous behavior. The new sys_mbox_trypost function return a value to know if
the mailbox is full or if the message is posted. Take a look to sys_arch.txt
for more details. This new function is used in tcpip_input (so, can be called
in an interrupt context since the function is not blocking), and in recv_udp
and recv_raw.
Fix DHCP build problem.
tcpip.h, tcpip.c, api.h, api_lib.c, api_msg.c, sockets.c: replace the
field netconn::mbox (sys_mbox_t) per netconn::sem (sys_sem_t) for the task
#7490 "Add return value to sys_mbox_post".
tcpip.h, tcpip.c: add tcpip_callback_with_block function for the task
#7490 "Add return value to sys_mbox_post". tcpip_callback is always defined as
"blocking" ("block" parameter = 1).
api_msg.c, opt.h: replace DEFAULT_RECVMBOX_SIZE per
DEFAULT_TCP_RECVMBOX_SIZE, DEFAULT_UDP_RECVMBOX_SIZE and
DEFAULT_RAW_RECVMBOX_SIZE (to optimize queues sizes), like suggested for the
task #7490 "Add return value to sys_mbox_post".
tcpip.h, tcpip.c, api.h, api_lib.c, api_msg.c, sockets.c: replace the
field netconn::sem per netconn::op_completed like suggested for the task #7490
"Add return value to sys_mbox_post".
Minor change: add comment
ip.c: Integrate patch #6369" ip_input : checking before realloc".
rawapi.txt, api_msg.c, tcp.c, tcp_in.c, tcp.h: changes for task #7675
"Enable to refuse data on a TCP_EVENT_RECV call". Important, behavior changes
for the tcp_recv callback (see rawapi.txt).
Minor changes: fix some traces in ip_frag.c (coding style and end of
lines)
Minor changes: fix warning in dhcp_unfold_reply when LWIP_DEBUG=0
Minor changes: typo in doc files.
Minor changes: fix a warning: "src\core\ipv4\ip_frag.c (782) : warning:
potential uninitialized reference to "newpbuflen" in func "_ip_frag""
tcp.c, tcp_in.c, tcp.h, opt.h: Rename LWIP_CALCULATE_EFF_SEND_MSS in
TCP_CALCULATE_EFF_SEND_MSS to have coherent TCP options names.
dns.c: Fix bug #22108 "DNS problem" caused by unaligned structures.
Minor changes: replace directy call to memcpy by MEMCPY macro.
Minor changes: fix trace text in etharp.c
Minor change: add a trace in etharp.c, find_entry
dhcp.c: minor change for coding style
inet_chksum.c: minor change for coding style
api_msg.c: Fix bug #22530 "api_msg.c's recv_raw() does not consume data".
api_msg.c: fix the netbuf::addr field to point on the ip_src on the
pbuf's copy (about bug#22530).
api_msg.c: minor change, fix warning.
sockets.c: Fix bug #22435 "lwip_recvfrom with TCP break;". Using
(lwip_)recvfrom with valid "from" and "fromlen" parameters, on a TCP connection
caused a crash. Note that using (lwip_)recvfrom like this is a bit slow and
that using (lwip)getpeername is the good lwip way to do it (so, using recv is
faster on tcp sockets).
ppp: minor changes: fix some 'is unused' warning when debug is off.
igmp.h, igmp.c: Fix bug #22613 "IGMP iphdr problem" (could have some
problems to fill the IP header on some targets, use now the ip.h macros to do
it).
api_msg.c: fix wrong mailbox invalidate (NULL was used instead of
SYS_MBOX_NULL). Spoted by Silas Boyd-Wickizer.
sockets.h: minor changes, add comments for ToS options
stats.h: Fix some build bugs introduced with patch #6483 (missing some
parameters in macros, mainly if MEM_STATS=0 and MEMP_STATS=0).
sockets.c: fixed bug #25051: lwip_recvfrom problem with udp: fromaddr and
port uses deleted netbuf.
netdb.c: remplace some %#p by %p to be more portable.
init.c: typo
inet.c: patch #6765: Fix a small problem with the last changes (incorrect
behavior, with ip address string not ended by a '\0', a space or a end of line)
netif.c: minor, fix a warning
raw.c, udp.c, init.c, opt.h, ip.h, sockets.h: bug #26309: Implement the
SO(F)_BROADCAST filter for all API layers. Avoid the unindented reception of
broadcast packets even when this option wasn't set. Port maintainers which want
to enable this filter have to set IP_SOF_BROADCAST=1 in opt.h. If you want this
option also filter broadcast on recv operations, you also have to set
IP_SOF_BROADCAST_RECV=1 in opt.h.
dhcp.c, netbios.c: Changes if IF_SOF_BROADCAST is enabled.
CHANGELOG: minor, typo
minor changes: typos and coding style
goldsimon (1255):
tcpip.c: Moved call to ip_init(), udp_init() and tcp_init() from
tcpip_thread() to tcpip_init()
Fix BUG#11400 - don't corrupt existing pbuf chain when enqueuing multiple
pbufs to a pending ARP request
Fixed buf #19168 based on patch by Dmitry Potapov
Corrected patch to bug #19168
fixed compiler warning "initialization dircards qualifiers from pointer
target type"
Reduce code size: don't include code in those files if IP_FRAG == 0 and
IP_REASSEMBLY == 0
Last change (reduce code size if not used) had a bug...
Reverted pbuf_alloc() to REV 1.82
SNMP UDP ports can be configured at compile time
Initialize dhcp timers in tcpip_thread (if LWIP_DHCP) to protect the
stack from concurrent access.
Fixed bug #11400-2: New etharp queueing introduced bug: memp_memory was
allocated too small.
Fixed bug #19251 (missing `const' qualifier in socket functions), to get
more compatible to standard POSIX sockets.
checked in patch #5796: pbuf_alloc: len field claculation caused memory
corruption.
fixed bug #5067 (essentialy a signed/unsigned warning fixed by casting to
unsigned).
Remove warnings: "comparision between signed and unsigned" and
"converting from 'unsigned long' to 'u8_t': possible loss of data"
Remove warning in netif_add(): "converting from 's16' to 'u8_t': possible
loss of data" (static variable netifnum)
Remove warnings: "converting from 'u32_t' to 'u16_t': possible loss of
data": check that received timeout values fit into u16_t.
Removed warning: sizeof() was automatically casted to negative
Free pbuf if pbuf_header() fails
sockets.c Remove "#include <errno.h>" from sockets.c to avoid multiple
Removed printf formatter warning introduced by last check-in (changed
local variable from u32_t to u16_t)
- Changed the names of some variables in SNMP module to avoid them
shadowing each other (which produces a lot of warnings and makes the code hard
to maintain)
Change names of 2 global variables again, as the previous names did not
have lwip-style...
Fix bug #5848: add #if PAP_SUPPORT around the whole file pap.h
Introduced #define LWIP_UNUSED_ARG(x) use this for and
architecture-independent form to tell the compiler you intentionally are not
using this variable. Can be overriden in cc.h.
comment to the last check-in was incomplete: Introduced #define
LWIP_UNUSED_ARG(x) use this for and architecture-independent form to tell the
compiler you intentionally are not using this variable. Can be overriden in
cc.h.
3rd fix for bug #11400 (arp-queuing): More pbufs than previously thought
need to be copied (everything but PBUF_ROM!). Cleaned up pbuf.c: removed
functions no needed any more (by etharp).
Ongoing fix to patch #5822: converted more statements like (void)arg;
into LWIP_UNUSED_ARG(arg);
Changed the comment to pbuf_realloc() that it can't grow (only shrink)
chains to reflect the fact that we decided not to change this.
fix bug #2595: "loopif results
Added some more LWIP_UNUSED_ARG()s
Changed some includes for loopif and added comments
task #6792: added added LWIP_DEBUG_ASSERT(x,y), which triggers #ifndef
LWIP_NOASSERT and #ifdef LWIP_DEBUG
Define ETH_PAD_SIZE after including opt.h to avoid conflict with
lwipopts.h
pbuf_alloc() / pbuf_realloc(): added LWIP_DEBUG_ASSERT() and cast
operator when assigning s32_t to u16_t to get rid of compiler warnings
PBUF_POOL_BUFSIZE: For the default length, alignment check in pbuf_init()
failed.
Checked in patch #5453: removed mutex/other locking stuff if
SYS_LIGHTWEIGHT_PROT=0, moved some pbuf pool logic to static functions
checked in patch #5913: in memp_malloc() we can return memp as mem to
save a little RAM (next pointer of memp is not used while not in pool).
Prototype of igmp_tick() in igmp.h did not match the one in igmp.c
Introduced fast one-entry-cache to speed up ARP lookup when sending
multiple packets to the same host.
Further update to ARP queueing: Changed pbuf_copy() implementation so
that it can be reused (don't allocate the target pbuf inside pbuf_copy()).
Another attempt to fix bug #17922
mem_realloc: Added assert to check that memory is shrinked, not expanded.
If MEM_LIBC_MALLOC==1, allow the defines (e.g. mem_malloc() -> malloc())
to be overriden in case the C-library malloc implementation is not protected
against concurrent access.
Fixed 3 typos of the version checked in yesterday...
Removed unused pbuf stats items
Included patch #5920: Create define to override C-library memcpy. 2
Defines are created: MEMCPY() for normal memcpy, SMEMCPY() for situations where
some compilers might inline the copy and save a function call. Also replaced
all calls to memcpy() with calls to (S)MEMCPY().
Included patch #5448: include '#ifdef __cplusplus \ extern "C" {' in all
header files. Now you can write your application using the lwIP stack in C++
and simply #include the core files. Note I have left out the netif/ppp/*h
header files for now, since I don't know which files are included by
applications and which are for internal use only.
Included opt.h before checking the options.
Added some ASSERTs and NULL-pointer checks to sys_timeout/sys_untimeout
- Changed mem_malloc(): near fit behaves like exact fit since mem->next
is always used
Ooops, checked in the wrong version before :-(
sys.h: moved #include "arch/sys_arch.h" down a little, so that functions
using the defines SYS_ARCH_TIMEOUT/SYS_MBOX_EMPTY can be define as static
(inline) in sys_arch.h. This should not affect any others since the defines
couldn't be overridden anyway...
Fix for bug #19740: 2 static functions are unused, simply ifdefing them
out for now to get rid of warnings
Fixed bug from patch #5865 by moving the defines for socket options
(lwip_set/-getsockopt) used with level IPPROTO_TCP from tcp.h to sockets.h.
Modified struct pbuf size determination so that sizeof(struct pbuf) does
not necessarily be a multiple of MEM_ALIGNMENT
(see task #6831): Included new option PBUF_POOL_USES_MEMP to use a memp
pool for PBUF_POOL pbufs instead of the old pool implementation in pbuf.c to
remove redundant code.
task #6831: removed the option PBUF_POOL_USES_MEMP and removed the old
pbuf pool code, pbuf pool now always allocates from a memp pool
Found a little bug in ARP_QUEUEING: if pbuf_alloc for the packet to be
queued failed, pbuf_copy was called with a NULL pointer.
Aligned MIN_SIZE, memset(0) the complete ram_heap instead of only the
used area, only to be on the safe side...
pbuf_alloc(PBUF_POOL): Added asserts to make sure payload+len is still in
bound of the pbuf (also to make sure bug #15659 is fixed).
Removed semaphores from memp, changed sys_sem_wait calls into
sys_arch_sem_wait calls to prevent timers from running while waiting for the
heap. This fixes bug #19167.
Updated stats.h/.c to reflect the integration of pbuf pool into memp
Removed PBUF_STATS and related code from opt.h & msg_in.c
Finally removed all occurences of PBUF_STATS :-)
If a udp_pcb has a local_ip set, check if it is the same as the one of
the netif used for sending to prevent sending from old addresses after a netif
address gets changed (partly fixes bug #3168).
Fix bug #19729: free pbuf if netif->input() returns != ERR_OK.
changes tabs to spaces
...and again replacing tab by spaces ;-)
tcpip_input()/tcpip_ethinput(): don't free the pbuf if returning ERR_MEM,
that is the netif driver's responsibility
Added comments whether fields are host or network byte order (task #1568)
Added comments whether fields are host or network byte order (task #1568)
Corrected check of PBUF_POOL overflow
Added #if !NO_SYS to most of the api files since they only work with a
sys layer (makes it easier for port projects).
Added some new functions as null-definitions if NO_SYS=1
Addition to patch #5913: decrease size of memp_memory.
Check the user-overridable defines MEMP_SANITY_REGION_BEFORE and
MEMP_SANITY_REGION_AFTER for aligment.
Gave the overflow functions some better names which correspond to the
(future) mem.c function names
Re-included unneeded cases in do_disconnect() and do_send() to prevent
warnings.
Included patch #5938: changed raw_pcb.protocol from u16_t to u8_t since
for IPv4 and IPv6, proto is only 8 bits wide. This affects the api, as there,
the protocol was u16_t, too.
Added some comments, better max-size-check, removed Adams original
mem_malloc.
Broke some (too long) lines down to multiple lines, made the file fit our
coding standards
Included some missing braces in lwip_send & lwip_sendto (if !LWIP_UDP &&
!LWIP_RAW)
Fixed bug #1895 (tcp_bind not correct) by introducing a list of bound but
unconnected (and non-listening) tcp_pcbs.
Removed LWIP_DEBUG_ASSERT
Use TCP_RMV instead of tcp_pcb_remove when removing pcbs from
tcp_bound_pcbs list (bug introduced while fixing bug #1895)
Made etharp_find_addr() use find_entry to concentrate the knowledge of
arp_table layout in find_entry().
Checked in patch #5914: Moved sockopt processing into tcpip_thread.
Done some work on task #1549 (function documentation)
Corrected bug #19937: ICMP assumes p_buf has space for ethernet header.
Allocating new pbuf if the input pbuf isn't big enough.
Done some work on task #1549 (function documentation)
Needed for patch to bug #19937: pbuf_copy is always compiled, not only if
ARP_QUEUEING is enabled
udp_input(): Input pbuf was not freed if pcb had no recv function
registered, p->payload was modified without modifying p->len if sending
icmp_dest_unreach() (had no negative effect but was definitively wrong).
Converted some DEBUGFs that should never happen to LWIP_ASSERTs
Done some work on task #1549 (function documentation)
IPv6: #define IPH_PROTO(hdr) (iphdr->nexthdr) to remove #ifdef IPv6 in
udp_input()
opt.h, ip_frag.c, ip_frag.h, ip.c: Added option IP_FRAG_USES_STATIC_BUF
(defaulting to off for now) that can be set to 0 to send fragmented packets by
passing PBUF_REFs down the stack.
Set q to NULL after freeing it before returning: cleaner code!
Typo in lwip_setsockopt() (getsockopt_internal was called instead of
setsockopt_internal!!!)
Defined IGMP_DEBUG defaulting to LWIP_DBG_OFF in opt.h
Corrected setsockopt for LWIP_IGMP=1 (did not compile & errors were not
returned)
Done some work on task #1549 (function documentation)
Done some work on task #1549 (function documentation) and minor changes
to meet coding standard
Done some work on task #1549 (function documentation)
Done some work on task #1549 (function documentation)
Moved members common to structures tcp_pcp and tcp_listen_pcb into define
TCP_PCB_COMMON (like IP_PCB) to keep (possible) code changes consistent.
Done some work on task #1549 (function documentation) and minor changes
to meet coding standard
Done some work on task #1549 (function documentation)
Done some work on task #1549 (function documentation)
Minor changes to meet coding standard
Fixed a cast warning by including the type to TCP_PCB_COMMON: (Moved
members common to structures tcp_pcp and tcp_listen_pcb into define
TCP_PCB_COMMON (like IP_PCB) to keep (possible) code changes consistent.)
Done some work on task #1549 (function documentation)
Done some work on task #1549 (function documentation)
Let lookup_group() call lookfor_group() to reduce code size, done some
work on task #1549 (function documentation) and minor changes to meet coding
standard
Done some work on task #1549 (function documentation) and minor changes
to meet coding standard + added some comments to make the code easier to read.
Added define NETIF_INIT_SNMP(type, speed) to initialize per-netif snmp
variables, added initialization of those to slipif and loopif.
loopif_output(): use pbuf_copy() to copy the pbuf to reduce code size
pbuf_copy(): Corrected a wrong comment & try to behave correctly if
LWIP_NOASSERT is defined
Changed define NETIF_INIT_SNMP(type, speed) to include the name of the
struct netif to change...
Done some work on task #1549 (function documentation)
Minor change: don't define some local (unused) variables if
LWIP_TCPIP_CORE_LOCKING=1
Changed etharp_tmr() to be smaller
Modified order of parameters for etharp_output() to match netif->output
so etharp_output() can be used directly as netif->output to save one function
call.
Corrected #if ... when to include copy_from_pbuf()
set netif->output to etharp_output by default to save a function call
Forgot some brackets in an if statement in v1.109
Included switch LWIP_UDPLITE (enabled by default) to switch off UDP-Lite
support if not needed (reduces udp.c code size)
UDP Lite: corrected the use of chksum_len (based on RFC3828: if it's 0,
create checksum over the complete packet. On RX, if it's < 8 (and not 0),
discard the packet. Also removed the duplicate 'udphdr->chksum = 0' for both
UDP & UDP Lite.
Added UDP lite support for sockets
In udp_input, for UDP Lite, chksum_len_tx was used instead of
chksum_len_rx
pcb_new sets conn->err if protocol is not implemented -> netconn_new_..()
does not allocate a new connection for unsupported protocols.
minor fix in assertion text
pbuf_copy: chained pbufs were not copied correctly because of wrong
packet-queue-check
pbuf_copy(): removed copy & paste error which did not copy pbuf chains
correctly
Added debug output for icmp_input if ip_output_if worked or not.
Changed all references to old debug defines to the new ones (e.g.
LWIP_DBG_TRACE)
Fixed bug #20180 (TCP pcbs listening on IP_ADDR_ANY could get changed in
netif_set_ipaddr if previous netif->ip_addr.addr was 0.
Done some work on task #1549 (function documentation), added some
LWIP_ERROR checks, created define instead of extra-function for netconn_new,
netconn_new_with_callback and netconn_err
Created define instead of extra-function for netconn_new,
netconn_new_with_callback and netconn_err, added netconn_type NETCONN_INVALID
Corrected some copy & paste errors
Added comments for the callback functions included in structs tcp_pcb,
udp_pcb and raw_pcb.
Minor fix: coding style
Added comments for the callback functions included in struct
tcp_listen_pcb
Done some work on task #1549 (function documentation), added some
LWIP_ERROR checks, don't call pcb_new() from do_bind() and do_connect() since a
netconn without pcb can't exist any more (after the recent changes to
netconn_new_*())
Done some work on task #1549 (function documentation)
Implemented socket options SO_NO_CHECK for UDP sockets to disable UDP
checksum generation on transmit.
Done some work on task #1549 (function documentation)
Always align PBUF_POOL_BUFSIZE, pbuf_init is not needed any more, minor
changes to meet coding style requirements
In accept_function, one LWIP_ERROR had a wrong expression (since it is
inverted compared to LWIP_ASSERT...)
Done some work on task #6933: converted some LWIP_ASSERTs to LWIP_ERROR
to give back an error return value for LWIP_NOASSERT=1
Done some work on task #6933: converted some LWIP_ASSERTs to LWIP_ERROR
to give back an error return value for LWIP_NOASSERT=1
Forgot to implement getsockopt for SO_NO_CHECK
Corrected two formatters in LWIP_DEBUGF calls
Shortened some lines to ~80
Ooops, checked in a wrong (test-) version before!
Removed warning "empty body in an if statement" in tcp_receive() for
LWIP_DEBUG=0
Changed etharp to use a defined hardware address length of 6 to avoid
loading netif->hwaddr_len every time (since this file is only used for ethernet
and struct eth_addr already had a defined length of 6).
Fixed bug #20021: Moved sendbuf-processing in netconn_write from
api_lib.c to api_msg.c to also prevent multiple context-changes on low memory
or empty send-buffer.
Moved the nagle algorithm from netconn_write/do_write into a define
(tcp_output_nagle) in tcp.h to provide it to raw api users, too.
Corrected do_write for LWIP_TCPIP_CORE_LOCKING=1
Converted the length argument of netconn_write (and therefore also
api_msg_msg.msg.w.len) from u16_t into int to be able to send a bigger buffer
than 64K with one time (mainly used from lwip_send).
Added ASSERT to check that lwip_send(to) is not called for length not
fitting into u16_t (for UDP & RAW sockets)
Introduced the option MEM_USE_POOLS to use 4 pools with different sized
elements instead of a heap. This both prevents memory fragmentation and gives a
higher speed at the cost of more memory consumption. Turned off by default.
ASSERTS were using old MEM_ALIGN define, therefore, was not compilable
without LWIP_NOASSERT defined
no-pool-big-enough was not correctly caught
Changed the expression of LWIP_ERROR to the same as for LWIP_ASSERT
Sorry, checked in some of my local changes with the LWIP_ERROR
modification!
etharp_tmr function had a bug (pending entries were pending for too long)
Combined etharp_request with etharp_raw for both LWIP_AUTOIP =0 and =1 to
remove redundant code.
Moved filling of ethernet header for outgoing IP packets into an extra
function to reduce code size.
Fixed bug #20220: UDP PCB search in udp_input(): a non-local match could
get udp input packets if the remote side matched.
Fixed bug #20253: icmp_dest_unreach was called with a wrong p->payload
for udp packets with no matching pcb.
etharp_arp_input: stricter checking of hwtype, proto, hwlen & protolen
allows us to leave some header fields like they are when sending ARP reply
(only changing the addresses is needed)
Fixed bug #20259: struct udp_hdr was lacking the packin defines.
Removed warning: LWIP_DEBUGF had wrong argument count
Set the err_to_errno_table to be const
Remove warning in tcp_enqueue (cast from u32_t to u16_t)
Fixed minor indentation fault
Fixed bug #20287: Fixed nagle algorithm (sending was done too early if a
segment contained chained pbufs)
Added check to prevent tcp_pcb->snd_queuelen from overflowing.
Set/get ARP hwlen and protolen in one piece.
Fixed a wrong assert statement in etharp_query when ARP_QUEUEING=1 and
packets should be queued.
Changed tcp_pcb->snd_queuelen from u8_t to u16_t to prevent overflowing
when sending many small packets with big send buffer, added assertions and
oveflow checks for snd_queuelen.
Removed warning when assigning from u32_t to u16_t by casting to u16_t.
Fixed a little cast-warning from u32_t to u16_t
Added some ASSERTS and casts to prevent warnings when assigning to
smaller types.
Added option LWIP_NETIF_HWADDRHINT (default=off) to cache ARP table
indices with each pcb instead of single-entry cache for the complete stack.
#ifdef LWIP_NETIF_HWADDRHINT around IP_PCB.addr_hint
Final fix for bug #20021 and some other problems when closing tcp
netconns: removed conn->sem, less context switches when closing, both
netconn_close and netconn_delete should safely close tcp connections.
Bug in last version (fix to close problems): netconn thread might get
active before calling its callback, so conn was already deallocated.
Added assertions where PBUF_RAM pbufs are used and an assumption is made
that this pbuf is in one piece (i.e. not chained). These assumptions clash with
the possibility of converting to fully pool-based pbuf implementations, where
PBUF_RAM pbufs might be chained.
Removed old debug variables from pbuf_copy()
Another change for fixing bug #20478 (put the memp += MEMP_SIZE in
another place)
Included the mem_malloc pools in memp_names if MEM_USE_POOLS=1
Fix bug #20480: Check the pcb passed to tcp_listen() for the correct
state (must be CLOSED).
Fix bug #20506: Slow start / initial congestion window starts with 2 *
mss (instead of 1 * mss previously) to comply with some newer RFCs and other
stacks.
tcp_enqueue: pcb->snd_queuelen didn't work for chaine PBUF_RAMs: changed
snd_queuelen++ to snd_queuelen += pbuf_clen(p).
Fixed bug #20429: use the new pbuf_copy_partial instead of the old
copy_from_pbuf, which illegally modified the given pbuf; Introduced
pbuf_copy_partial, making netbuf_copy_partial use this function.
Another fix for bug #20021: by not returning an error if tcp_output fails
in tcp_close, the code in do_close_internal gets simpler (tcp_output is called
again later from tcp timers).
Added a better comment to explain why tcp_close doesn't care for the
return value of tcp_output
Fixed bug #21107 (didn't reset IP TTL in ICMP echo replies)
Fixed bug #21080 (tcp_bind without check pcbs in TIME_WAIT state) by
checking tcp_tw_pcbs also
Moved ethernet_input from tcpip.c to etharp.c so all netifs (or ports)
can use it.
Changed IP_REASSEMBLY to enqueue the received pbufs so that multiple
packets can be reassembled simultaneously and no static reassembly buffer is
needed.
Check for TCP_SND_QUEUELEN overflow.
Added check for overlapping or duplicate fragments. ip_reass_init() is
not needed any more (the check is done in
chain_frag_into_packet_and_validate()).
Fixed UDPLite SENDING: Checksum was always generated too short and also
was generated wrong if checksum coverage != tot_len.
lfree was not updated in mem_realloc!
Removed type conversion warning in debug statement.
Typo in chain_frag_into_packet_and_validate (but obviously worked
anyway...)
Removed <warning: potential uninitialized reference to
Preprocessor statements have to start at the beginning of a line for old
compilers!
Added todo: free the oldest entry when the MEMP_REASSDATA pool is empty
or the IP_REASS_MAX_PBUFS limit is reached
Fixed UDPLite receive: checksum was calculated wrong if checksum coverage
!= tot_len
Changed initialization: many init functions are not needed any more since
we now rely on the compiler initializing global and static variables to zero!
Forgot two explicit initializations...
Gave the parameters of pbuf_cat() and pbuf_chain() better names to make
the use more clear.
Added description for MEMP_NUM_REASSDATA and changed the default value to
5.
Added check that MEMP_NUM_REASSDATA is bigger than IP_REASS_MAX_PBUFS
(because each MEMP_NUM_REASSDATA has one pbuf at least!)
Added code to free the oldest packets if the IP_REASS_MAX_PBUFS limit is
reached or MEMP_REASSDATA is empty.
Removed bug on memory failure introduced 3 months ago in rev 1.34 (input
pbuf was freed on puf_alloc failure)
IP_REASSEMBLY: Changed 'packet' to 'datagram' to match the names used in
the RFCs
IP_REASSEMBLY: send ICMP time exceeded when discarding datagrams for
which the first fragment was received; try to keep the header of the first
(octet 0) fragment; combined code to make it smaller; fixed bug in timer: when
freeing packets, counter was not updated correctly
Minor coding style fixes, added comment
Removed check for conn->err for functions whose counterparts in api_msg.c
also do the check (1. remove redundant code, 2. check is better done in tcpip
thread context)
Added some explaining comments.
Fixed bug #21181: On active open, the initial congestion window was
calculated based on the configured TCP_MSS, not on the MSS option received with
SYN+ACK.
Fixed bug #21491: The MSS option sent (with SYN) is now based on TCP_MSS
instead of pcb->mss (on passive open now effectively sending our configured
TCP_MSS instead of the one received).
Fixed bug #21494: The send mss (pcb->mss) is set to 536 (or TCP_MSS if
that is smaller) as long as no MSS option is received from the remote host.
Task #7410: Removed the need to include core header files in api.h
(ip/tcp/udp/raw.h) to hide the internal implementation from netconn api
applications.
Patch #6215: added ifAdminStatus write support (if explicitly enabled by
defining SNMP_SAFE_REQUESTS to 0); added code to check link status for
ifOperStatus if LWIP_NETIF_LINK_CALLBACK is defined.
Fixed bug: assert fired when MEMP_ARP_QUEUE was empty (which can happen
any time). Now the packet simply isn't enqueued when out of memory.
tcp_send_ctrl(): call tcp_enqueue with the new flag TCP_WRITE_FLAG_COPY
instead of 1
Turned all hostname variables and parameters into (const char*)
Added sequential dns resolver function for netconn api
(netconn_gethostbyname)
Added sequential (socket API) function gethostbyname and the struct
hostent it uses
Moved inet files into ipv4/ipv6 directory; splitted inet.c/inet.h into
inet and chksum part; changed includes in all lwIP files as appropriate
Deleted old inet.c/inet6.c files
Added thread-safe function gethostbyname_r (as in glibc)
Added function documentation to dns.c, removed function documentation
from dns.h (functions should be documented where they are implemented!),
dns_table_entry doesn't have to be packed (slower, bigger code for most
machines), converted dns_init to return void, dns_table is implicitly
initialized to zero, dns_lookup can be static, dns_send returns correct error
values, added some asserts, compacted dns_recv using some (ugly) gotos,
compacted dns_gethostbyname by combining the same return value
Adopted lwip_gethostbyname and lwip_gethostbyname_r to the new return
values of dns_gethostbyname/netconn_gethostbyname
Added return value comments to netconn_gethostbyname
Fixed bug #20287: tcp_output_nagle sends too early. This fixes the nagle
algorithm; nagle now also works for all raw API applications and has to be
explicitly disabled with 'tcp_pcb->flags |= TF_NODELAY'
Implemented calculating the effective send-mss based on the MTU of the
netif used to send. Enabled by default. Disable by setting
LWIP_CALCULATE_EFF_SEND_MSS to 0. This fixes bug #21535.
tcpip.h was not compilable with both NO_SYS and LWIP_NETCONN set to 0
(include sys.h was missing)
Moved lwip_gethostbyname from sockets.c to the new file netdb.c; included
lwip_getaddrinfo.
Added some documentation (mainly what is unimplemented in contrast to
'std-BSD'), alloc_socket returns the sock pointer directly (for speedup)
Added the wiki and a note about the mailing lists
Added documentation
Added some more comments and function documentation
Back to old alloc_socket(), lwip_accept had a bug in last revision
Added documentation / minor code layout changes
dhcp_unfold_reply() uses pbuf_copy_partial instead of its own copy
algorithm; corrected some assert messages
Fix some warnings discovered by compiling the unixsim under cygwin (gcc
pedantic)
Minor coding style changes, added some comments
Added an explaining comment for the line 'nsock->rcvevent += -1 -
newconn->socket;' in lwip_accept
lock event_callback against lwip_accept for data that arrives right away
after an accept (before lwip_accept has processed the new conn)
initialize netconn->socket to -1 instead of 0 since 0 is a valid socket!
Check state == CLOSED in tcp_bind and tcp_connect to prevent
binding/connecting twice (using LWIP_ERROR: can be disabled)
Fixed bug #21582: pcb->acked accounting can be wrong when ACKs arrive
out-of-order
Minor coding style changes
Implemented new function udp_sendto_if which takes the netif to send as
an argument (to be able to send on netifs that are down).
Changed error handling: ERR_MEM, ERR_BUF and ERR_RTE are seen as
non-fatal, all other errors are fatal. netconns and sockets block most
operations once they have seen a fatal error.
fixed bug #21643 (udp_send/raw_send don't fail if netif is down) by
letting ip_route only use netifs that are up.
mem_malloc with MEM_USE_POOLS=1: if size > size of biggest pool and
custom pools (in addition to the MEM_POOLs) were defined, the first custom pool
was used instead of asserting
Use LINK_STATS_INC instead of #if LINK_STATS...
Use IP_STATS_INC instead of #if IP_STATS...
Use ICMP_STATS_INC instead of #if ICMP_STATS...
Introduced ETHARP_STATS
Minor coding style changes
first attempt to fix bug #21655 (DHCP doesn't work reliably with multiple
netifs): if LWIP_DHCP is enabled, UDP packets to DHCP_CLIENT_PORT are passed to
netif->dhcp->pcb only (if that exists) and not to any other pcb for the same
port (only solution to let UDP pcbs 'bind' to a netif instead of an IP address)
task #7497: Sort lists (pcb, netif, ...) for faster access UDP: move a
(connected) pcb selected for input to the front of the list of pcbs so that it
is found faster next time. Same for RAW pcbs that have eaten a packet.
connect the UDP pcb to the DNS server (IPaddress and port) to receive
faster (unconnected pcbs are very inefficient in udp_input)
Compacted code: moved the code creating a netconn (without pcb) from
netconn_new_with_proto_and_callback to new (synchroneous) function
netconn_alloc_with_proto_and_callback and call this function from
netconn_new_with_proto_and_callback and accept_function.
Minor change: use goto instead of redundant code to return on error in
dhcp_rev().
fix bug #21656 (recvmbox problem in netconn API): always allocate a
recvmbox in netconn_new_with_proto_and_callback. For a tcp-listen netconn, this
recvmbox is later freed and a new mbox is allocated for acceptmbox. This is a
fix for thread-safety and allocates all items needed for a netconn when the
netconn is created.
Minor fix: #include "lwip/api.h" was missing to compile cleanly
fix bug #21654: exclude definition of struct timeval from #ifndef FD_SET.
If including <sys/time.h> for system-struct timeval, LWIP_TIMEVAL_PRIVATE now
has to be set to 0 in lwipopts.h
ip_input: check if a packet is for inp first before checking all other
netifs on netif_list (speeds up packet receiving in most cases)
Added short comment in file description about how to handle MEM_USE_POOLS
/ MEM_LIBC_MALLOC
fix bug #21699 (segment leak in ooseq): add assert that all segment lists
are empty in tcp_pcb_remove before setting pcb to CLOSED state; don't directly
set CLOSED state from LAST_ACK in tcp_process
Fix bug #21699: segment leak in ooseq processing when last data packet
was lost (free last segment if FIN is already received)
Corrected assert when netconn_new_* fails
Removed debug code
sys.h, api_lib.c, api_msg.c, sockets.c: fix bug #21698:
"netconn->recv_avail is not protected" by using new macros for interlocked
access to modify/test netconn->recv_avail.
tcp.h, opt.h, api.h, api_msg.h, tcp.c, tcp_in.c, api_lib.c, api_msg.c,
sockets.c, init.c: task #7252: Implement TCP listen backlog: Warning: raw API
applications have to call 'tcp_accepted(pcb)' in their accept callback to keep
accepting new connections.
Added function netconn_free(), which deallocates all mboxes and frees the
netconn (to be used from different places) - the PCB is not freed!
Coding style: use named constants instead of numbers only
Clarify that timeout == 0 means wait forever
Corrected comment in do_writemore()
fixed bug #22249: division by zero could occur if a remote host sent a
zero mss as TCP option.
Added global #ifndef __SIO_H__ and some comments
fixed bug #21433 (Calling mem_free/pbuf_free from interrupt context isn't
safe): set LWIP_USE_HEAP_FROM_INTERRUPT to 1 in lwipopts.h or use
tcpip_callback_nonblocking(pbuf_free_int, p)/
tcpip_callback_nonblocking(mem_free, m) to free pbufs or heap memory from
interrupt context
Changed the pbuf_free/mem_free callback functions a little: created extra
functions for that
Fixed comments for pbuf_copy() and find_entry() as proposed by Luca
Ceresoli on lwip-users
fixed bug #22804: dhcp_stop doesn't clear NETIF_FLAG_DHCP (flag now
cleared)
Checked in slightly modified version of patch # 6370: Moved loopif code
to netif.c so that loopback traffic is supported on all netifs (all local IPs).
Got the date & place of the newest feature wrong ;-)
Changed loopback code (less difference between NO_SYS = 0 / 1), added
setting LWIP_LOOPBACK_MAX_PBUFS to limit loopback-queued pbufs
Increasing etharp error stats on unsupported ethtype in ethernet_input()
Checked in some ideas of patch #6460 (loop optimizations) and created
defines for swapping bytes and folding u32 to u16.
Fixed loopif_poll define (now maps directly to netif_poll)
Added a configuration option for slipif for symmetry to loopif (patch
#6480)
Changed two MEMCPY calls to SMEMCPY
patch #6459: Made err_t overridable to use a more efficient type (define
LWIP_ERR_T in cc.h)
Fixed includes in netif.c, removed loop_cnt_max member in struct netif
(instead the define LWIP_LOOPBACK_MAX_PBUFS is used directly)
Added debug trace for incoming eth packets in ethernet_input like
suggested in patch #6519
patch #6483: stats module improvement: Added defines to display each
module's statistic individually, added stats defines for MEM, MEMP and SYS
modules, removed (unused) rexmit counter.
Fix typo, add comment
fixed bug #21433: Calling mem_free/pbuf_free from interrupt context isn't
safe: LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT allows mem_free to run between
mem_malloc iterations. Added illegal counter for mem stats.
fixed bug #23847: do_close_internal references freed memory
removed invalid call to tcp_connect() in do_close_internal()
Fixed some warnings, changed some debug defines to include better names
Added 2 asserts in pbuf_realloc to prevent dereferencing a null pointer
in invalid pbuf queues
fixed bug #24132: Cross-dependency between ip_addr.h and inet.h -> moved
declaration of struct in_addr from ip_addr.h to inet.h
fixed one small warning (compared u16_t to <= 0)
fixed bug #24517: IP reassembly crashes on unaligned IP headers by
packing the struct ip_reass_helper.
fixed bug ##24596: Vulnerability on faulty TCP options length in
tcp_parseopt
Checked in (slightly modified) patch #6683: Customizable AUTOIP "seed"
address. This should reduce AUTOIP conflicts if LWIP_AUTOIP_CREATE_SEED_ADDR is
overridden.
Corrected the range calculation of LWIP_AUTOIP_CREATE_SEED_ADDR,
corrected comments
Another modification for patch #6683 (Customizable AUTOIP seed address)
patch #6699: fixed some warnings on platform where sizeof(int) == 2
Another fix for bug #6683 (and a typo in changelog)
Reverted last changes since it's wrong when sizeof(int)==2...
fixed bug #25467: Listen backlog is not reset on timeout in SYN_RCVD:
Accepts_pending is decrease on a corresponding listen pcb when a connection in
state SYN_RCVD is close.
Moved INADDR_* defines to inet.h; removing dependency from inet.h to
ip_addr.h
Fixed bug #25544: DHCP_COARSE_TIMER_MSECS could overflow on 16-bit targets
added configurable default valud for netconn->recv_bufsize:
RECV_BUFSIZE_DEFAULT (fixes bug #23726: pbuf pool exhaustion on slow recv())
including inet.h because htonl is used
fixed bug #24480 (releasing old udp_pdb and pbuf in dhcp_start)
added MEMP_MEM_MALLOC to use mem_malloc/mem_free instead of the pool
allocator (can save code size with MEM_LIBC_MALLOC if libc-malloc is otherwise
used)
fixed bug #25345 (DHCPDECLINE is sent with "Maximum message size" option)
Added LWIP_VERSION to get the current version of the stack (implements
task #9032: Provide means to get Version of Stack and submodules)
LWIP_VERSION: corrected shifting for 16-bit platforms, added
LWIP_RC_DEVELOPMENT
Fixed compilation error in LWIP_VERSION
fixed bug #24440: TCP connection close problem on 64-bit host by moving
accept callback function pointer to TCP_PCB_COMMON
fixed arguments of socket functions to match the standard; converted size
argument of netconn_write to 'size_t' for that; fixed some warnings
patch #6539: (configurable) response to broadcast- and multicast pings
etharp_raw: allocating PBUF_RAW for outgoing ARP packets instead of
PBUF_LINK is enough.
Added check: PBUF_POOL_BUFSIZE must be greater than MEM_ALIGNMENT or else
the offset of a pbuf may take the full first pbuf in a chain (resulting in the
first pbuf having len==0)
patch #6528: the buffer used for IP_FRAG_USES_STATIC_BUF could be too
small depending on MEM_ALIGNMENT
Fixed many warnings: use %p to pass pointers to printf
sys_now() must return u32_t, not unsigned long
mem_free: fix a warning by converting pointer to mem_ptr_t instead of
unsigned long
Fixed many LWIP_DEBUGF format strings; added new format string SZT_F for
size_t
cc.h: Added printf formatter for size_t: SZT_F
bug #26121: set_errno can be overridden
bug #25763: Corrected 4 occurrences of SMEMCPY to MEMCPY; corrected
indentation
bug #26027: netbuf_chain resulted in pbuf memory leak
patch #6764: DHCP rebind and renew did not send hostnam option; Converted
constant OPTION_MAX_MSG_SIZE to netif->mtu, check if netif->mtu is big enough
in dhcp_start
patch #6763: Global DHCP XID can be redefined to something more unique
patch #6765: Supporting new line characters in inet_aton()
patch #6808: Add a utility function ip_hinted_output() (for smaller code
mainly)
task #9192: mem_free of dhcp->options_in and dhcp->msg_in
Converted netconn_type() from a function to a macro
tried to fix bug #23559: lwip_recvfrom problem with tcp
Changed ??? to LINK_SPEED_OF_YOUR_NETIF_IN_BPS
fixed bug #25695: Segmentation fault in do_writemore()
tcp_listen_input: format code for #if LWIP_TCP_TIMESTAMPS that calls
tcp_enqueue like the other calls.
Fixed bug #25094: "Zero-length pbuf" (options are now allocated in the
header pbuf, not the data pbuf); added function comments; "inline" is not
supported by ANSI C (tcp_build_timetamp_option)
Fixed bug #26236: "TCP options (timestamp) don't work with
no-copy-tcpwrite": deallocate option data, only concat segments with same flags
task #7507, patch #6786: DNS supports static hosts table. New
configuration options DNS_LOCAL_HOSTLIST and DNS_LOCAL_HOSTLIST_IS_DYNAMIC.
Fixed bug #26069: Corrected documentation: if tcp_connect fails, pcb->err
is called, not pcb->connected (with an error code).
Fixed some issues with DNS_LOCAL_HOSTLIST
bug #26213 "Problem with memory allocation when debugging": memp_sizes
contained the wrong sizes (including sanity regions); memp pools for
MEM_USE_POOLS were too small; Added option MEM_USE_POOLS_TRY_BIGGER_POOL to try
the next bigger malloc pool if one is empty (only usable with MEM_USE_POOLS).
fixed bug #24212: "Deadlocked tcp_retransmit due to exceeded pcb->cwnd":
Fixed by sorting the unsent and unacked queues (segments are inserted at the
right place in tcp_output and tcp_rexmit)
Fixed a bug in tcp_enqueue introduced with v1.79 of this file while
fixing bug #25094 (zero-length pbuf)
Bug #25608: Made SYS_LIGHTWEIGHT_PROT and sys_now() work with NO_SYS=1
Integrated patch #6721: new option to adjust the time when DHCP gives
over to AUTOIP and some improvements in DHCP/AUTOIP cooperation
Fixed bug #24228: Memory corruption with PPP and DHCP
Fixed bug #21680: PPP upap_rauthnak() drops legal NAK packets
Addition to patch #6721, bug #25575: call autoip_stop in dhcp_stop if in
coop-mode
fixed bug #25636: SNMPSET value is ignored for integer fields
fixed tcpip_untimeout (does not need the time, broken after 1.3.0 in CVS
only) - fixes compilation of ppp_oe.c
Fixed bug #26349: Nagle algorithm doesn't send although segment is full
(and unsent->next == NULL)
snmp was not initialized in lwip_init()
Fixed bug #26405: Prematurely released semaphore causes lwip_select() to
crash
Added ip_current_netif() & ip_current_header() to receive extended info
about the currently received packet.
Added a word or two on threading, which should be sufficient to close
task #6683
Added #if LWIP_SNMP around snmp-internal header files
Patch #6823: tcp_in.c - small optimization
On little endian architectures, use LWIP_PLATFORM_HTONS (if defined) for
SWAP_BYTES_IN_WORD to speed up checksumming.
Added more threading info
Added netbuf.h to files that may be called from any thread
Worked on dns: local host-list can be put into FLASH (by defining storage
target/linker section), external function can be defined for lookup, combined
dns_local_removehostname/removehostaddr to dns_local_removehost
Shrinked ICMP code, added option to NOT check icoming ECHO pbuf for size
(just use it): LWIP_ICMP_ECHO_CHECK_INPUT_PBUF_LEN
task #7013: Added option LWIP_NETIF_TX_SINGLE_PBUF to try to create
transmit packets from only one pbuf to help MACs that don't support
scatter-gather DMA.
Fixed compilation if LWIP_PLATFORM_BYTESWAP && (BYTE_ORDER ==
LITTLE_ENDIAN)
bug #26487: Added ip_output_if_opt that can add IP options to the IP
header (used by igmp_ip_output_if)
fixed bug #26507: "Gratuitous ARP depends on arp_table / uses
etharp_query" by adding etharp_gratuitous()
Moved function definition below defines and typedefs, added missing
include to netif.h
Corrected function definition of ip_current_* (void was missing)
Corrected function implementation of ip_current_* (void was missing)
Corrected structure packing
Added note about printf formatter defines
Added missing include to netif.h
Fixed bug #27114: Missing #include in api_msg.c on LWIP 1.3.1RC1; added
include <string.h>
Fixed bug #27034: "Invalid ASSERT in pbuf_alloc()" to prevent breaking
PPP (for now).
Added newline to TCP header flags debug print
Added debug print when rejecting incoming connections due to exceeded
listen backlog
Fixed bug #27105: "realloc() cannot replace mem_realloc()" by making
mem_realloc static doing nothing when MEM_LIBC_MALLOC==1
Fixed bug #27155: "'NULL' undeclared in inet_checksum.c"
Added missing include to <string.h>
Added function tcp_debug_state_str() to convert a tcp state to a
human-readable string.
patch #6843: tcp.h macro optimization patch (for little endian)
bug #27267: Added include to string.h where needed
Fixed bug #27252: Address pointer invalid after freeing pbuf in UDP
receive callback
Fixed bug #27266: wait-state debug message in pppMain occurs every ms
Fixed bug #26649: TCP fails when TCP_MSS > TCP_SND_BUF, Fixed wrong
parenthesis, added check in init.c
Fixed bug #26657: DNS, if host name is "localhost", result is error.
Fixed bug #27078: Possible memory leak in pppInit()
patch #6900: added define ip_ntoa(struct ip_addr*)
task #9033: Support IEEE 802.1q tagged frame (VLAN), New configuration
options ETHARP_SUPPORT_VLAN and ETHARP_VLAN_CHECK.
fixed invalid dependency to etharp_query if DHCP_DOES_ARP_CHECK==0
Use LWIP_UNUSED_ARG() instead of if(){}, fix unused arg warning if
LWIP_ARP==0
Commented the functions, added sio_tryread() for non-blocking read (to be
used in slipif-polling mode)
bug #26397: Added SLIP polling support (uses sio_tryread)
do_connect: LWIP_ERROR on invalid/disabled protocol
Fixed bug bug #27345: "ip_frag() does not use the LWIP_NETIF_LOOPBACK
function" by checking for loopback before calling ip_frag
Make tcp_debug_state_str() always available, not only in DEBUG mode
Make ip_current_netif() and ip_current_header() a define referring to
extern variables to be save the function call.
Reverted change for bug #27252 (Address pointer invalid after freeing
pbuf in UDP receive callback) as it made more problems than before :-(
patch #6888: Patch for UDP Netbufs to support dest-addr and dest-port
patch #6930: [PATCH trivial] TCP_RMV remove unnecessary check - removed
two checks for NULL which are not necessary.
Updated comment in low_level_input() about pbuf len vs. tot_len if using
preallocated pbufs (as requested in bug #27576: pbuf_realloc will assert or
crash on a non-chained pbuf list)
Accidentally endabled to compile the code -> back to #if 0
Fixed default values of some stats to only be enabled if used Fixes bug
#27338: sys_stats is defined when NO_SYS = 1
Fixed bug #27504: tcp_enqueue wrongly concatenates segments which are not
consecutive when retransmitting unacked segments
Fixed bug #27704: autoip starts with wrong address:
LWIP_AUTOIP_CREATE_SEED_ADDR() returned address in host byte order instead of
network byte order
Fixed bug #27709: conn->err race condition on netconn_recv() timeout by
directly returning when sys_arch_mbox_fetch times out.
Fixed bug #27329: dupacks by unidirectional data transmit
Fixed bug #27390: Source IP check in ip_input() causes it to drop valid
DHCP packets -> allow 0.0.0.0 as source address when LWIP_DHCP is enabled
Fixed bug #27315: zero window probe and FIN
Corrected typo
Fixed bug #27215: TCP sent() callback gives leadin and trailing 1 byte
len (SYN/FIN)
dhcp_inform(): netif->dhcp pointed to unallocated memory when udp_new()
failed
dhcp_unfold_reply: NULL memory might have been freed after mem_malloc
returned NULL
Removed most calls to udp_connect since they aren't necessary when using
udp_sendto_if() - always stay connected to IP_ADDR_ANY.
Minor code simplification (don't store received pbuf, change conditional
code to assert where applicable), check pbuf length before testing for valid
reply
bug #27315: zero window probe and FIN: only send pure FIN if the enqueued
FIN segment doesn't contain any other data
Changed fix for bug #27215 (TCP sent() callback gives leagin and trailing
1 byte len (SYN/FIN)) by decreasing pcb->acked appropriately
Fixed bug #26251: RST process in TIME_WAIT TCP state
Fixed bug #27783: Silly window avoidance for small window sizes
Another fix for bug #26251: RST process in TIME_WAIT TCP state
Minor: fixed typo
bug-fix in the TCP_EVENT_RECV macro (has to call tcp_recved if pcb->recv
is NULL to keep rcv_wnd correct)
Improved heap usage of lwip_getaddrinfo by only allocating one block of
memory per call.
Tiny code size improvement using goto instead of duplicating code
Minor: Improved memory layout/alignment of struct dhcp for 32-bit
platforms
Added netifapi_netif_set_addr()
Corrected parameter spelling in doc
Fixed wrong filename
Increased default value for TCP_MSS to 536, updated default value for
TCP_WND to 4*TCP_MSS to keep delayed ACK working.
Fixed bug #27994: incorrect define for freeaddrinfo(addrinfo)
Fixed bug #28062: Data received directly after accepting does not wake up
select
Fixed comment: tcp_pcb_remove does *not* deallocate the pcb
tcp_input: move tcp_debug_print_state to prevent accessing pcb when it
might already be deallocated due to calling tcp_abort in tcp_process.
Clarified debug levels by renaming level OFF to ALL (the old define still
exists for now to prevent breaking old code)
Fixed usage of logging levels (bug #27948: Incorrect logging levels used
in various places)
Fixed usage of logging levels (bug #27948: Incorrect logging levels used
in various places)
Fixed logging of timeout-function-pointer (pointer to local stack was
logged instead of actual function pointer), minor coding style fix
move tcp_debug_print_state to prevent accessing pcb when it might already
be deallocated due to recv_flags == TF_RESET or TF_CLOSED
Fixed bug #28049 (Keep Alive timeout frees pcb then uses it, sometimes
causing crash error) by calling tcp_rst() instead of tcp_abort() in
tcp_slowtmr() when retransmit timer expires.
Fixed bug #27955: netconn_close may nether return when
LWIP_TCPIP_CORE_LOCKING enabled
tcp_recv_null: call tcp_recved() if p != NULL to keep the window correct
Fixed bug #27851 (TCP_EVENT_RECV(pcb, NULL,...) results in unreachable
code warning) by calling tcp_recv_null if pcb->recv is null.
tcp_alloc: prevent increasing stats.err for MEMP_TCP_PCB when reusing
time-wait pcb as suggested by Bill 4 months ago
Fixed bug #27905: FIN isn't combined with data on unsent
Fixed filename in last comment
Fixed bug #28099 (API required to disable Nagle algorithm at PCB level):
added tcp_nagele_*() function-like macros
Got the tcp_nagle_*() defines wrong (inverted) :-(
Fixed bug #28098: Nagle can prevent fast retransmit from sending segment
by basing the nagle-decision on TF_INFR also
tcp_rexmit(): no need to call tcp_output, since always called from
tcp_input and thus tcp_output always returns without sending (prevent confusion
by thinking data was sent while in tcp_rexmit!)
Initial check-in of some unit tests
Fixed bug #28064: pbuf_alloc(PBUF_POOL) is not thread-safe by queueing a
call into tcpip_thread to free ooseq-bufs if the pool is empty
Worked on tcp_oos unit tests, nearly all TCP_QUEUE_OOS code is covered now
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
tcp_receive(): removed unnecessary return value, added comment
Minor (null-pointer check for not-on-list-netif)
Fix compilation for PPPOE without PPPOS and VJ_SUPPORT without
PPPOS_SUPPORT
Fixed bug #27904: TCP sends too many ACKs: delay resetting tcp_input_pcb
until after calling the pcb's callbacks
Fixed some typos
Fixed bug #28106: dup ack for fast retransmit could have non-zero length
Moved the function definitions so that other modules can use the ICMP
protocol header definitions when LWIP_ICMP==0
The guy's name is Van Jacobson (not Jabobsen or Jacobsen :-)
PPP: Make MAXNAMELEN/MAXSECRETLEN overridable in lwipopts.h
patch #6969: PPP: missing PAP authentication UNTIMEOUT
Sligthly reordered struct netif's members to better meet alignment
requirements
Fixed checking input packet length (20 bytes is a valid packet and is
used e.g. with MS RAS server)
pppInit: Remove zeroing the stats - no protocol does that
Fixed bug #27079 (Yet another leak in PPP): outpacket_buf can be
statically allocated (like in ucip)
tcp_process: add state info to log message that is used for multiple
states ("TCP connection closed")
Various small improvements from patch #6965 (removed _inet_ntoa, set PPP
netif down before removing, change log message and comment)
Added description about the PPP stack
Added a note why MSCHAP currently doesn't work with lwIP PPP
Updated comments on which sio-functions are used
Added explicit check for number of segments and seqno/len of each segment
on pcb->ooseq
tcp_set_state: fail on unimplemented state
Slightly modified the out-of-sequence-FIN test: receive packets with FIN
& data and with FIN alone
Another fix for bug #28241 (ooseq processing) and adapted corresponding
unit test
Added an additional option LWIP_ETHERNET to support ethernet without ARP
(necessary for pure PPPoE) - no changes in the ppp code yet
Added an additional option LWIP_ETHERNET to support ethernet without ARP
(necessary for pure PPPoE)
Commented 2 variables
Some functions were located outside extern "C" {}
Separated timer implementation from semaphore/mbox implementation, moved
timer implementation to timers.c/.h (TASK#7235)
Remove C++-style comments
Removed unused test function
Remove warning for TCP_LISTEN_BACKLOG==0
Reorganised PPP source code from ucip structure to pppd structure to
easily compare our code against the pppd code (around v2.3.1)
Removed unnecessary tcpip-callbacks: this whole module runs inside the
tcpip-thread. This also makes PPPoE usable with NO_SYS==1
Renamed PPP tasks from "pppMain" to "pppInputThread"
Initial version of PPP for NO_SYS==1, some TODOs are remaining, but it
works...
Fixed bug #28496: missing include guards in netdb.h
Call tcp_timer_needed() with NO_SYS==1, too
Improved assertion message when MEMP_SYS_TIMEOUT pool is empty
Added function names to timer debug output
Copy hostname for DNS_LOCAL_HOSTLIST_IS_DYNAMIC==1 since string passed to
dns_local_addhost() might be volatile
Fixed bug #28519 (lwip_recvfrom bug with len > 65535)
Fixed bug #26672 (close connection when receive window = 0) by correctly
draining recvmbox/acceptmbox
Fixed compilation of VJ_SUPPORT after separating tx and rx
Fixed bug #28195 (PPP: remove duplicate TCP/IP protocol header
definitions - use the lwIP ones) - deleted unused header file
Inlined netif_is_up() and netif_is_link_up() as defines for speed
reasons; fixed type and macro definition.
Fixed bug #28529: macro LWIP_DEBUG_TIMERNAMES in timers.h
Forgot one line & comments
patch #6463 (IGMP - Adding Random Delay): added define LWIP_RAND() for
lwip-wide randomization (to be defined in cc.h)
bug #28127: remove call to tcp_output() from tcp_ack(_now)()
D'Oh!
Added/changed comments
patch #6822 (Add option to place memory pools in separate arrays) - new
config option MEMP_SEPARATE_POOLS
GCC didn't like memp_memory_XXX -> now using memp_memory_XXX_base (as in
Bill's original patch)
Minor coding style changes, added assertion
Fixed bug #28248 (netif_remove doesn't call netif callback) by calling
netif_set_down() from netif_remove()
Fixed bug #28506 (raw_bind should filter received packets)
Fixed comment on struct mem.prev
Fixed bug #28551 (Compiler warning introduced with closed bug #28506)
Fixed bug #13315 (PPP PAP authentication can result in erroneous
callbacks) by copying the code from recent pppd
Added comments
Fixed NO_SYS==0: starting pppInputThread failed; fixed some comments
Minor speedup ip_output_if when writing TTL/proto to ip header
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)
Minor fix: bug #28555: Retransmission timer only stopped if
TCP_QUEUE_OOSEQ==1
Coding style
Again: Fixed bug #26672 (close connection when receive window = 0) by
correctly draining recvmbox/acceptmbox
Another fix for bug #28562: Segfault @ err_tcp
do_connect(): set conn->err to an error if conn->pcb is NULL
Improved includes in snmp
Use protocol definition from tcp.h, not from sockets.h
Using typedefs for function prototypes and -pointers throughout the stack
for clarity
Fixed bug #27856: PPP: Set netif link- and status-callback by adding
ppp_set_netif_statuscallback()/ppp_set_netif_linkcallback()
Changed netconn_recv() and netconn_accept() to return err_t (bugs #27709
and #28087)
Minor: source code layout
Added comment
task #10102: "netconn: clean up conn->err threading issues" by adding
error return value to struct api_msg_msg
task #10102: "netconn: clean up conn->err threading issues" by adding
error return value to struct api_msg_msg
Minor: fixed argument casts for mbox_fetch parameters (to fix compiler
warnings)
Minor: source code layout
Only check for LWIP_RAND() if IGMP is used, for now
Fixed bug #28679: mem_realloc calculates mem_stats wrong and added test
case for it
reorganised PPP sourcecode to 2.3.11 including some bugfix backports from
2.4.x.
Fixed bug #27316 (netconn: Possible deadlock in err_tcp) by using
sys_mbox_trypost in err_tcp
Added missing include
Fixed netconn_err() macro
Removed unused function declaration for netbuf_len (is a macro now)
Fixed bug #28651 (tcp_connect: no callbacks called if tcp_enqueue fails)
both in raw- and netconn-API
Fixed bug #28716: select() returns 0 after waiting for less than 1 ms
bug #26523: Compiler Warnings
Fixed compilation for LWIP_TCPIP_CORE_LOCKING
bug #26523: Compiler Warnings
bug #26523: Compiler Warnings
Renamed the private mib node from 'private' to 'mib_private' to *not* use
reserved C/C++ keywords, added comments, added init-define for private MIB
Renamed the private mib node from 'private' to 'mib_private' to *not* use
reserved C/C++ keywords
bug #28659: Missing casts
Added one more missing cast
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)
Moved missing include
Use memp pools for snmp instead of the heap; added 4 new pools.
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()!
snmp_recv: don't peek the UDP header, p->tot_len does the same; no need
for the extra checks at the beginning; don't use so many if/else but if/return
instead to make the code more readable
Added TCP_SNDQUEUELOWAT corresponding to TCP_SNDLOWAT and added
tcp_sndqueuelen() - this fixes bug #28605
For wrong configurations, let the test fail instead of the compiler
Keep 'const' of varius snmp structs the same throughout 'derived structs'
Added missing casts (bug #28659)
renamed netif pointer in struct igmp from 'interface' to 'netif' to not
use keywords (or at least my editor highlights it as one...); minor layout
change
igmp related: renamed netif pointers from 'interface' to 'netif' to not
use keywords (or at least my editor highlights it as one...)
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.
Added comments
Add non-blocking support for connect (partly from patch #6860) plus many
cleanups in socket & netconn API
Added function-like macro for struct netconn::non_blocking
Replaced tabs with spaces
Added except set support in select (patch #6860)
Moved freeing a socket to its own function (free_socket, like alloc_socket
Use SYS_LIGHTWEIGHT_PROT instead of a semaphore to protect the sockets
array since the protection time is short
Updated comment about recv_bufsize
Don't call the link-callback from netif_set_up/down() since
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.
Don't parse broadcast option, we don't use it anyway (made up from ipaddr
and netmask), layout change of struct dhcp
Prevent mem_malloc in dhcp_inform, fix check for subnet mask (remember if
it was given by server or not) set back request_timeout in dhcp_set_state()
Prevent mem_free (leave struct dhcp allocated on dhcp_stop) to prevent
calling mem_malloc when restarting dhcp later
Let netdb use a memp pool for allocating memory when getaddrinfo() is
called.
Fixed an error in dhcp_free_request() from dhcp_inform()
Fix handling of zero-padding and parse file before sname field (if
overloaded, according to the RFC)
Fixed compiler warnings when MEM_SIZE < 64000
Added an own debug-print option for timers.c (used TCPIP_DEBUG and
SYS_DEBUG as the code was copied from there)
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).
Accidentally changed the member name of struct ip_addr for testing...
Replaced struct ip_addr by typedef ip_addr_t to make changing the actual
implementation behind the typedef easier.
Added missing casts to suppress compiler warnings
Use macros to compare IP addresses
Added missing casts to suppress compiler warnings (this mainly satisfies
MSVC - the double casts are a bit ugly but don't hurt...)
Fixed another compiler warning (missing cast)
Added function-like macros to get/set the hostname on a netif
Correctly initialize netif flags in pppifNetifInit
Fixed compiler warnings
Fixed macro ip_addr_set_loopback(): htonl was missing (fixes bug #28828:
ip_addr.h some macro error)
Fixed bug #28818 (New connection probably not marked writable on
accept()) introduced a week ago while implementing non-blocking connect
Minot: Fixed comments and code style
Minor: removed one space
Minor: source code layout
Added yet another IP-address-modifying define, ip_addr_set_any()
Reduced the time SYS_ARCH_PROTECT is protecting the socket array
Fixed bug #28798 (Error in "Max Response Time" processing) and another
bug when LWIP_RAND() returns zero.
Improved IGMP stats (patch from bug #28798)
added netif_s/get_igmp_mac_filter() macros
Moved most defines from igmp.h to igmp.c for clarity since they are not
used anywhere else; removed some function prototypes from igmp.h, too
Internalize another function; use the supplied max_response_time instead
of dividing it by 2
Added reentrant versions of inet_ntoa/ipaddr_ntoa
inet_ntoa_r/ipaddr_ntoa_r
Fixed a missing cast warning
Minor: Fixed indentation after changing struct ip_addr to ip_addr_t
Fixed copying multiple IP addresses from options (e.g. multiple DNS
servers) - the amount copied was correct, but the value copied was always the
first.
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.
Fixed unit tests after changing struct ip_addr to ip_addr_t
For loopback packets, adjust the stats- and snmp-counters for the
loopback netif.
Fixed compilation for NO_SYS==1
Added function sys_restart_timeouts() from patch #7085 (Restart system
timeout handling)
task #10154 (PPP: Update snmp in/out counters for tx/rx packets)
Merge 3 u8_t for netconn-internal status into one u8_t 'flags' to prevent
waisting memory when adding more flags
Fixed bug #28853 (lwip_recvfrom() returns 0 on receive time-out or any
netconn_recv() error)
Another fix for bug #28853 (recv returns 0 on recv-timeout or any other
error), fixed err_to_errno_table: ERR_TIMEOUT is EWOULDBLOCK, not ETIMEDOUT
Fixed bug #22110 (recv() makes receive window update for data that wasn't
received by application); added function-like macros to correctly access/change
conn->recv_timeout and conn->recv_bufsize
Use sys_arch_sem_wait instead of sys_sem_wait_timeout (same function,
different name)
Removed sys_sem_wait_timeout, added comments to the port-supplied
sys(-arch)-functions
Fixed wrong printf formatter
Removed invalid assert (always true)
Fixed a compiler warning (comparison between signed and unsigned)
Fixed bug #28866 (mem_realloc function defined in mem.h)
Use braces for if blocks
struct netconn.socket is only used with LWIP_SOCKET; added comments
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)
Fixed compilation for NO_SYS==1
Added comment about mem_realloc() vs. realloc()
Fixed bug #28865 (Cannot close socket/netconn in non-blocking connect)
patch #6865 (SO_REUSEADDR for TCP): if tcp_pcb.flags has TF_REUSEADDR
set, allow binding to endpoint in TIME_WAIT
Fixed comment to our flag names
Code layout: splitted long line
patch #6865: use so_options SOF_REUSEADDR instead of flags TF_REUSEADDR
(which has ben removed again)
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
netif_set_link_up/down: only do something if the link state actually
changes
Fixed indentation
Added a minimal version of posix fctl() to have a standardised way to set
O_NONBLOCK for nonblocking sockets.
Fixed compilation for LWIP_SO_RCVBUF==0
Don't use C++ reserved keyword 'class'
Fixed compilation with LWIP_DNS==1 after changing sys layer
Fixed compilation for LWIP_DNS==1 after changing sys layer
Add a new err_t, ERR_WOULDBLOCK in preparation for non-blocking send
task #7865 (implement non-blocking send operation)
Fixed old comments
Added stats for mutexes
Use checksum algorithm 2 as default as it should be faster than 1 on most
(if not all) platforms
Fixed compiler warnings for checksum algorithms 2 and 3
struct ip_hdr: split u16_t _ttl_proto to u8_t _ttl and u8_t _proto to
prevent unnecessary loading and htons
fixed compilation for LWIp_SNMP && PPP_INPROC_MULTITHREADED
Improved some defines working on ip addresses, added faster macro to copy
addresses that cannot be NULL
Use new macro ip_addr_copy where applicable
Minor speedups: use ip_addr_copy, use SMEMCPY, use htonX on constants
instead of variables
Use pointers instead of using SMEMCPY
Revert my last changes and remove structure packing from struct dns_query
and struct dns_answer since they are only used with SMEMCPY
Documented the use of netif flags
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).
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
Disable ETHARP_TRUST_IP_MAC by default since it slows down packet
reception and is not really necessary
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
Link status does not depend on LWIP_NETIF_LINK_CALLBACK (fixes bug #28899)
Added missing casts
Added missing cast; added more debug output
tcp_seg(s)_free: remove return value, noone uses it
Bug #28917: don't increase error counters for icmp echo response
Add matching comment to #endif
Renamed mem_realloc() to mem_trim() to prevent confusion with realloc()
Added UPGRADING doc file that should help to upgrade apps/ports from
older versions of lwIP
Restructured TCP_PCB_COMMON for a smaller size (u16_t at the end)
tcp_alloc: set given prio to the new pcb, not TCP_PRIO_NORMAL; minor:
changed comments and source code layout
Fixed pcb leak when accept-callback is NULL and asserts are disabled
Task #10088: Correctly implement close() vs. shutdown(). Now the
application does not get any more recv callbacks after calling tcp_close().
Added tcp_shutdown().
Use tcp_debug_state_str() instead of tcp_debug_print_state()
Moved stack-internal parts of tcp.h to tcp_impl.h, tcp.h now only
contains the actual application programmer's API
task #10140: Remove DNS_USES_STATIC_BUF (keep the implementation of
DNS_USES_STATIC_BUF==1)
Added const char* name to mem- and memp-stats for easier debugging.
Added define LWIP_TCPIP_CORE_LOCKING_INPUT that lets tcpip_input omit the
thread-change to tcpip_thread and instead lock the core
Corrected comment
Fixed compilation for DNS_LOCAL_HOSTLIST==1 and
DNS_LOCAL_HOSTLIST_IS_DYNAMIC==1 (bug #28968)
Fixed bug #28970 (invalid preprocessor macro introduced with
LWIP_TCPIP_CORE_LOCKING_INPUT)
Added debug output and missing casts
Fixed compilation error after splitting tcp.h/tcp_impl.h
Added/improved comments and debug output; renamed 'pc' to 'pcrx' where
appropriate to reflect the variable type
Added a note about socket recv/accept timeout errno value
PPP: use LWIP_DEBUGF() instead of ppp_trace()
Fixed accessing invalid memory when closing a listening pcb (introduced
with tcp_shutdown)
tcp_connect: send timestamp-option only if (pcb->flags & TF_TIMESTAMP) !=
NULL (same as for passive open)
Added comment after #endif
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.
Correctly set TCP_WRITE_FLAG_MORE when netconn_write is split into
multiple calls to tcp_write.
Fixed bug #29072: Correctly set ciaddr based on message-type and state.
Renamed dhcp_create/delect_request to dhcp_create/delete_msg.
Fixed bug #29087: etharp: don't send packets for LinkLocal-addresses to gw
Correctly identify link-local addresses when sending ARP packets
Don't try to forward link-local addresses
renamed struct lwip_socket to struct lwip_sock to avoid duplicate names
(function lwip_socket)
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.
LWIP_TCPIP_CORE_LOCKING_INPUT needs LWIP_TCPIP_CORE_LOCKING to work
correctly
LWIP_NETIF_TX_SINGLE_PBUF needs TCP_OVERSIZE >= TCP_MSS for TCP
Fixed LWIP_NETIF_TX_SINGLE_PBUF for LWIP_TCPIP_CORE_LOCKING
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.
tcp_accepted(): check pcb state to verify it isn't called on a
connection-pcb
Use braces for if-blocks
Create mem_mutext at the end of mem_init. This enables sys_mutex_new to
use the heap if required.
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.
Only add hostname if it's not empty (strlen > 0)
Added/corrected casts
bug #29105: Review printf formatters: added X8_F to cc.h and use it in
etharp.c
bug #29105: Review printf formatters
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.
ip_input: better check for old link-local-address (explicitly check for
autoip->llipaddr instead of letting all link-local-addresses through)
Added comment, use braces for single-line if-blocks
ip_output: assert for p->ref == 1 to catch TCP retransmissions where the
netif hasn't freed the pbuf yet
Renamed tcp_output_set_header to tcp_output_alloc_header and included
more code common to all callers
Use a union to let struct sockaddr have the same alignment requirements
as struct sockaddr_in
Temporary upgrade helper: define format string for u8_t as hex if not
defined in cc.h
Fixed some issues in the TCP_OVERSIZE code:
Corrected comment
Reverted the change in struct sockaddr since it wasn't compatible to the
standard (bug #29210)
Some fixes to the TCP_OVERSIZE code:
Fix calculation of tcp_mss(): when timestamps are on, this is pcb->mss -
12 or else NOCOPY-apps might generate unperformant PBUF_REF chains
Fixed sending one byte of data in tcp_zero_window_probe (which I
accidentally broke with v1.103)
Bug #29210: check alignment of struct sockaddr vs. struct sockaddr_in
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.
Prepared for checksum-on-copy (task #6849):
task #6849: Calculate checksum when creating TCP segments, not when
(re-)transmitting them.
Corrected comment
Fixed compiler warning when LWIP_SNMP==0
Fixed alignment warnings when we know alignment is correct (by using
LWIP_MEM_ALIGN)
Fixed compiler warnings when casting where we know the source is aligned
(by casting to void-pointer first)
Added missing casts, use strlen + MEMCPY instead of strcpy (as that might
overrun the buffer)
Fixed bug #29256: SNMP Trap address was not correctly set
Corrected spelling of milliseconds (my dictionary tells me to use two l's
:)
Added support for static ARP table entries (added option
ETHARP_SUPPORT_STATIC_ENTRIES) (+ added test); refactored the etharp code a bit
Added an option to disable tcpip_(un)timeout code since the linker cannot
do this automatically to save space.
Disable MEMP_TCPIP_MSG_INPKT pool for LWIP_TCPIP_CORE_LOCKING_INPUT==1
tcp_write: moved initial checks to an own static function for clarity
Corrected spelling of ERR_WOULDBLOCK (D was missing)
Updated netconn_write doc/comment about api_flags
Fixed compilation for MEM_USE_POOLS under MSVC (where ++ doesn't work for
enums)
tcp_listen() did not copy the pcb's prio
Removed duplicate TCP_REG/TCP_RMV macros, fixed debug macro implementation
task #10088: Fixed a bug in RST-on-close-when-not-all-data-acked
implementation (plus removed some unnecessary casts)
minor: fixed coding style
Removed function prototype that had no corresponding implementation
(pbuf_ref_chain)
Fixed bug #29080: Correctly handle remote side overrunning our rcv_wnd in
ooseq case.
Fixed bug #29332: lwip_select() processes readset incorrectly
Fix compilation if ETHARP_SUPPORT_STATIC_ENTRIES==0
sys_thread_new: name is a const pointer
fixed bug #29346 (removed comma after last enum member)
Correctly cast pointers when assigning from void*
Make functions static where applicable, add default cases to switches
where applicable, prevent old-style function prototypes (without arguments)
Added printf format modifier for mem_size_t depending on heap size
Fixed compiling with different options disabled (TCP/UDP), triggered by
bug #29345; don't allocate acceptmbox if LWIP_TCP is disabled
Make LWIP_NETIF_TX_SINGLE_PBUF work for TCP, too
patch #7130: remove meaningless const qualifiers
Speedup TX by moving code from find_entry to etharp_output/etharp_query
to prevent unnecessary function calls (inspired by patch #7135).
Removed checking ARP_TABLE_SIZE, this is done by the etharp module itself
create a new (contiguous) PBUF_RAM for every outgoing fragment if
LWIP_NETIF_TX_SINGLE_PBUF==1
patch #7143: Add a few missing const qualifiers
Check IP_FRAG && IP_FRAG_USES_STATIC_BUF && LWIP_NETIF_TX_SINGLE_PBUF
Fixed compilation (removed extra tokens after #endif)
Fixed compilation of debug log code (that is currently commented out)
Fixed compilation errors
MEMP_OVERFLOW_CHECK: dump the element's pool's index and name when an
overflow/underflow is detected
Added an overridable define to get informed when the tcpip_thread
processes messages or timeouts to implement a watchdog.
tabs -> spaces
patch #7145: Various typos in SNMP files
Check that tcp_abort/tcp_abandon isn't called for listen-pcbs
Fixed bug #29617 (sometime cause stall on delete listening connection)
Inline generating IP checksum to save a function call
Create overridable macros for copying 2-byte-aligned IP addresses and MAC
addresses
fixed a type
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
struct netbuf: reorder members to save some space
use checksum-on-copy for sending UDP data for LWIP_NETIF_TX_SINGLE_PBUF==1
Fixed bug #29763 (CHECKSUM_GEN_IP_INLINE), added macro LWIP_MAKE_U16()
that's improved for endianess
Fixed bug #29769 (sys_check_timeouts: sys_now() may overflow)
Fixed bug #29271 (Application can't re-use pbufs) by updating the doc to
not allow reusing pbufs after passing them to a send function
task #7506: added NAT support
Free NAT entries on remove (fixes a memory leak)
.. and deleted NAT again as Christian obviously didn't have the copyright
on the code he sent us... THANKS!!!
Minor: source code layout
Added option LWIP_ARP_FILTER_NETIF to use multiple IPs on one hardware
interface (by using multiple netifs, each with its own IP)
Fixed bug #29855: PPP: Backport a bugfix in LcpSendEchoRequest from pppd
auth_withpeer_fail(): call lcp_close(), like pppd 2.4.5 does
Fix printf-formatter for sio_fd_t/size_t
CHECKSUM_GEN_IP_INLINE: Use defines to access the u32_t part of an IP
address
Remove uused SOF_* flags, define inherited flags in ip.h, not in tcp_in.c
task #6995: Implement SO_REUSEADDR (correctly)
SO_REUSEADDR / SO_REUSE is implemented and safe to use
Added new option SO_REUSE_RXTOALL to pass received UDP
broadcast/multicast packets to more than one pcb
SO_REUSE: tcp_listen/tcp_connect: make sure that the 5-tuple is unique
SO_REUSE: tcp_input: correctly handle multiple pcbs listening on the same
port (but different address): first search for a specific address an only pass
to ANY if no specific address has been found listening
udp_input: use SO_REUSE && SO_REUSE_RXTOALL to copy incoming
(broad-/multicast) data to additional pcbs
Removed unused SOF_* flags, ip_pcb.so_options can now be an u8_t instead
of an u16_t (saves 3 bytes per pcb on a 32-bit platform)
udp_input/SO_REUSE_RXTOALL: only call pbuf_header if there is a 2nd pcb
to pass the data to
Fix compilation for LWIP_EVENT_API==1 (unused args)
Let FIN come through although TF_RXCLOSED is set, send RST when data is
received although TF_RXCLOSED is set, added TCP_EVENT_CLOSED for clearer code
Free recv_data when TF_RXCLOSED is set
DNS_LOCAL_HOSTLIST_IS_DYNAMIC uses its own MEMP pool instead of the heap
DNS_LOCAL_HOSTLIST_IS_DYNAMIC uses its own MEMP pool instead of the heap
Removed 2 mem_mallocs: error string can be a global variable, include
memory for sc_ac_cookie in struct pppoe_softc; commented out unused code
(sc_service_name/sc_concentrator_name)
Use a simple linked list (next pointer) instead of sys/queue.h (from BSD)
PPPoE now uses its own MEMP pool instead of the heap (moved struct
pppoe_softc from ppp_oe.c to ppp_oe.h)
No need to call pppoe_init any more (since the linked list is implicitly
initialized to zero by the loader)
changed the semantics of LWIP_PREFIX_BYTEORDER_FUNCS to prevent "symbol
already defined" i.e. when linking to winsock
Added PP_HTONx/PP_NTOHx macros that can be calculated by the preprocessor
(used for constants only)
Add preprocessor-macros for compile-time htonl calculation (and use them
throughout the stack where applicable)
struct etharp_hdr: split _hwlen_protolen into two u8_t's to prevent using
htons on little-endian platforms
Added LWIP_DEBUGF warning if dns_send returns an error
Correctly NULL-terminate h_addr_list
Minor: added some spaces for indentation
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.
Fixed a possible NULL-pointer deref before checking it
Fixed bug #30038: dhcp_network_changed doesn't reset AUTOIP coop state
bug #29976: forgot some places using the changed IP address (copy vs.
pointer)
Fixed bug #29979 (lwip_sendto did not check parameter "to" != NULL)
Fixed invalid fix for bug #30038
ip_addr_set_any does not work on pointers...
bug #30129: struct _ip_addr should be struct ip_addr
Use ip_addr_set_zero instead of memset(0)
Fixed bug #30039: AutoIP does not reuse previous addresses
Fixed bug #29970: DHCP endian issue parsing option responses
... and forgot one tiny character...
Removed leading underscore from struct name, added a comment
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)
fixed typos that MSVS did not complain about
Fixed bug #30159: WomnIP_ACCEPT_LINK_LAYER_ADDRESSING
nicer code for the last fix
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.
Fixed bug #10088: Correctly implemented shutdown at socket level.
From patch #7221: added flag NO_SYS_NO_TIMERS to drop timer support for
NO_SYS==1 for easier upgrading
Fixed compilation error due to unexpected include order
Re-enabled timer logging if LWIP_DEBUG_TIMERNAMES!=0 (without function
pointers, only function names), changed parameter names from 'h' to 'handler'
fixed bug #30300 (shutdown parameter was not initialized in
netconn_delete)
Added some helper functions to find strings in chained pbufs
Added ip_addr_netmask_valid() to check if a netmask is valid (starting
with ones, then only zeros)
Updated to current CHANGELOG
Fixed bug #30402: CHECKSUM_GEN_IP_INLINE does not add IP options
task #10495: Added support for IP_MULTICAST_LOOP at socket- and raw-API
level.
added missing casts
patch #7239: make tcp_state_str pointers constant
IP_MULTICAST_LOOP shall be disabled by default
fixed the change not about tcp_close chang (bug #30444)
Fixed invalid fix for bug #30402 (CHECKSUM_GEN_IP_INLINE does not add IP
options)
Fixed bug #30447: tcp.c:tcp_bind() - suspicious nested #if
Fixed bug #30565 (tcp_connect() check bound list): that check did no harm
but never did anything
Fixed compilation with TCP or UDP disabled.
Applied patch #7264 (PPP protocols are rejected incorrectly on big endian
architectures)
Don't chain empty pbufs when sending them (fixes bug #30625)
Fixed bug #30728: tcp_new_port() did not check listen pcbs
Once again fixed #30038: DHCP/AutoIP cooperation failed when replugging
the network cable after an AutoIP address was assigned.
Fixed bug #31385: sizeof(struct sockaddr) is 30 but should be 16
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.
Fix alignment checking of tcphdr: check for MEM_ALIGNMENT, not for 4
Fixed bug #31535: TCP_SND_QUEUELEN must be at least 2 or else no-copy TCP
writes will never succeed.
Fixed bug #31304: Changed SHUT_RD, SHUT_WR and SHUT_RDWR to resemble
other stacks.
Fixed bug #31170: lwip_setsockopt() does not set socket number
tcp_slowtmr(): change the scope of 'pcb2' to reflect its block-only usage.
Added a function to deallocate the struct dhcp from a netif (fixes bug
#31525).
patch #7329: tcp_timer_needed prototype was ifdef'ed out for
LWIP_TIMERS==0
patch #7328: Autoip: ETHADDR16_COPY can be used
Fixed bug #31722: IP packets sent with an AutoIP source addr must be sent
link-local
Fixed bug #31590: getsockopt(... SO_ERROR ...) gives EINPROGRESS after a
successful nonblocking connection.
Fixed ERR_IS_FATAL so that ERR_WOULDBLOCK is not fatal.
Added note about changed ARP_QUEUEING==0
Mreged back changes that were lost during the savannah hack 3 weeks ago
(using the sources from http://git.infradead.org/users/dwmw2/lwip.git)
Fixed bug #31741: lwip_select seems to have threading problems
Added missing "extern "C" {"
Adde missing extern "C"
Fixed constant not being 32 bit.
Indentation changed
Added missing U/UL modifiers to fix 16-bit-arch portability.
Fixed bug #32561 tcp_poll argument definition out-of-order in
documentation
tcp_bind: return ERR_VAL instead of ERR_ISCONN when trying to bind with
state!=CLOSED; fixed a typo
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).
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
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.
Fixed bug #32648 (PPP code crashes when terminating a link) by only
calling sio_read_abort() if the file descriptor is valid.
Removed 'dataptr' from 'struct tcp_seg' and calculate it in
tcp_zero_window_probe (the only place where it was used).
Fixed bug #32820 (Outgoing TCP connections created before route is
present never times out) by starting retransmission timer before checking route.
Move tcp_pcb_lists to const section.
Fixed bug #32906: lwip_connect+lwip_send did not work for udp and raw
pcbs with LWIP_TCPIP_CORE_LOCKING==1.
Fixed bug #32280 (ppp: a pbuf is freed twice)
Fixed bug #32926 (TCP_RMV(&tcp_bound_pcbs) is called on unbound tcp pcbs)
by checking if the pcb was bound (local_port != 0).
ethernet_input: check for minimum packet length to prevent assertions
from firing.
Fixed broken VLAN support.
Fixed etharp unit test after changing struct etharp_hdr
Fixed tcp unit tests after introducing ip_addr_p_t and letting tcp_input
check for broadcasts by using current_iphdr_dest.
Fixed bug #33048 (Bad range for IP source port numbers) by using ports in
the IANA private/dynamic range (49152 through 65535).
sys_arch_timeouts() is not needed any more.
Fixed printf-format error (bug #33079)
Fixed overflow in tcp_new_port() after changing port range to IANA
"Dynamic and/or Private Ports" range
Used upper case 'L' instead of lower case 'l' for long constant for
better readability
patch #7449 allow tcpip callback from interrupt with static memory message
Added a test for fast-rexmit
replaced tab with spaces
... and finally, we got a first working version of a dual-stack lwIP
runnin IPv4 and IPv6 in parallel - big thanks to Ivan Delamer! (this is work in
progress, so please beware, test a lot and report problems!)
Added new files for IPv6
Removed files of old IPv6 implementation
Removed autoip_init() since it does nothing; minor coding style changes
Combined IPv4 and IPv6 code where possible, added defines to access
IPv4/IPv6 in non-IP code so that the code is more readable.
Use conversion defines instead of casting IP addresses
Fixed pointless conversion when checking TCP port range (bug #33398)
Fixed bug #33337 (which is #32906 reappearing after adding IPv6 support)
Fixed two compilation errors with different opt.h settings
Added ipX versions for routing
use PCB_IS_IPV6(pcb) instead of pcb->isipv6 everywhere
use PCB_IS_IPV6(pcb) instead of pcb->isipv6 everywhere; fixed compilation
with LWIP_IPV6==1 but LWIP_IGMP==0
Fixed ip_2_ipX() and ip6_2_ipX() macros #if
!LWIP_ALLOW_STATIC_FN_IN_HEADER
Fixed ipX_netif_get_local_ipX for LWIP_IPV6==0
- fixed bug #33485 (forgot '!' before SOCK_ADDR_MATCH*);
Fixed compilation with LWIP_IPV6==0
Fixed bug #33492 (fixed stats for IPv6 protocols)
Restructured the code a bit to help my dump compiler not creating a jump
table in ROM
Moved common call to pbuf_header outside the switch()
Moved static variable from inside the function to global scope
Removed unused static function
use const char for name pointers in display functions
- sockaddr_aligned: use a union instead of a manually aligned struct;
Fix compilation error when checking for hidden variable names ('s8_t i'
was hidden in some case statements in nd6_input()).
Fixed compilation error after converting sockaddr_aligned from struct to
union
- changed "struct ip_addr" to "ip_addr_t";
Provide a default for SNMP_GET_SYSUPTIME() based on sys_now()
Cleaned up usage of sys.h a bit
Added some more asserts to check that pcb->state != LISTEN
Fixed bug #33544 (warning in mem.c in lwip 1.4.0 with NO_SYS=1)
fixed bug #33545: With MEM_USE_POOLS==1, mem_malloc can return an
unaligned pointer.
fixed bug #31723 (tcp_kill_prio() kills pcbs with the same prio) by
updating its documentation only.
Init checks: LWIP_RAND is needed for IPv6, too
Slightly reorderd fields of struct tcp_pcb to plug holes introduced by
member alignment (to reduce RAM usage)
Fixed bug #33653 (ip_data.current_ip_header_tot_len calculation errors!)
introduced while mergin IPv4 and IPv6
Fixed bug #33672 (checksum calculate error!!!) by folding 'acc' to u16_t
before calling checksum_pseudo_*_base functions
No need to pass 'acc' as u16_t since the _base functions are internal (we
save one AND op when passing as u32_t)
Fixed documentation after changing sys arch prototypes for 1.4.0
Fixed invalid SOCK_ADDR_TYPE_MATCH check in lwip_sendto()
Fixed bug #33561 bugs in recvfrom() and sendto()
Include opt.h so that LWIP_ERROR works correctly
Fixed wrong endianess of port in bind() and connect() broken with the
last commit
Fixed bogus IPH_V/HL and IPH_VHL_SET endianess dependency
fixed bug #34337 (possible NULL pointer in sys_check_timeouts)
bug #34406 dhcp_option_hostname() can overflow the pbuf
fixed bug #34580 fcntl() is missing in LWIP_COMPAT_SOCKETS
fixed bug #34581 missing parentheses in udplite sockets code
Fix default value of TCP_SNDLOWAT for small values of TCP_SND_BUF (broken
with my 2nd-last commit)
removed the need to disable ARP_QUEUEING when LWIP_ARP is disabled an
TCP_QUEUE_OOSEQ when LWIP_TCP is disabled
added missing valid/set_invalid defines for NO_SYS
SLIP netif: add support for multiple input strategies (threaded, polling,
RX from ISR)
fixed bug #34429: possible memory corruption with
LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT set to 1
Slipif: fixed IPv6 support
- moved processing of refused_data to an own function (used from
tcp_fasttmr and tcp_input);
fixed bug #34638: Dead code in tcp_receive - pcb->dupacks
SEQ-comparing defines: cast parameters to u32_t for clarity
Fixed bug #34733 Null pointer exception with SOCKET_DEBUG.
Fix icmp6_send_response: cannot assign (packed) ip6_addr_p_t* to
ip6_addr_t* -> need to copy the packed address to an aligned address first
fixed bug #34684: Clear the arp table cache when netif is brought down
fix compilation of ip_canforward on 8-/16-bit platforms (where constants
are 16-bit and thus cannot be left-shifted by 24)
fixed bug #34884: sys_msleep() body needs to be surrounded with '#ifndef
sys_msleep'
Merge branch 'master' of git.sv.gnu.org:/srv/git/lwip
fix for bug #34684 was wrong (netif for arp table entries was only
set/reset with SNMP enabled)
fixed bug #31177: tcp timers can corrupt tcp_active_pcbs in some cases
Another fix for bug #32417 (debug assert that fires)
Fixed typo in define check: LWIP_IPv6_FRAG -> LWIP_IPV6_FRAG
implemented API functions to access so_options of IP pcbs (UDP, TCP, RAW)
(fixes bug #35061)
Merge branch 'master' of git.sv.gnu.org:/srv/git/lwip
Added option CHECKSUM_GEN_ICMP
fixed bug #35291: NULL pointer in pbuf_copy
pbuf_copy(): moved the check for "p_to != NULL" to a better place.
- fixed bug #35151: DHCP asserts on incoming option lengths;
Fixed my last chagne to pbuf_copy
fixed bug #34636: FIN_WAIT_2 - Incorrect shutdown of TCP pcb: don't let
PCBs time out from FIN_WAIT_2 if the RX side wasn't close (by either calling
tcp_close or tcp_shutdown(RDWR))
fixed bug #35305: pcb may be freed too early on shutdown(WR)
fixed bug #35435: No pcb state check before adding it to time-wait queue
while closing
tcp pcb: persist_cnt can be u8_t instead of u32_t (since it is compared
against u8_t only)
partly fixed bug #25882: TCP hangs on MSS > pcb->snd_wnd (by not creating
segments bigger than half the window)
Fixed unused local variable warning (patch #7711)
Multiple compilation fixes:
Correctly calculate the default value of MEMP_NUM_SYS_TIMEOUT as needed
Fixed unused variable warning
Removed unused variable in ip_debug_print()
fixed bug #35537: MEMP_NUM_* sanity checks should be disabled with
MEMP_MEM_MALLOC==1
Patch by Stéphane Lesage:
fixed bug #35531: Impossible to send multicast without a gateway
(introduced when fixing bug# 33551)
fixed pbuf leak when PPP session is aborted through pppSigHUP() (bug
#35541: PPP Memory Leak)
Added lwipopts.h file for unit tests
Fixed unit tests: adapted lwipopts.h and fixed
test_tcp_new_counters_pcb() after adding snd_wnd_max to struct tcp_pcb.
Minor: cosmetic source code layout changes
unit tests lwipopts.h: NO_SYS==1, disable netconn and sockets (not tests)
-> lwipopts.h is now usable for unix unit test makefile, too
fixed bug #35595: Impossible to send broadcast without a gateway
(introduced when fixing bug# 33551)
Speed up LWIP_TCPIP_CORE_LOCKING by directly calling functions in
api_msg.c instead of calling via function pointer.
Fixed unused variable warnings produced with the last commit
IGMP stats: added missing tab (by Gisle Vanem)
patch by Bostjan Meglic: fixed bug #35809: PPP GetMask(): Compiler
warning on big endian, possible bug on little endian system
Removed unnecessary global variable "subnetMask", which is only used in
one function (GetMask)
Merge branch 'master' of git.sv.gnu.org:/srv/git/lwip
patch by Mason: fixed bug #35907: lwip_gethostbyname_r returns an invalid
h_addr_list
fixed bug #35927: missing refragmentaion in ip_forward
fixed bug #35931: Name space pollution in api_msg.c and netifapi.c
Fixed bug #35817: do_connect() invalidly signals op_completed for UDP/RAW
with LWIP_TCPIP_CORE_LOCKING==1
added posix-compatibility include files posix/netdb.h and
posix/sys/socket.h which are a simple wrapper to the correct lwIP include files.
Better fix for bug #35927 (missing refragmentaion in ip_forward) when
IP_FRAG is disabled.
TCP unit tests: fix that ip.rterr stats are increased (some unit tests
had no netif set)
new dhcp unit test: fix compilation for strict C, made local functions
static, made some variables and parameters const
dhcp unit test: fixed 2 consts, use udp checksum 0x0000 in handcrafted
packets so that CHECKSUM_CHECK_UDP==0 is not necessary
tcp_abort/tcp_abandon: don't send RST if pcb->state is CLOSED
udp_input: fixed unreachable code warning for CHECKSUM_CHECK_UDP==0
fixed bug #35945: SYN packet should provide the recv MSS not the send MSS
fixed bug #35756 header length calculation problem in ppp/vj.c - removed
unused/invalid defines TCPH_OFFSET(_SET).
fixed the fix for bug #35945 (SYN packet should provide the recv MSS not
the send MSS) if TCP_CALCULATE_EFF_SEND_MSS==0
fixed bug #36388 (PPP: checksum-only in last pbuf leads to pbuf with zero
length)
Added unit test that pbuf_copy returns a correct error code for pbuf
queues ending with a zero-length pbuf.
dhcp: check array bounds before accessing it (bug #36170)
patch by Sylvain Rochet: fixed bug #36283 (PPP struct used on header size
computation and not packed)
Added missing name (patch by)
Added a readme.txt about the PPP code.
fixed bug: #36380 unsent_oversize mismatch in 1.4.1RC1 (this was a
debug-check issue only)
Merge branch 'master' of git.sv.gnu.org:/srv/git/lwip
fixed bug #36412: memp.c does not compile when MEMP_OVERFLOW_CHECK > zero
and MEMP_SEPARATE_POOLS == 1
Sanity-check the size of netif->hwaddr
Merge branch 'master' of git.sv.gnu.org:/srv/git/lwip
fixed bug #37052: "netconn_alloc: undefined netconn_type" assertion
skipped
Fixed bug #36899 DNS TTL 0 is cached for a long time
fixed bug #36840 snmp_send_trap() NULL de-reference if traps configured
but no interfaces available
fixed bug #36645: Calling dhcp_release before dhcp_start dereferences NULL
fixed bug #37166: memp_sanity check loops itself
Added brackets, completed CHANGELOG
Added brackets, completed CHANGELOG
fixed bug #37405 'err_tcp()' uses already freed 'netconn' object
Improved/fixed comments about timeout.
Added LWIP_HOOK_ETHARP_GET_GW to implement IPv4 routing with multiple
gateways
Multiple fixes found by coverity scan
snmp: added missing default cases (only used for trace output)
SNMP: fix "uninitialized variable" warning
fixed last commit (copy & paste from patch broke the code)
bug #35874 reserved identifier violation, 2nd part
tiny formatting correction
bug #42998: made NETIF_MAX_HWADDR_LEN overridable for some special
networks
Fix warning for compilers propagating ~'ed u8_t to int...
Moved IPv4/IPv6 headers to common include folder, now that their names
are unique -> no need to add 3 directories to the include path when compiling
lwIP
added optional macros PACK_STRUCT_FLD_8() and PACK_STRUCT_FLD_S() to
prevent gcc 4 from warning about struct members that do not need packing
update CHANGELOG and fix coding style (fixed bug #39355 SNMP Memory Leak
in case of error)
fixed bug #43389 dns_recv() res_idx calculate error
fixed bug #38219 Assert on TCP netconn_write with sndtimeout set
Merge branch 'master' of git.sv.gnu.org:/srv/git/lwip
SNMP: added missing casts to int for printf arguments
lwip_socket_init() is not needed any more -> compatibility define
CHANGELOG: fixed date
Fixed multiple smaller compiler warnings
mem.h: fixed constants to be unsinged to fix compiler warning
task #11472 Support PBUF_REF for RX (IPv6 and IPv4/v6 reassembly might
not work yet)
fixed bug #43778: IPv6 header version not set on 16-bit platform (macro
IP6H_VTCFL_SET())
sockets.c: fixed using unsigned constant 'FIONBIO' in switch on (signed)
long
stats: place 'err' in stats_mem more at the front to better see it in
debugger overview window
mem: added an MEMP_OVERFLOW_CHECK implementation for MEM_USE_POOLS; added
another unit test
Merge branch 'master' of git.sv.gnu.org:/srv/git/lwip
fixed bug #43840 Checksum error for TCP_CHECKSUM_ON_COPY==1 for no-copy
data with odd length
TCP_OVERSIZE: make segment size allocated by TCP_OVERSIZE overridable for
tests
sockets.c: fixed assert check after changing type of sock->select_waiting
to unsigned
prevent dhcp from starting when netif link is down (only when
LWIP_DHCP_CHECK_LINK_UP==1, which is disabled by default for compatibility
reasons)
etharp: fixed casting 'ctime' from u16_t to u8_t in local variables
(introduced when fixing bug #34682)
fixed bug #20506 "Initial congestion window is very small" again by
implementing the calculation formula from RFC3390
Merge branch 'master' of git.sv.gnu.org:/srv/git/lwip
Allow to overrid the check for p->ref==1 in TX packets (there *are* netif
drivers that can handle this)
tcp_kill_prio(): prefer nearly-closed connections (waiting for the last
ACK only) over established connections when out of tcp pcbs
fixed that lwip_netconn_do_delconn() did not set msg->err on success
(just introduced that bug this weekend...)
memp: also export memp_sizes[] if MEMP_USE_CUSTOM_POOLS==1
fixed bug #37614 "Errors from ipX_output are not processed". Now
tcp_output(_segment) checks for the return value of ipX_output and does not try
to send more on error. A netif driver can call tcp_txnow() (from tcpip_thread!)
to try to send again if TX buffers are available again.
api_msg_c: fixed compiler warning (added brackets in if statement)
fixed compiler warning in dhcp.c
Fixed dhcp unit tests after changing netif up/down handling
Fixed compiler warnings in unit tests
Enable LWIP_PPP_API by default if (PPP_SUPPORT && (NO_SYS == 0))
pppos_input_tcpip: fix pbuf leak if tcpip_input returns error, use
pbuf_take instead of duplicate copy code
Fixed tcp unit tests after changing routing to check for link up
fixed bug #44649 lwip_socket_drop_registered_memberships
dhcp: start discovery with short timeouts on network change, even if
already discovering
fixed bug #44766 (LWIP_WND_SCALE: tcphdr->wnd was not scaled in two
places)
Fixed constant initializer problem in ip_addr_t by having ip6 first
fixed compiler warning (signed/unsigned comparison) introduced when
fixing bug #44766
Added IP_ADDR4()/IP_ADDR6() initializer macros that initialize ip_addr_t
like their counterparts IP4_ADDR()/IP6_ADDR()
fixed unit tests after changing ip_addr_t
Added version-independent ip_addr_islinklocal()
dhcp: move declaration of "extern void dhcp_set_ntp_servers()" from
dhcp.c to dhcp.h to make the function prototype known to implementers
fixed compiling netdb.c after LWIP_IPV4 changes
Many const fixes throughout the stack (although these are not all, yet)
revert accidentally committed snmp header files
fixed compiling icmp.c (variable has to be declared at the beginning of a
scope)
Added some macros with extension "_val" that work on actual instances and
leave away the "if != NULL" check to get rid of gcc "-Waddress" warnings in the
core code at least (I might not have caught all of them, yet)
fixed typo in sockets.h
igmp.c: fixed -Waddress, removed dead code
fixed missing casts found with msvc /Wall
sockets.c: added missing casts after changing storage type of 'err'
member in sockets
fixed some more missing casts...
fixed more (tiny) warnings...
Fixed const'ness in snmp (design of sys contact/name/location and
snmpenableauthentraps is broken!)
fixed const'ness of syscontact/sysname/syslocation
added more missing casts
ppp_free: fixed type of local 'err'
fixed broken ip6_addr_debug_print_parts() (broken yesterday)
changed IP_IS_V6_VAL() to take an instance, not a pointer (to get the
_val() functions the same)
fixed pppol2tp (IP_IS_V6_L -> IP_IS_V6_VAL)
some more compiler warning fixes
added missing braces around macro parameters
sockets: IPPROTO_RAW/IPV6_CHECKSUM must be disabled for LWIP_RAW==0;
fixed ip_addr_islinklocal macro definition
more "const" fixes
fixed "missing braces around initializer" for IN6ADDR_*_INIT macros
changed dhcp state name defines to include "STATE_" to prevent confusion
with message types (e.g. INFORMING vs. INFORM)
fixed bugs #45140 and #45141 (dhcp was not stopped correctly after fixing
bug #38204)
Fixed bug #45161 tcp.c / tcp_abandon / pcb->local_port set to zero but
needed later for tcp_rst (introduced some months ago when fixing bug #42299)
fixed bug #45135 getsockopt SO_SNDTIMEO, SO_RCVTIMEO broken
Fixed bug #45098 ip_addr_t type field not populated for socket address
copies (patch by James Smith)
Reverted fix for bug #38203 since it might be wrong
init.c: fixed window scaling range check
Removed accidentally committed // comment
Fixed warnings about NULL check not required (ip_addr_isany) and implicit
conversion (~)
Fixed ~ warnings in a different way
added lwip_socket_thread_init/cleanup to use
LWIP_NETCONN_SEM_PER_THREAD/LWIP_NETCONN_FULLDUPLEX without including anything
but sockets.h
... and one more change to those nasty ~ operator warnings :-(
netif_find(): name parameter can be const
we are moving towards 1.5.0 -> set LWIP_VERSION accordingly
Fixed that netconn_thread_cleanup() did not call
LWIP_NETCONN_THREAD_SEM_FREE() (!= vs ==)
fix that LWIP_MULTICAST_TX_OPTIONS must be used in ip4_route instead of
LWIP_IGMP
accidentally committed debug comment //
another fix for LWIP_MULTICAST_TX_OPTIONS: without LWIP_IGMP,
udp_pcb->mcast_ttl was not initialized
LWIP_NETCONN_SEM_PER_THREAD: ensure sys_sem_valid() is only called for
non-NULL pointers (not all ports might check this)
fixed bug #45004: dns response without answer might be discarded
dns.c: fixed compiler warning
Add doxygen config + main-file used by Frédéric to create
http://www.nongnu.org/lwip/ for 1.3.0 (see
https://lists.gnu.org/archive/html/lwip-users/2013-01/msg00062.html) - just so
that it doesn't get lost
fixed bug #43790: Sending octet string of Length >255 from SNMP agent
(patch by Manoj Kumar)
fixed passing u16_t 'snmp_varbind->value_len' to functions taking an u8_t
only
Fixed compiler warning when window scaling is enabled (tcp_sndbuf()
should still return u16_t since that value can directly be passed to
tcp_write())
SNMP: tiny preparation for SNMP to support more versions than just v1:
store request version in struct snmp_msg_pstat so that the response can be sent
with the same version (v2c might already work but getbulk is missing)
Clarify comment for MEMP_NUM_SNMP_VARBIND/MEMP_NUM_SNMP_VALUE
fix bug #45120 in a cleaner way
nd6: adapt to constness of IP6_ADDR_ANY6 for IPv6-only configuration
LWIP_IGMP and LWIP_MULTICAST_TX_OPTIONS need LWIP_IPV4
netdb: fix debug output when IPv6 is enabled
fix compiler warnings when passing u16_t to pbuf_header()
fixed bug #45029 (Several macros use ip6_2_ip() without supplying a
storage address): removed netconn_*_ip6() macros
fixed bug #45559: Window scaling casts u32_t to u16_t without checks
fixed bug #45818: API functions should check if type of ip_addr_t
parameter matches the pcb type
Fixed UDP multicast receive filtering (multicast should only be received
when bound to ANY or the destination multicast address)
TCP window scaling: don't parse window scaling option on retransmission
ethernet_input: pass IPv4 packets to ip4_input, not to ip_input
PBUF_REF with "custom" pbufs is now supported for RX pbufs (see pcapif in
contrib for an example, LWIP_SUPPORT_CUSTOM_PBUF is required)
fixed pointer type of value passed for snmpenableauthentraps (broken in
2010)
task #12243: DNS/IPv6: added support for AAAA records
worked on task #12243 (Add support for AAAA/IPv6 records to DNS)
Separate mib2 counter/table callbacks from snmp agent. This both cleans
up the code and should allow integration of a 3rd party agent/mib2.
fixed comment, fixed unused parameter in mppe_compress()
fixed compiler warning (stray 'a ' in code) - why is this a warning
only???
update CHANGELOG
fixed missing comment after #endif
minor compiler warning fixes and coding style
Revert "make netif_ip4_addr/netmask/gw macros return constant IP address
pointers"
igmp: use netif_ip4_addr() instead of directly accessing struct netif
member
fixed compiling LWIP_HAVE_LOOPIF after changing struct netif.ip6_addr to
ip_addr_t
Fixed const errors after changing netif_ip4_addr/netif_ip6_addr to return
cont pointers
Fixed const warning in lwip_writev
Simplify ip_2_ip6/4(_c) macros (and removed
LWIP_ALLOW_STATIC_FN_IN_HEADER) -> now the *_c versions should not be required
any more
udp: don't use ip4_2_ip() where not required
eliminate temporary storage when using netif addresses for ip_addr_t* now
that they have the correct type (ATTENTION: ip6_select_source_address() and
ip4_netif_get_local_ip() now return ip_addr_t*!)
Removed ip_2_ip4/6_c const macros again now that ip_2_ip4/6 macros keep
the original const'ness
Fixed ETHARP_TRUST_IP_MAC after changing struct netif.ip_addr/netmask to
ip_addr_t
struct udp_pcb.multicast_ip must be an ip_addr_t, too, to completely
avoid temporary storage
Cleaned up using struct netif.ip_addr by creating API functions for it
FD_SET: dump NULL-check that hides usage error, dump non-standard
FD_SET_VAL
simplify FDSETSAFESET()/FDSETSAFEGET(): p is not required
fixed compiler warnings where passing variable instance to ip_addr_isany
netdb: fixed warning about pointless comparison
MIB2_STATS: moved netif related mib2 counters into a struct (defined in
stats.h), added ifInErrors/ifInUnkownProtos (now handled in etharp.c) and
ifOutErrors
fixed bug #46064: ip_set_v6() must set pcb ip address types as well
Fixed bug #46071 Logic error in line 1473 in dns.c
minor: fixed coding style in ip6addr_aton()
ip6addr_aton(): fail on three successive colons in an IPv6 address string
ipaddr_aton(): favour ':' over '.' to decide for IPv6 first (since IPv6
mapped IPv4 addresses might contain both ':' and '.')
minor: fixed coding style in ip4addr_aton()
minor: fixed coding style in ip4addr_aton()
fixed bug #46072: ip4addr_aton() does not check the number range of all
address parts
dns: improved handling 2nd server if first failed
minor: fixed coding style in igmp.c
minor: fixed coding style in mld6.c
implement/remove missing IP counters in stats_mib2 (see task #13731)
Finished task #13731: fix usage of "snmp_inc_*"
Added/changed header of dhcp.c/.h
minor: removed some trailing spaces in tcp.c
minor: removed superfluous comma after '}' in dns.c
minor: removed superfluous comma after '}' in msg_out.c
minor: removed superfluous comma after '}' in mib2.c; removed superfluous
comment on get-functions that follow a function typedef
snmp: moved noleafs_get/set functions from mib2.c to mib_structs.c, where
they belong
snmp: added helper functions to encode/decode BITS pseudo type, added
define for Counter64 type, minor layout changes
minor: mib2.c: sys_tem_* -> system_* for everything but 'sys_tem'
(without suffix)
mib2: only export 'internet', all other variables can be static
adapt CHANGELOG to last change
add last change to CHANGELOG
mib2: one more '};' -> '}'
struct netif->hostname can be a const pointer
snmp: make mib_scalar_node a "derived" struct like all other nodes
snmp: moved agent initialization from snmp_msg.h to snmp.h
adapt init.c to moved declaration of snmp_init
snmp_trap_dst_ip_set: ip_addr_t pointer can be const
def.h: added LWIP_ARRAYSIZE() macro
sockets ERR_TO_ERRNO_TABLE_SIZE: use LWIP_ARRAYSIZE()
snmp: combine oid and node pointers in array entries
snmp: cleaned up mib_* structs: "base" class 'struct mib_node' only needs
the type, get/set functions are not used on array/external nodes (only on
scalar/listroot nodes)
removed comma before }
Fixed bug #46128 (patch by Kerem Hadimli)
minor: SNMP: fixed coding style (lwip style)
minor: fixed coding style (lwip style)
minor: mib2: removed some blocks by defining common variables above the
switch
minor: fixed coding style (lwip style)
SNMP: use PBUF_RAM for sending, PBUF_POOL is mostly used for RX only (if
this isn't followed, tcp can get stuck when ACKs don't come through - unless
some PBUF_POOL pbufs are reserved for such RX)
fixed bug #46145 tcp_send_empty_ack() uses wrong netif with
LWIP_HOOK_IP4_ROUTE_SRC (patch by Milan Cermak)
Fixed bug #46365: tcp_accept_null() should call tcp_abort()
Fixed compiling with LWIP_TCP==0
fixed bug #46471: lwip_accept() leaks socket descriptors if new netconn
was already closed because of peer behavior
Check TCP_SNDLOWAT for too high value (near u16_t overflow) - fixes bug
#46948
minor: tried to fix coding style in lowpan6.c
lowpan6: fixed compiler warning when casting u16_t to u8_t
revert accidentally committed comment from
a649a3eb503600ce34f3c1ea93eda4cf6f0040a1
bring back ETHARP_HWADDR_LEN (if anyone uses it)
minor: fixed compiler warning "unary minus operator is applied to an
unsigned expression"
cleaned up includes a bit after IPv6 changes
Added macro to get the ip address type
sntp: fixed constness for SNTP_SERVER_DNS==1
fixed wrong commit: compatibility-define tcp_accepted() was accidentally
commented-out
... and another compiler error: tcp_nagle_enable() must stay at
tcpflags_t, not using u16_t
lwip_accept: fixed returning EOPNOTSUPP instead of -1 (EOPNOTSUPP is set
as socket error)
minor whitespace change only
removed unused return values of tcp_listen_input & tcp_timewait_input;
fixed unused variable warning
httpd improvements: added persistent connections, improved asynchronous
read mode, compile-time deflate compression, new CGI mode, SSI handler can be
called with tag string (instead of tag index)
fixed bug #47743 (Closing listening tcp pcb is not posible without assert)
fixed bug #47601 (wrong NS request at DAD)
idelamer (5):
Minor edits for for IPv6 compilation
Allow IPv6 addresses with arbitrary prefix.
Allow routing IPv6 packets to neighbours with manually-configured
non-link-local addresses.
Process IPv6 packets arriving from non-Ethernet links.
Don't forward IPv6 packets that are larger than outgoing MTU, send ICMPv6
message back for Path MTU discovery.
jani (119):
Fix bug which eats pbufs if SLIP_END comes at a pbuf boundary.Also
cleaned up and commented the code.
Add SLIP_DEBUG
Fix function names in DEBUGF stataments.Remove reference to "reclaimed"
field in stat.
reclaimed fields have been unused for a while.remove them.
take out the msvc pragmas that cancel each other.leave only one pair
around 3 structs.
make lwip_write() use lwip_send() and avoid code duplication.return
copylen
make it call etharp_output_sent() in tapif_output.This is to prevent the
recently
pack the fields in dhcp_msg.This way DHCP works on non-byte aligned archs
too.
forgot to delete 'return' in the last commit
typo fixes.The unterminated comment already got two bugreports so it was
time.
Move etharp packed structures to the header file.
change tapif 'MTU' to be 1500 just like the linux tap's MTU
fix pbuf_alloc for layer PBUF_LINK
add MTU (maximum transmission unit) field to struct netif
initialize tapif's mtu to 1500
add new header file
include slipif in the objects and widlcard ipv4 so it will include
everything in there
add ip frag switches defaulting to on and increase pbuf pool size for
unix demo
new file ip_frag for IP SAR.reassembly code moved from ip.c and fixed
fix 'conflicting type for strncmp' warning on linux by including string.h
Allocate PBUF_POOL_BUFSIZE at once not harcoded 128.Init MTU for slip -
1500 for
Use C style comments.In debug stataments cast various struct pointers to
void* to
check for NO_SYS consistently using #if.Closes bug #1910
replace bcopy and bzero with memcpy memset in tapif.Alloc PBUF_RAW
instead of PBUF_LINK on input now that the meaning of PBUF_LINK has changed.
use memset and memcpy instead of bzero and bcopy throughout lwIP core
code.Archs need to update.Bug #1899
Moved tcpdump to unix arch since it's specific to that.
Move tcpdump.h to unix arch.BTW: as with tcpdump.c no CVS history is lost
here.
remove tcpdump.c
renamed (hopefully everywhere) stats to lwip_stats.closes bug #1901
sizeof(u8_t) is 1 at temperatures > 0 K
Simplify pbuf allocation for TCP packets in two places by replacing
pbuf_alloc + pbuf_header
remove bcopy & bzero from archs
Patch #928 from Marc
fix debug messages in tcp_slowtmr to reflect the correct name of this
function
remove already commented out function : memp_realloc
seqno is u32_t so use %lu instead of %ld when printing it
print correct pcb->rtime value in debug statament.it does not directly
depend on tcp_ticks
make rtime field u16_t like rto otherwise it won't catch rto if that goes
beyond 255.When that happens there's trouble already since 255 ticks is over 2
minutes but still...
etharp_output_sent no longer exists
remove global ctime.Each entry's ctime is now absolute.This avoids
wrapping and also solves naming clash reported on the list
fix compiler warnings in DEBUGF
do not set rtime too many times to 0.it's enough to do it in
tcp_output_segment
ack duplicate segments too to prevent connection hanging when a single
transmitted ACK gets lost
fix printing of recved packet.Discovered by Ed Sutter
put a state field in listen PCBs to since they are often treated as
normal pcbs. patch #922, bug #2114
When all entries are 0 due to the whole table changing since the last arp
tick (past 10 seconds) there's no oldest entry and the new entry does not get
a spot.Fix this (from Ed Sutter)
Don't allow multiple binds to the same UDP port/address pair.Closes bug
#1896
Fix udp_bind to allow rebind for same socket (yesterday's commit broke
that) and introduce connection info for UDP pcbs.New function
netconn_disconnect, do_disconnect for deatching UDP from a remote addres.Fix
#2240
Fixes so that UDP connect() works.Enable generation of ICMP destination
unreachable when the port is unavailable
Fix locking for disconnect operation (use post and fetch on the
connection's mbox in the two threads like other operations).Make netconn_peer
take a pointer to addr instead of pointer to pointer to addr.Addr is a 4 byte
struct an IP address so use structure assignment not just pointer assignment
when saving the peer.This way the address is really saved :fixes bug #1897
recvfrom accesses freed netbuf.If it's reused in the small window by
another thread recvfrom returns bad from info.Patch #1041 by Florian Zschocke
Deleted proj/ subdir.It has moved to contrib.
Update src/FILES and src/netif/FILES
tcp_timer_needed should be a noop when using the raw API.Fix link error
bug #2489
don't include arch/lib.h
make debugs and asserts platform independent.No more use of abort and
printf.delete 2 references to arch/cpu.h and arch/lib.h
remove list.h
fix doxygen comment for netif_add
Only access non-NULL pbufs on some paths where they can be NULL in newly
introduced callback code
one more C++ comment changed two prototypes added for the SNMP = 1 case
move FD_SET defines to sockets.h from arch.h .Last arg of select is not a
const according to linux and openBSD manpages
fix compiler error
make netif->init return err_t instead of void.Patch from David Le Corfec
delete ethernetif.h
do not directly include lwipopts.h but lwip/opt.h instead
dhcp.h and ip.h declare struct netif and don't include netif.h to avoid
warnings.
byte-order handling functions are in inet.c now and the uperrcase
counterparts are gone. opt.h has all the
cleaned up opt.h a bit, added more option defaults ad changed
SYS_LIGHTWEIGHT_PROT to be a 0/1 define.The same for COMPAT_SOCKET
default value for NO_SYS
icmp messages need only PBUF_IP layer
socket functions use socklen_t, patch from floriZ.Also set/getsockopt use
void * instead of char * as fourth arg
Add sys_untimeout stub in case of NO_SYS
update sysarch doc. patch #1233
factor out netif_set_addr so address of netif can be changed
add tcpip_callback patch from Marc
rename STATS to LWIP_STATS and make it checked by #if not #ifdef.The rest
of the _STATS defines should follow
Add priority argument to thread sys_thread_new.Patch from floriZ but
slightly modfied
patch 1197 form floriZ.When debug is on and port is 0 in udp_bind ERR_USE
is always returned due to missing braces.Reindent that part of code while at it
avoid compiler warning
if LWIP_TCP is 0 do not link in TCP code.putting ugly ifdefs in api and
core :(.Also only udp_init if LWIP_UDP is on
some guidelines for contributors
Add sio.h containing interface to platform specific serial layer.Make
slipif use it instead of defining extern functions.This is in preparation for
PPP
more suggestions
initial PPP options
alignment fix from Marc Boucher
obsolete PCB handling only active when TCP is enabled
add definitions for PF_UNSPEC and IPPROTO_IP
add PPP_DEBUG option and align all options to teh same colums using
spaces and no tabs.closes patch #1306 too
simplify MEM_ALIGN_SIZE macro
fix format warning
C++ comments cleanup
empty lightweight protection macros defined not only for no_sys
add sio_read and sio_write to beused by PPP
patches 1492, 1493 and 1494 from Marc
fix warning
put LWIP_MAX and LWIP_MIN macros in def.h and use these instead of
locally declaring them in .c files
add PPP stack from Marc. Work in progress
Mention PPP in changelog
Cleanups in PPP: C++ comments removed, make it compile for unixsim too.
Does not work yet only compiles
inet_ntoa and inet_aton from Marc
sys_msleep and sys_jiffies used by PPP code.From Marc
sio and PPP updates from Marc
fixed sio_read_abort prototype
ip_lookup and udp_lookup not use remove declarations
indentation fix
add default option for LWIP_RAW
add switch for MEMP_SANITY_CHECK defaulting to off
only include sys.h once. Noted by Tom Barker
fix inet_ntoa prototype to be standard, and fix ppp code that used the
non-standard version
fix SO_REUSE ifdef fixes
fix up stats_display which was added in previous commit
warnign fixe for stat_display
fix recursive inclusion by forward defining struct netif
do not export struct timeval to external users of socket.h to avoid
conflicts
more uptodate eth driver skeleton from Tony Mountfield
spelling fix from Tony Mountfield
by default there's no eth padding to preserve preious beahviour
#if directive style fix
reduce msleep interval from 250 to 1 ms in ppp
jgrubb (15):
Bug fix #20478: memp_malloc returns NULL+MEMP_SIZE rather than NULL on a
failed allocation
+bug fix #20478: memp_malloc now returns NULL for failed allocation
(instead of NULL+MEMP_SIZE)
Add NETIF_LINK_CALLBACK into the netif_set_link_up/down functions
Task #7136: Centralize mempool settings into new memp_std.h and optional
user file lwippools.h.
Task #7136: Centralize mempool settings into new memp_std.h and optional
user file lwippools.h. (Remove MEMP_POOL_SIZE/NUM flags, add new
MEMP_USE_CUSTOM_POOLS option)
*** empty log message ***
Task #7143: Clean up opt.h. Made all the comment formats the same (uses
Doxygen style), a couple minor reorderings. Changed a few of the default stats
variables to depend on whether the modules were even used (i.e. #define
TCP_STATS (LWIP_TCP) ). PPP options could still use some cleaning.
Task #7136: Fix bug of wrong file name for centralized mempool settings.
Move deprecated options from opt.h to init.c
Put back in SO_REUSE
DHCP_DOES_ARP_CHECK is set to 1 by default -- the compile-time checks
fail if DHCP is off... So this patch sets the default to be 1 only if both DHCP
and ARP are set.
Make pbuf_alloc a bit easier to read (change parameter name from "l" to
"layer" and use LWIP_MIN instead of ternary operatory)
Add two more sanity checks on memory settings
Fix typo (MEMP_POOL_START/END to FIRST/LAST)
Minor change: remove unused #define
jifl (42):
2007-02-26 Jonathan Larmour (based on patch from Simon Goldschmidt)
* sockets.h, sockets.c: Move socket initialization to new
Fix incorrect comparison in get_socket().
Ensure the size of each pbuf in the pool meets alignment constraints
Applied patch #5832 from Tai-hwa Liang to keep ipv6 building.
* sys.h, api_lib.c: Provide new sys_mbox_tryfetch function.
Oops, forgot final version of Changelog for last change I made.
From bug #19222 comment #18. Minor tweak to sys_mbox_fetch to avoid
redundant
Document new sys_arch_mbox_tryfetch requirement for ports
Note succesful error return for sys_arch_mbox_tryfetch
* icmp.c: Reset IP header TTL in ICMP ECHO responses (bug #19580).
* pbuf.c: Use s32_t in pbuf_realloc(), as an s16_t can't reliably hold
* sockets.h: FD_SETSIZE needs to match number of sockets, which is
* sockets.c: Fix ioctl FIONREAD when some data remains from last recv.
Make pbuf_init() call be an empty macro for now
"Fix" a few more cases where Paradigm C++ may mis-compile 16-bit right
shifts on 32-bit quantities
Add further checks. Move compile-time checks out of LWIP_DEBUG ifdef
Add further checking that MEMP_NUM_SYS_TIMEOUT is high enough
Small tweak: clarify use of link speed in comments for NETIF_INIT_SNMP.
* core/ipv4/ip.c (ip_input): Rename ipsrcchecking -> check_ip_src, to make
* dhcp.c: fix bug #19927: "DHCP NACK problem" by clearing any existing
set IP
* opt.h, ip.c: Rename IP_OPTIONS define to IP_OPTIONS_ALLOWED to avoid
Minor spelling typos and formatting fixes.
Fix simple compilation error with some compilers to preserve const-ness
of ethaddr - from Luca Ceresoli
Fix incorrect units in comment for TCP_MSL. Allow override.
document that eth drivers input function should be ethernet_input
* mem.c, stats.c, mem.h: apply patch #6414 to avoid compiler errors
* pbuf.c, ppp.c: Fix warnings on some systems with mem_malloc.
* inet_chksum.c: Allow choice of one of the sample algorithms to be
Trivial change: correct sense of comment about LWIP_ERROR macro
* err.h, err.c, sockets.c: Fix bug #23119: Reorder timeout error code to
* tcp_in.c: Fix for bug #23693 as suggested by Art R. Ensure cseg is
unused
Fix typo of including type in stats_display_memp empty macro
* pbuf.c (pbuf_copy_partial): Improve function description comment.
Thanks to Luca Ceresoli
* tcp.c: Fix bug #24227, wrong error message in tcp_bind.
* sockets.c (lwip_accept): check addr isn't NULL. If it's valid, do an
* dns.c: Hard-code structure sizes, to avoid issues on some compilers
where
* sockets.c (lwip_accept): Return EWOULDBLOCK if would block on
non-blocking
* etharp.c (etharp_arp_input): Fix type aliasing problem copying ip
address.
Correct commented description of do_recv().
* pbuf.c: reclaim pbufs from TCP out-of-sequence segments if we run
* ipv4/inet_chksum.c, ipv4/lwip/inet_chksum.h:
inet_chksum_pseudo_partial()
kieranm (106):
Fixed congestion window bug where the pcb->cwnd variable overflowed when
increased.
Fixed bug in duplicate ack handling
Added check on entire sequence number of received packet being less than
the rcv_nxt variable.
New example project demonstrates how to use lwIP as a shared library
Initialize err in do_close to prevent compiler warning.
Initialize err in tcp_slowtmr to prevent compiler warning.
Change type of members of struct stats_mem to "mem_size_t" (Bug #1694)
Zero pcb->acked if ack does not acknowledge new data
Fixed compiler warning - DEBUGF statement with too many arguments
Added netbuf_copy_partial declaration
Added #include <stdlib.h> to ensure abort() is known
Fixed compiler warnings when ARP_QUEUEING is not defined.
Make tmr in tcp_pcb u32_t to ensure it wraps at the same time as
tcp_ticks (Bug #1838)
Removed "static" from declaration of netif in ip_forward and ip_output
Removed tcpdump.c from Makefile - it seems to have disappeared
Removed dummy variable from "struct mem" and handled all MEM_ALIGNMENT
cases
Updated Makefiles to reflect new "contrib" directory for architecture
specific code
Fixed bug in netconn_peer (test pcb for NULL before accessing)
Fixed bug in do_delcon (set tcp_arg to NULL)
Fixed bug in mem_realloc (check alignment of size)
Changed DEBUGF to LWIP_DEBUGF
23/02/2003 - Kieran Mansley - address@hidden
23/02/2003 - Kieran Mansley - address@hidden
23/02/2003 - Kieran Mansley - address@hidden
23/02/2003 - Kieran Mansley - address@hidden
Kieran Mansley, address@hidden, 08th Mar 2004
Kieran Mansley - address@hidden - 9th Mar 2004
Kieran Mansley - address@hidden - 23rd March 2003
Kieran Mansley - address@hidden - 26th May 2004
Kieran Mansley - address@hidden - 30th May 2004
Kieran Mansley - 14th July 2004
Kieran Mansley - 14th July 2004
Kieran Mansley - address@hidden - 23rd July 2004
Add TCP_SEQ_BETWEEN macro for comparing a range of sequence numbers
Fixed typo (missing "{") in previous checkin
Rename lwip_chksum and add LWIP_CHKSUM macro so that ports can "override"
the standard implementation with one of their own.
Kieran Mansley - address@hidden - 12th September 2004
Kieran Mansley - address@hidden - 20th September 2004
Kieran Mansley - address@hidden - 20th September 2004
Kieran Mansley - address@hidden - 20th September 2004
16th October 2004 - Kieran Mansley - address@hidden
Kieran Mansley - address@hidden - 24th Nov 2004
Kieran Mansley - address@hidden - 24th Nov 2004
Kieran Mansley - address@hidden - 24th Nov 2004
sockets.c: Fix BUG#19161 - ensure milliseconds timeout is non-zero
* pbuf.c: Fix BUG#17645 - ensure pbuf payload pointer is not moved
2007-02-28 Kieran Mansley (based on patch from Simon Goldschmidt)
udp.c: Only try and use pbuf_header() to make space for headers if
sockets.c, igmp.c, igmp.h, memp.h: Fix C++ style comments and
* Fix all uses of pbuf_header to check the return value. In some
2007-03-21 Kieran Mansley
* netif.c, netif.h: Apply patch#4197 with some changes (originator:
address@hidden).
2007-03-28 Kieran Mansley
Apply patch #5745: Fix "Constant is long" warnings with 16bit
* tcp.c, tcp_in.c, tcp_out.c, tcp.h: Modify way the retransmission
2007-07-13 Kieran Mansley
* tcp_in.c: Fix for bug #19953 - correct TCP state machine when
inet.c Modify (acc >> 16) test to ((acc >> 16) != 0) to help buggy
2007-12-20 Kieran Mansley (based on patch from Per-Henrik Lundbolm)
2007-12-20 Kieran Mansley (based on patch from Oleg Tyshev)
Whitespace fix.
Add persist timer
2008-01-15 Kieran Mansley
2008-03-04 Kieran Mansley (contributions by others)
Update CHANGELOG for 1.3.0
Fix BUG#23254. Change macro definition of mem_* to allow
Remove redundant "if" statement, and use real rcv_wnd
Fix compiler warning about %#p
BUG25629: set TCP_ACK flags on keepalive and zero window probes
BUG25622: handle return code of tcp_enqueue in tcp_listen_input()
Correct change to probe window setting
BUG26010: set push bit correctly when tcp segments are merged
BUG20779: cope with SYN packets received during established states,
TASK9218: add support for TCP timestamp options
BUG20515: rework way TCP window updates are calculated and sent
Patch#6802 Add do-while-clauses to those function like macros in tcp.h
Patch#6774 TCP_QUEUE_OOSEQ breaks compilation when LWIP_TCP==0
BUG26301 and BUG26267: correct simultaneous close behaviour, and make
BUG26879: set ret value in TCP_EVENT_ macros when function is not set
BUG26722: initialise netconn write variables in netconn_alloc
Update changelog for recent commits
BUG23240 use signed counters for recv_avail and don't increment
Update version numbers for release candidate
Add missing #include directives
Update for 1.3.1rc2
Fix compile warning on Linux
BUG27199: use snd_wl2 instead of snd_wl1
BUG27209: handle trimming of segments when out of window or out of
Update version number of 1.3.1 final release
Update version number for CVS development
Update link to wiki in README file
Fix BUG#27445: grow cwnd with every duplicate ACK
Update version for 1.3.2 rc 1
re-work the fast retransmission code to follow algorithm from TCP/IP
BUG28241: improve oos sequence processing with patches from Oleg Tyshev.
Update version information for 1.3.2
Update CHANGELOG for 1.3.2
Update version numbering for 1.4.0 CVS development
Ensure ssthresh >= 2*MSS
cleanup: fix minor build failures on unix
Remove unportable printing of C function pointers
Fixed SNMP ASN constant defines to not use ! operator
Update release number for 1.4.0 release candidate 1
Update version for 1.4.0 rc2
Update CHANGELOG and version numbers for 1.4.0 release
Update version numbers for 1.4.1 development
kleshov (3):
Indentation fix
Fix bug #21077: inaccuracy in calculation of lwip_stat.mem.used
Fixed bug #21077: inaccuracy in calculation of lwip_stat.mem.used
leonwoestenberg (1):
Merged from DEVEL.
likewise (373):
Initial revision
Fixed typo. Testing CVS add as a test.
Updated texts to reflect move to http://savannah.nongnu.org/projects/lwip/
Removed FILES to remove the old vendor Id: tag.
Added FILES without old vendor Id: tag.
Removed old Id: tags in 4 non-source-code files.
Added explanation on move to Savannah and URLs to its project pages.
Removed to get rid of vendor tag.
Re-added without vendor tag.
Allocate struct tcp_seg *prev, *cseg only if TCP_QUEUE_OOSEQ is defined.
Added redundant brackets in an if statement to keep a flaky compiler
happy.
Added URL to web-browsable CVS tree.
New file structure towards SLIP/PPP. Renamed tcp_*.c for 8.3 sake.
Mention the search feature mailing list archive. Commited to test CVS
email notification.
Fixed NULL pointer bug (#1493). Fix for memory leak bug (#1601),
etharp_output_sent(). Added etharp_query for DHCP.
To prevent compiler warnings, added UL to some bit mask constants.
find_arp_entry() returned 0 instead of ARP_TABLE_SIZE if full pending
cache (bug #1625).
Added DHCP client by Leon Woestenberg
Fixed numerous bugs. Re-used etharp_query() in etharp_output(). Added
comments and JavaDoc documentation.
Surrounded all #include's for packed structs with #ifdef's.
Added pbuf_ref_chain() which increases ref count of all pbufs in a chain.
memp_alloc() now zeroes allocated memory (for robustness). Callers must
NOT assume this.
Changed static etharp_query() to support queueing packets. This fix
missed in last commit.
Note about ethernetif.c not up-to-date with etharp.c API. Fixed typo.
Fixes all issues that showed up after the first commit.
Workaround for compile error on TCP_REG. This workaround is disabled by
default.
ip_output() no longer frees pbuf in case no route could be found.
Hardware address bytes made unsigned char instead of char, consistent
with other sources.
Fixes all issues that showed up after the first commit.
Implemented conditional insertion of ARP entries to update_arp_entry
using ARP_INSERT_FLAG.
ARP entries can now be updated (but not added) on any ARP traffic. Set
#define ETHARP_SNOOP_UPDATES 1 to enable.
ETHARP_SNOOP_UPDATES made externally configurable.
DHCP cleanup redux (patch #654).
Added PBUF_REF (payload external, copied on queueing).
Conditionally have ARP queue outgoing pbufs.
Added debug messages for corner cases of TCP states.
Added SNMP call-outs for monitoring of default SNMP status items for
TCP/IP.
Fixed argument type compiler warnings of the bcopy() call using type
casting.
Changed dhcp_init() to NULL the client_list (on re-inits).
All ARP queueing code is now conditionally compiled-in.
Fixed typo: ETHARP_DEGUG
Documented ( *output)() and ( *linkoutput)() better for upcoming ARP
changes.
Initial commit of C16x/ST10 arch files and CS8900a Ethernet driver.
More complete ARP protocol implementation.
First attempt to stylize and document DHCP sources.
Clarified debug messages where the timers are set.
Fixed missing end-of-comment.
Fixed wrong assertion condition.
Added comment to ip_input() packet filter.
Allocate PBUF_RAW instead of PBUF_LINK type pbufs. Fixes bug #1890 for
this driver.
Removed etharp_output_sent() as etharp.c no longer returns ARP packets to
the driver.
Updated lwIP module copyright years to include 2003. Committers must
check theirs.
Added check if ARP_QUEUEING is 1 for a queueing related debug statement.
Moved ETHARP_ALWAYS_INSERT switch to lwipopts.h
Output snd_buf size in debug message in tcp_enqueue().
More debugging in checksum routines.
Merged patch #927 which fixes "needs modifiable lvalue" compile error in
TCP_REG.
Made hardware address length definable (was 6 bytes for Ethernet).
Added #include <string.h> for memset()/memcpy().
Fixed some typo's in the comments.
Free incoming pbuf's in the TCP event macro if the recv callback is NULL.
Fixes bug #2156.
Enhanced documentation on UDP PCB matchjng code.
Added source documenting comments.
Initial commit of snmp.h function prototypes.
Nullified stray pointer for debugging purposes.
Fixed assignment of pcb->flags if pcb was NULL in udp_new().
Rebinding an active pcb did not check the given address/port against
other bound pcb's.
ip_input() changed. A configured netif accepts any traffic and an
unconfigured netif accepts only DHCP traffic.
Removed the src/arch tree from the lwip module. (Now in seperate contrib
module).
Some macro's were not surrounded by brackets. Was dangerous when nesting
macro's.
Fixed DHCP packet input filter. Added numerous comments. Code cleanup.
Added commented about the signedness of pbuf_header() argument.
Added comments. Code cleanup. Clearer debugging in udp_input().
Changed some comments into JavaDoc format.
Fixed comment typo.
Include arch/cc.h first, as architecture headers might #define NULL
itself.
SNMP functions are now unconditionally called and defined empty if
LWIP_SNMP == 0
Removed my #error.
C instead of C++ style comments.
Disabled too restrictive behaviour in _bind() and _connect().
Reimplementation pending.
Lightweight protection macros were not defined if NO_SYS was defined.
Made UDP flag defines unsigned (by adding the U suffix).
Removed Id: fields as they give conflicts while merging to leon-dhcp
branch.
Merged with leon-dhcp branch. Tagged as POST_leon-dhcp afterwards.
Fixed some issues open after merging 'leon-dhcp'. Added new debugging.
Fixed some issues open after merging 'leon-dhcp'.
DBG_TYPES_ON removed (must be in lwipopts.h instead).
DBG_TYPES_ON added (must be overridden in lwipopts.h).
Fixed cyclic dependency by including netif.h. Not sure if this breaks
other compilers?
Make sure that BYTE_ORDER is actually defined. Panic with #error if not.
Include "netif.h" for ntohl and friends.
Added comments on some ARP options.
Moved DBG_MIN_LEVEL out of here to lwipopts.h
Added source comments.
pbuf_unfold_reply() lost memory if already unfold.
Using a negated unsigned value as func. arg. fails for Keil C166
compilers.
Fixed bug #2841 (etharp.c packet queueing always picks table entry 6).
Fixed bug #2826 (re-use of oldest ARP entry with queued packet leaks
pbuf). Only if ARP_QUEUEING == 1.
Added debug levels for some serious errors (out of memory).
Made some flag defines unsigned.
Re-added pbuf_dechain() in udp_send() as it breaks current applications.
Added tracing debug messages.
Initialized netif->dhcp to NULL.
Retry with PBUF_RAM if PBUF_POOL allocation failed.
Forgot #if LWIP_DHCP around netif->dhcp = NULL;
Lots of clearing up comments and use of new debugging features.
New tail section of udp_send() that handles both queued and unqueued
cases.
Added documentation and comments.
Brackets around debug in DEBUGF. Cleaned comments.
Fixed typo affecting debugging.
Strong assert checking against queueing behaviour in udp_send().
Fixing bug #1903 with a new pbuf_realloc() that respects mixed-type
chains.
pbuf_realloc() did not update ->tot_len in a chain. Fixed dealloc of
REF/ROMs.
Fixed bugs #2968 (ref count) and #2670 (total length).
Removed the pbuf_dechain() from udp_send() matching new pbuf code.
Corrected more pbuf.c functions to comply with pbuf->ref and ->tot_len
invariant.
Initial start with source code and documentation style guidelines.
Added debug messages for serious errors.
Better error handling. Added debug messages for serious errors.
Fixed missing variable.
Documentation changes. Added missing trailing newlines to debug messages.
Fixed pbuf_dechain() assertion. Removed old documentation from pbuf.h.
pbuf_header() now only moves payload pointer upwards for PBUF_ROM/REF.
Replaced pbuf.c 1.34 pbuf_take() change by simpler alternative.
Reverted back to David Haas' patch of pbuf_chain() from 1.34.
Lots of comments added. Removed redundant assignment. Moved assertion.
Fixed another assert. Removed another redundant assignment.
Added source code self documentation guidelines.
etharp_query() has error return type now. Matched dhcp.c with this change.
IP_ADDR_ANY is now a pointer to { 0UL } (see IP_ADDR_BROADCAST).
IP_ADDR_ANY is now a pointer to { 0UL } (see IP_ADDR_BROADCAST).
Added assertion checking against dupes in pcb active list. Added comments.
Fixed ip_addr_set() to deal with IP_ADDR_ANY. Added "ip_addr.h" include.
In pbuf_take(): Got rid of variable 'f'. Fixed stylo (typo in style).
Renamed 'top' to 'head'.
Updated to reflect current practice and URLs.
Print debug message before actually changing netif IP address config.
Only changes to comments.
Fixed stylo.
Added debugging to verify correct result of udp_bind() / udp_connect().
Fixed bug #3112 (faulty behaviour calling tcp_listen() when already
listening)
TCP data can be safely referenced as PBUF_ROM instead of PBUF_REF.
Added (non-active) code handling pcbs upon changing IP address.
Enabled code to abort/replace TCP pcbs upon netif address change.
First attempt to track/explain changes that happened in CVS tree.
Updated changelog to reflect some recent changes.
ip_addr_any and _broadcast are type-declared as being const.
Macro IP_ADDR_ are cast non-const as lots of functions miss const
qualifier for arguments.
Fixed debug message for PBUF_REF/ROM allocation failure.
All debug messages now show actual config _after_ setting netif config.
Stronger debugging/assertion.
Disabled pbuf_dechain() as it not currently in use. Fixed comment
position.
Disabled pbuf_dechain() as it not currently in use.
Added NETIF_FLAG_LINK_UP. Not used yet.
Again accepted NULL to indicate IP_ADDR_ANY.
Prevent warnings about unused function arguments.
dhcp_inform() did not set and unset netif->dhcp. always generated assert
failure.
Debug message shows requested pbuf type (of ROM/REF) upon memory
allocation failure.
Prevent compiler warning on unused function arguments.
Debug levels set on some serious debug messages.
hexadecimal notation for NETIF_FLAGS_
Changed netif name formatting from %s to %c%c.
Stylo.
Mention DHCP fix.
Fixed tabs into spaces. Fixed other stylos.
Either first or last packet can be queued. Fixed (err_t)NULL return value
in etharp_query().
Either first or last packet can be queued through ARP_QUEUE_FIRST option.
Mentioned changes to netif that imply changes for network drivers.
Implemented packet (de)queueing. Unused, etharp.c must be adapted next.
Patch #1308. Still disabled, as it needs to make sure no file field is
not overloaded.
Patch #1183 applied. This drops short UDP/TCP packets.
Patch #1183 applied. This drops short ICMP packets.
Fixed packet header debug formatters.
Patch #1308. Disabled, as one issue in dhcp.c (file field overloading)
needs fix.
Major stylo search/replace for "One space between keyword and opening
bracket."
Made pbuf flags unsigned. Added "incoming broadcast" flag.
Applied patches posted by Marc Boucher on lwip-users May 18th 2003.
Cleanup of some formatting and comments.
dhcp_recv() left dangling dhcp->p pointer in case of unexpected message.
Merging some fixes that had been committed into STABLE.
Set UDP_FLAGS_CONNECTED in udp_connect().
Several additional documentation fixes.
pbuf_alloc() forgot to set tot_len field for PBUF_POOL pbufs.
Fixed a memory leak when only a part of a PBUF_POOL chain could be
allocated.
Mentioned pbuf_alloc() fixes.
Numerated contents so that they can be refered to.
Increased number of debug messages to see pbuf chain actions.
Additional documentation on the subtle difference of a 'pbuf chain' and a
'packet queue'.
Only free the queued packets if there are any.
More precise comments on address change.
Replaced all tabs with two spaces (regardless of indentation is correct).
Fixed a multi-line comment.
Applied patch #1597
Applied patch #1596 fixing wrongly cast LWIP_DEBUGF arguments.
Fixes wrongly cast LWIP_DEBUGF arguments (patch #1596 and more).
Fixed a string literal being wrongly split over two lines.
Initial commit.
Merged with DEVEL.
Made hton/ntoh argument name in prototypes match those in functions.
Merged from DEVEL into main tree.
An overriden merge from DEVEL to main was needed as small changes had
been made to main.
Prepared Changelog for upcoming release 0.6.5. Fixed missing 0.6.4 number
in history.
Merge from DEVEL. Includes important UDP fix for bug #6601.
Merge from DEVEL. Assert used field not available without callback API.
Merged from DEVEL to main. Two TCP fixes and two NULL reference fixes.
Savannah now does anonymous CVS access using empty-password SSH.
Merged from main.
Merged ARP fixes from STABLE. Should have made those fixes in HEAD first.
Applied dhcp.diff by Ian Wienand on lwip-devel on February 4th 2004.
Applied mem.diff by Ian Wienand on lwip-devel on February 4th 2004.
Applied alias.diff by Ian Wienand on lwip-devel on February 4th 2004.
Merged from DEVEL, except for the API change in etharp.c.
Added up-to-date explanation of CVS over SSH on Savannah.
Updated some copyright notices to include 2004 (a few were forgotten
earlier).
Applied Ian Wienand's patches (4-2-2004). Was partly applied earlier.
Added replacement for ip_addr_isbroadcast() macro, code is dead for
review and testing (#if 0).
Matched interface documentation for netif_add() API change in 1.28.2.5.
Added udp_sendto().
Fixed udp_sendto() -> instead of .
Added udp_sendto() docs. Fixed udp_send() docs.
Fixed @return in udp_sendto() docs, @see in udp_send*() docs.
Using udp_sendto() where appropriate.
Make udp_disconnect() clear its remote address association.
Missing newline at EOF. Gave compiler warning.
Replaced ip_addr_isbroadcast() macro by function.
Fix prototype.
Added netif #include.
Disabling ip_addr_isbroadcast() due to recursive header dependencies.
Removed offending #include.
Fix cyclic dependencies by careful re-ordering of #includes.
Made #ifdef's into #if's for SO_REUSE.
etharp_query(): Fixed the case where the packet that initiates the ARP
request is not queued, and gets lost.
Fixed #ifdef LWIP_DHCP position. Fixed extranous comma in function
arguments.
Fixed #ifdef LWIP_DHCP to #if LWIP_DHCP.
Two trivial typo fixes.
Fix in the ip_addr_isbroadcast() check.
Documented latest fixes in HEAD.
Patch of bug #8708 applied which should fix header alignment issues on
32-bit processors.
Updated release procedure to match Savannah changes.
Removed old broadcast check macro.
Fixed a cast.
Removed ETHARP_ALWAYS_INSERT. Whitespace cleanup.
Removed ETHARP_ALWAYS_INSERT.
Corrected comparison by adding missing parentheses.
Updated documentation.
Clean-up source comment documentation for Doxygen.
Fix buggy comment.
Clean-up source comment documentation for Doxygen.
Updated list of fixes/changes to the code.
Applied cleaner new patch for bug #8708.
DHCP header used u32_t where struct ip_addr is more appropriate.
Added missing prototypes for pbuf_*queue().
Fixed hasty job prototype for pbuf_queue().
Fixed use of struct ip_addr in DHCP header.
Some updates on "gratuitious ARP" from RFC3220. Cleanup of some code and
comments.
Made raw_input() more generic allowing multiple matches until someone
eats the packet.
Adpated comments to match Doxygen/JavaDoc style.
Adpated comments to match Doxygen/JavaDoc style.
The recv callback has u8_t return type. Fixed the raw_recv() prototype to
reflect this.
Remember head of queue in pbuf_queue() iff PBUF_DEBUG to generate
senseful debug report.
The recv callback has u8_t return type. Fixed theraw_pcb struct to
reflect this.
Changed PAD_ETH_SIZE into ETH_PAD_SIZE for consistency with de-facto lwIP
naming convention.
etharp_*_input() return value (pbuf) removed; it has not been used since
the packet queue
As etharp already sends packets from the queue asynchronously, also make
it send packet submitted through etharp_output().
Fix three bugs during tests.
Removed all structure packing directives. Protocol header fields are
naturally aligned by design.
Removed a closing bracket, left over after removing pack directives.
Prevent non-unicast addresses from polluting the ARP cache.
Simplified update_arp_entry().
Optimized through re-use of common code. Results in 50 lines less and
more modular code.
Fixed typos.
Exported etharp_request().
More fixes.
Do not empty entries unless allowed to in find_entry().
Fixed ETH_EMPTY into ETHARP_STABLE_EMPTY.
Fixed wrong argument to find_entry() in etharp_query().
Re-instantiated the pack directives. Nested structs do break individual
field natural alignment on arm-gcc.
Optimized search loop a bit. Conditional code for ETHARP_QUEUEING option.
Fixed #if ETHARP_QUEUEING to #if ARP_QUEUEING.
Fixed documentation for internal function.
Added netif up/down basics.
ip_forward() returns netif on which packet was forwarded.
Bug fix: etharp_output() should not free pbufs.
Make restarting() DHCP on on interface more robust by cleaning old state
information.
Style fixes.
Fixed compile errors.
Made loop counters unsigned where possible.
LWIP_TIMEVAL_PRIVATE must be defined in architecture cc.h file, either 1
or 0. Defaults to 1.
LWIP_TIMEVAL_PRIVATE must be defined in architecture cc.h file, either 1
or 0. Defaults to 1.
Dependencies on C library memset() etc., so include <string.h>.
Mentioned placement of closing curly brace (block end).
Updated with latest changes.
Dependencies on C library memset() etc., so include <string.h>.
Source documentation added.
Disabled some code by #if 0 #endif rather than /* */.
Additional fix for TCP retransmit fix (as discussed by Sam Jansen en
Kieran Mansley on lwip-devel, July 13 2004).
Outgoing packets caused ARP requests even when the destination IP was
already cached.
Outgoing packets caused ARP requests even when the destination IP was
already cached.
Support for learning DNS servers through DHCP.
Removed obsolete debug define.
Removed copy-paste errors.
I hate it when it takes twice to fix a typo
pbuf_free() assert triggered by NULLified inseg.p. Reported by Karl
Jeacle on 25-7-2004 on lwip-users.
Made some comments more explicit.
Mentioned 1.0.0.
Have PBUF_LINK_HLEN default to 14 bytes (for Ethernet).
Support for PACK_STRUCT_USE_INCLUDES was broken.
Updated the use of Savannah docs (merged from STABLE-0_7 branch).
First packet on queue generated assertion failure. Reported by David Haas
on lwip-users on Friday 13th.
Ingress TCP keep-alive with garbage byte support.
Do no longer try to free pbuf when TCP_EVENT_RECV() is called without a
callback handler, and without packet.
Mentioned TCP retransmit time-out changes contributed by Sam Jansen,
committed Kieran Mansley.
Bring interface up/down with netif_set_up/down(). Fixes bug 10547.
Reverted back the TCP_BETWEEN macro. It does not work on all archs.
Mentioned adapted TCP behaviour; send ACK even if one was pending, iff
rcv_wnd is above threshold.
Mentioned adapted TCP behaviour; send ACK even if one was pending, iff
rcv_wnd is above threshold.
17th October 2004 Leon Woestenberg <address@hidden>
17th October 2004 Leon Woestenberg <address@hidden>
Removed static declaration of dhcp_release().
DECLINE message was unicast instead of broadcast
Replaced erronous LWIP_ERRORF with LWIP_DEBUGF
2004-11-25 Leon Woestenberg <address@hidden>
2004-11-25 Leon Woestenberg <address@hidden>
Mentioned Kieran's and my changes - Leon.
Removed the Smurf.
2004-11-25 Leon Woestenberg <address@hidden>
Removed redundant closing bracket.
Compile dammit
Added a missing "not" in the comment, the code was correct.
Prevented a race condition between a new ARP request and the ARP timer.
Mentioned ARP race fix.
Surround definition of tcp_timer_needed with #if !NO_SYS #endif. (see
lwip-users 15-11-2004).
Updates the FILES contents to better reflect the current state.
etharp.c: re-arranged code in find_entry(), supposedly making it more
readable for all cases.
etharp.c: Corrected DHCP_DOES_ARP_CHECK behaviour.
Update comment on ETHARP_QUEUEING. Defaulted to being disabled.
tcp_write(): optimize order of valid states checks, most common first.
Added inline source documentation.
Disabled queueing more than 1 packet on a ARP entry, as I suspect this
clashes with the TCP segment queueing.
Re-enabled ARP packet queueing. (Now that multi-packet queueing is
disabled in etharp.c).
Removed assertion that always equaled true.
Updated CHANGELOG.
Changed behaviour into implementation.
3 January 2004, Leon Woestenberg <address@hidden>
Fixed missing semicolon in LWIP_DEBUG statement.
Mention of missing semicolon, and pcb->recv() called even when NULL.
Added some missing string.h includes.
More robust DHCP ARP reply checking.
queue was referenced before initialization in first goto memerr branch
code. Replaced goto branch by its minimal equivalent error handling code.
4 February 2004, Leon Woestenberg <address@hidden>
4 February 2004, Leon Woestenberg <address@hidden>
Mentioned unaligned access fix.
2005-06-08 Leon Woestenberg <address@hidden>
2005-06-08 Leon Woestenberg <address@hidden>
Fixes bug #13807: slipif_input() garbles large (i.e. multiple pbufs)
inbound datagrams.
Unaligned 16-bit access fix for the standard checksum routine by Peter
Jolasson.
Mention of multiple pbuf fix in slipif and unaligned access fix in
checksumming.
Updated comment on optimization and aim of this generic algorithm.
Updated CVS server host names and documentation about pserver anonymous,
SSH non-anonymous access to it.
Typo fix: tens of kilobytes instead of tenths of kilobytes.
README now points to savannah.txt instead of duplicating its nfo.
Duplicate FIN ACK race condition fix by Kelvin Lawson.
Trailing dangling byte in checksum should be considered MSB.
Added Curt McDowell's platform-independent optimized checksum routine.
Remove PCBs which stay in LAST_ACK state too long.
2006-02-27 Merged patch by Curt McDowell
Removed 'even sndbuf' fix in TCP, this fix was a ugly hack for the
incomplete checksum routine that does not work now that the checksum routine is
fixed.
pbuf alignment fix.
Added upcoming 1.1.1 release to Changelog.
Remained indictator where new changes should go.
Dangling inseg.p pointer fix by Pedro Alves.
Fix for out-of-sequence FIN handling, patch by Oleg Tychev.
Initial commit of FILES in doc/
Release 1.2.0.
lukem (3):
added 8-byte alignment for 64-bit architectures
removed redundant redeclaration of tcp_active_pcbs (already defined by
tcp.h)
Added ability to disable checksum generation and checking at compile-time
marcbou (34):
Patch #1623: Add missing pbuf_free() call after pbuf_chain() in
slipif_input()
Merged from DEVEL
Merged from DEVEL.
Important bug fixes and improvements.
merged from DEVEL.
Merged from DEVEL.
Merged from DEVEL.
Added PPPoE support and various PPP improvements.
Initialize newconn->state to NETCONN_NONE in accept_function;
lwip_accept(): check netconn_peer() error return.
Added mem_calloc().
Added PPPoE support to ethernet_input()
Added distinct memp (MEMP_TCPIP_MSG_INPUT) for input packets to prevent
Removed TCPIP_MSG_ETHINPUT. TCPIP_MSG_INPUT now used for
netconn_delete(): unblock potentially waiting recv.
lwip_close(): call netconn_delete() under socksem to properly handle
Changed // style comments to /* style */ comments.
Split pbuf flags in pbuf type and flgs.
Provide default value for MEMP_NUM_TCPIP_MSG_INPUT if not defined.
Changed // style comment to /* style */ comment.
fix ethernet_input() return code warning.
ethbroadcast now a shared global provided by etharp.
Moved lwip/src/netif/ppp/ppp_oe.h to lwip/src/include/netif/ppp_oe.h
Backed out last change to netconn_delete() after discussion with Frederic.
Backed out lwip_close() change after discussion with Frederic.
Fixed misplaced #endif.
Use enum pbuf_flag as pbuf_type.
Per Frederic's suggestion, renamed
lwip_recvfrom() tweaks.
Fix potential pbuf leaks.
Removed PBUF_FLAG_LINK_BROADCAST.
Reset the callbacks and arg (conn) to NULL in do_close_internal(), because
Added CHANGELOG entries for my recent contributions.
Fixed comment for LWIP_POSIX_SOCKETS_IO_NAMES
proff_fs (3):
Added includeds for bpstruct and epstruct.
Added MSVC6 port.
Moved msvc6 project files to contrib module.
sg (197):
fixed comment (bug #43481 MEMP_SYS_TIMEOUTS is not for NO_SYS=0 only)
fixed bugs #41495 Possible threading issue in select() and #43278
fixed bug #43596 IGMP queries from 0.0.0.0 are discarded
added option LWIP_NETCONN_SEM_PER_THREAD to use a semaphore per thread
instead of using one per netconn and per select call
fixed indentation
- fixed bug #43797 set/getsockopt: SO_SNDTIMEO/SO_RCVTIMEO take int as
option but should take timeval (LWIP_SO_SNDRCVTIMEO_STANDARD==0 can be used to
revert to the old 'winsock' style behaviour);
fixed bug #40788 "lwip_setsockopt_internal() crashes" by rewriting
set/getsockopt functions to combine checks with the actual code and add more
NULL checks; this also fixes that CORE_LOCKING used message passing for
set/getsockopt.
tcp_close_shutdown: remove invalid comment on linger: we cannot support
linger for the raw API since linger implies blocking
allow enabling socket API without (public) netconn API - netconn API is
still used by sockets, but keeping it private (static) should allow better
compiler optimizations
patch #8479 Fixed a visibility scope that caused a compile error in some
configurations (by Constantine <nongnusucks>)
fixed bug #43361 select() crashes with stale FDs
netconn_delete(): check for errors returned by lwip_netconn_do_delconn()
and don't call netconn_free() on error
Fixed bug #38315 tcp_eff_send_mss_impl() always subtract the difference
in IPv6 header size
fixed that SHUT_RD followed by SHUT_WR was different to SHUT_RDWR, fixed
return value of lwip_netconn_do_close on unconnected netconns
changed comment in struct linger
netconn/socket api: fixed bug #44225 "closing TCP socket should time out
eventually", implemented task #6930 "Implement SO_LINGER": closing TCP sockets
times out after 20 seconds or after the configured SND_TIMEOUT or depending on
the linger settings; fixed that netconn_close/netconn_delete still used message
passing for LWIP_TCPIP_CORE_LOCKING==1
Added comment that sys_thread_new must not fail (ports have to assert
this!)
started to implement fullduplex sockets/netconns (note that this is
highly unstable yet!)
patch #8423 "arch/perf.h" should be made an optional item
fixed bug #43094 "The function tcpip_input() forget to handle IPv6"
patch #8481 Fix a couple of c&p mistakes in the error prints
More tiny code cleanups...
patch #8362 Add defines for well known ethernet packet types
Fixed a bug in linger-closing when LWIP_TCPIP_CORE_LOCKING==1
patch #7702 "Include ability to increase the socket number with defined
offset"
fixed bug #36403 "ip4_input() and ip6_input() always pass inp to higher
layers": now the accepting netif is passed up, but the input netif is available
through ip_current_input_netif() if required.
introduce sys_timeouts_sleeptime (returns the time left before the next
timeout is due, for NO_SYS==1)
fixed bug #22070 "MIB_OBJECT_WRITE_ONLY not implemented in SNMP"
Added the option PBUF_LINK_ENCAPSULATION_HLEN to allocate additional
header space for TX on netifs requiring additional headers
added hook LWIP_HOOK_MEMP_AVAILABLE() to get informed when a memp pool
was empty and an item is now available
Fixed compiler warning in snmp.h introduced by last patches
minor coding style fix: tab -> spaces
patch by Freddie Chopin: SNMP: const-correctness around snmp traps and
enterprise
added support for write-access community and dedicated community for
sending traps
patch #8361 "Add support for NTP option in DHCP" (slighly modified)
sockets.c: removed LWIP_TCPIP_CORE_LOCKING hack in lwip_sendto(): since
all functions are static when LWIP_NETCONN==0, the speedup gained by this hack
should now be minimal and not worth the duplicate code.
fixed bug #38853 "connect() use a wrong errno": return
ERR_ALREADY/EALRADY during connect, ERR_ISCONN/EISCONN when already connected
Fixed select not reporting received FIN as 'readable' in certain rare
cases (bug #43779: select(), close(), and TCP retransmission error)
"Not connected" shouldn't be fatal (as opposed to "closed")
tcp_alloc() prefers killing CLOSING/LAST_ACK over active connections (see
bug #39565) (tcp_kill_prio(): back to old implementation)
fixed bug #37958 "netconn API doesn't handle correctly connections
half-closed by peer"
PPP: fixed 2 warnings found by MSVC
Continued chrysn's work: changed nearly all functions taking
'ip(X)_addr_t' pointer to take const pointers (changed user callbacks:
raw_recv_fn, udp_recv_fn; changed port callbacks: netif_output_fn,
netif_igmp_mac_filter_fn)
added proper accessor functions for pcb->multicast_ip (previously used by
get/setsockopt only)
patch by Jens Nielsen: fixed bug #38803 (Source address in broadcast ping
reply)
Fixed bug #44297 (CORE_LOCKING was broken some days ago); fixed that
netconn_connect still used message passing for LWIP_TCPIP_CORE_LOCKING==1
fixed bug #38061 (wrong multicast routing in IPv4) by adding an optional
default netif for multicast routing
fixed bug #38165 (socket with mulicast): ensure igmp membership are
dropped when socket (not netconn!) is closed.
fixed comment
work on task #12357 (Ensure that malicious packets don't assert-fail):
don't let too short IP packets assert-fail; fix that IPv6 input did not obey
VLAN header offset
fixed bug #40177 (System hangs when dealing with corrupted packets),
implemented task #12357 (Ensure that malicious packets don't assert-fail):
improved some pbuf_header calls to not assert-fail.
Fixed bug #41700 (Call to tcp_listen_dual() should not accept IPv4 listen
PCB args)
Fixed last commit: can only check for bound sockets, not for unbound.
There's some work to do for IPv6 in TCP...
fixed bug #40753 (re-bind UDP pcbs on change of IP address)
fixed bug #44378 (TCP connections are not aborted on netif remove)
patch by Zach Smith: fixed bug #38153 (nd6_input() byte order issues)
Fixed bug #39956 (netif_create_ip6_linklocal_address out of bounds access
of netif::hwaddr)
fixed bug #41094 (Byte-order bug in IPv6 fragmentation header test)
init.c: raise an error if LWIP_PPP_API==1 but PPP_SUPPORT==0
fixed bug #43784 (a host should send at least one Router Solicitation)
fixed bug #37068 (netif up/down handling is unclear): correclty separated
administrative status of a netif (up/down) from 'valid address' status
ATTENTION: netif_set_up() now always has to be called, even when dhcp/autoip is
used!
tcp/udp_netif_ipv4_addr_changed(): don't change specific-address of local
tcp_listen/udp_pcb to ANY on address change
Fixed comment for NETIF_FLAG_UP after fixing bug #37068
Patch #8207 (Don't Use ND6 Prefix Flags Field When LWIP_IPV6_AUTOCONFIG
Is Deasserted)
patch #8359 (Provide utility function to add an IPv6 address to an
interface)
Added function documentation, fixed coding style
Fixed default LWIP_SUPPORT_CUSTOM_PBUF setting for IPv6/frag
fixed the IPv4 part of bug #43904 (ip_route() must detect linkup status)
Fixed compiler error if LWIP_IPV6==0 but LWIP_IPV6_FRAG==1
fixed race conditions in assigning netconn->last_err (fixed bugs #38121
and #37676)
fixed bug #38203 (DHCP options are not recorded in all DHCP ack messages)
fixed bug #38714 (Missing option and client address in DHCPRELEASE
message)
dhcp.c: removed dead code (#if 0)
fixed bug #38204 (DHCP lease time not handled correctly)
fixed bug #38468 (tcp_sent() not called on half-open connection for data
ACKed with the same ack as FIN)
fixed bug #41318 (Bad memory ref in tcp_input() after tcp_close())
fixed bug #34617: Stable etharp entries that are about to expire are now
refreshed using unicast to prevent unnecessary broadcast.
fixed bug #36017 ARP might not support duplicate addresses on multiple
netifs (tried to correctly handle duplicate AutoIP addresses on multiple
netifs, but only if explicitly enabled via ETHARP_TABLE_MATCH_NETIF==1)
etharp: reduce ARP aging timeout from 20 minutes to 5 minutes, since this
is a time obviously used in some switches as MAC learning table timeout. Having
our ARP timeout higher than this can lead to sending unicast packets to
multiple network segments.
Added input & route hooks for IPv6 to stay in line with IPv4
loopif is not required for loopback traffic any more but passed through
any netif (ENABLE_LOOPBACK has to be enabled) (task #13515)
used ip6_addr_t instead of struct ip6_addr, fix const'ness in ip6_route
parameters
task #12722 (improve IPv4/v6 address handling): renamed ip_addr_t to
ip4_addr_t, renamed ipX_addr_t to ip_addr_t and added IP version;
worked on task #13480: added LWIP_IPV4 define - IPv4 can be disabled,
leaving an IPv6-only stack (SNMP is still missing)
Fixed ntoa/aton/ntop/pton definitions after making IPv4 optional
Worked on IPv6-only stack:
Worked on IPv6-only stack: netdb should work
Fixed typo in dchp_inform (state is named DHCP_INFORMING, not DHCP_INFORM)
added functions dhcp/autoip_supplied_address() to check for the source of
address assignemnt (replacement for NETIF_FLAG_DHCP)
Minor coding style fix
Fixed unit tests (compiler errors/warnings, coding style)
Fix that pbuf_realloc() called mem_trim() for "custom" PBUF_RAM
track bugfixed in CHANGELOG
Fixed more compiler warnings for unit tests
LWIP_COMPAT_SOCKETS==2: special setting to help code parsers/code
completion to show argument names/types for posix socket functions
Tried to improve pbuf_type, LWIP_SUPPORT_CUSTOM_PBUF and
PBUF_FLAG_IS_CUSTOM documentation
allow multicast socket options IP_MULTICAST_TTL, IP_MULTICAST_IF and
IP_MULTICAST_LOOP to be used without IGMP
Enable LWIP_HAVE_LOOPIF by default when LWIP_NETIF_LOOPBACK==1 to not
make loopback traffic depend on the only netif's link state
Fixed usages of SYS_SEM_NULL after using pointers everywhere
fixed bug #45723 netconn_delete unconditionally uses macro
TCP_SLOW_INTERVAL
dns: fixed assertion when dns server address is set to ANY (patch #8692)
patch by Chrysn: patch #8704 fix sys_timeouts_sleeptime function
fixed bug #45120: Broadcast & multiple interfaces handling
Fixed icmp.c after 1.4.0-based patch #45120
- prework for fixing bug #45029: access IPv4 configuration of struct
netif via new API (netif_ip4_addr()/netif_ip4_netmask()/netif_ip4_gw()) instead
of accessing the struct member directly. This way, we can change the struct
member types from ip4_addr_t to ip_addr_t;
Change IP6_ADDR/IP_ADDR6 to initialize a full IPv6 address (e.g. use with
PP_HTONL) - renamed old IP6_ADDR() to IP6_ADDR_PART()
more cleanup prework to fix bug #45029
fixed bug #45827: recvfrom: TCP window is updated with MSG_PEEK
fix comment indentation
LWIP_LOOPIF_MCAST -> LWIP_LOOPIF_MULTICAST
IPV6_REASS: fix ip6_reass_remove_oldest_datagram() when the first
fragment to enqueue has more pbufs than IP_REASS_MAX_PBUFS
fixed bug bug #41009: IPv6 reassembly broken on 64-bit platforms: define
IPV6_FRAG_COPYHEADER==1 on these platforms to copy the IPv6 header instead of
referencing it, which gives more room for struct ip6_reass_helper
Remove empty init functions where not required for backwards compatibility
Fixed UPGRADING regarding 1.4.0
Add another sanity check for bug #41009
fixed bug #44023: TCP ssthresh value is unclear: ssthresh is set to the
full send window for active open, too, and is updated once after SYN to ensure
the correct send window is used
support IPv4 source based routing: define LWIP_HOOK_IP4_ROUTE_SRC to
point to a routing function
task #12178: hardware checksum capabilities can be configured per netif
(use NETIF_SET_CHECKSUM_CTRL() in your netif's init function)
fixed missing #endif
lwip_getaddrinfo: check max name length
fixed unused variable warning
Changed dns_gethostbyname_addrtype() to always be a function, fixed code
for C PP :-(
fixed compiling DNS code again
Fixed passing ip_input() to netif_add() for single-IP-version NO_SYS
configurations
fixed constness for DNS_LOCAL_HOSTLIST_IS_DYNAMIC
fixed some printf formatters (mainly for window scaling code)
fixed compiling lwip_sendmsg for LWIP_NETIF_TX_SINGLE_PBUF &&
LWIP_CHECKSUM_ON_COPY
fixed const warning for !IPV6_FRAG_COPYHEADER
fixed compiler warnings reported by mingw-64
fixed compiling for various config combinations
PPP: more const fixes
Added ip_addr_set_zero_ip4() to explicitly set the type to IPv4 for
dual-stack
fixed compiling udp.c for IPv6-only
Fixed IP_ADDR6 macro for IPv6 only
task #13729: Convert netif addresses (IPv4 & IPv6) to ip_addr_t (so they
can be used without conversion/temporary storage)
fixed coding style: use more ()
PPP: include "ppp_settings.h" if PPP_INCLUDE_SETTINGS_HEADER is defined
to be able to silence some warnings in PPP code only (at least msvc needs this
since PPP produces more warnings than the rest)
ip4_route: fixed checking twice for a valid default_netif, fixed checking
loopback traffic before checking for a valid default netif
Make LWIP_DNS_SECURE and its possible values known in opt.h, remove
default initialization of DNS server
snmp: hopefully fixed all alignment warnings introduced today.
unfortunately, gcc does not warn about them when compiling for x86
snmp mib2: more const
minor/coding style: removed spaces before line ending
minor/coding style: removed spaces before line ending (from file header)
minor: coding style
first 'app': added SNTP client from contrib (unmodified from
196cbae376dfd484b4833503dd43057b4c3462fa, 28.08.2015)
added sntp_opts.h (all options for the sntp app), added FILES to describe
the include folder
fixed header include guard, fixed FILES
Added lwiperf, a simple ipv4/tcp iperf peer
lwiperf: fixed const-cast warning
removed spaces at line ending, fixed include guard
added netbios name server from contrib (-> netbiosns)
netbios -> netbiosns, added netbiosns_opts.h, added netbiosns_set_name()
and netbiosns_stop()
Make LWIP_RAW==0 the default, raw IP sockets/pcbs should not be too
common to justify the increased codesize for default setups
Fixed compiling api with LWIP_NETCONN_SEM_PER_THREAD==1 &&
LWIP_MPU_COMPATIBLE==1
moved dhcp.c to src/core/ipv4/ since it is IPv4 only
started to move "private" header files containing implementation details
to "lwip/priv/" include directory to seperate the API from the implementation.
re-added tcpip.h (removed because the better part of the file moved to
"priv/tcpip_priv.h", which was more worth conserving the git history - how do
you duplicate a file keeping its history in both copies??)
pppapi/ppos: include tcpip_priv.h, not tcpip.h
minor: fixed typo: even_callback -> event_callback
fixed bug #46321: Synchronization bug around lwip_select() and
tcpip_thread() with thread-local semaphores
Fixed bug #47154 lwip_netconn_do_writemore doesn't clear
conn->write_offset on fatal/routing error.
minor/coding style: lowpan6_opts.h: tabs->spaces, trim trailing spaces
minor: udp_input/local_match: coding style, added comments
Fixed bug #46524: "Device as dhcp server does not work after upgrade to
lwip-1.4.1"
dual-stack fix: moved common definitions/code for ethernet used by etharp
and ethip6 to new files ethernet.h/.c
added ethernet.c to Filelists.mk
Tried to fix bug #47270 by accepting all ipv4 multicast packets (at IP
level) when LWIP_IGMP is disabled
fixed bug #46093: Move IP6_ROUTE() hook to after LL processing
bug #46094: moved IPv4 routing hook functions down so that they implement
actual routing (source-based IPv4 routing is not affected by this change)
fixed icmp_send_response with LWIP_HOOK_IP4_ROUTE_SRC enabled
ERR_IF is not necessarily a fatal error (fixes bug #46338: UDP netconns
block after fatal error)
fixed bug #45353: IPv6 router / neighbor relationship is not always
consistent - patch by Stian Sebastian Skjelstad
fixed typo in one of the last commits
dns_gethostbyname: return error code if no valid server is set instead of
calling the 'found' callback in this case (fixes bug #46887)
fixed ERR_IS_FATAL() after changing ERR_IF to non-fatal
Work on bug #44595: remove check for recvmbox != NULL from netconn_recv()
to let it return ERR_CLSD for half-closed TCP connections
fixed bug #46384 Segment size calculation bug with MSS != TCP_MSS
ethernetif.c: implement SNMP counters, simplify input function: no need
to check ethType, ethernet_input() already does this
LWIP_TCPIP_CORE_LOCKING_INPUT is not experimental any more, as well
reset rto timer on fast retransmission (see task #13757, patch by Joel
Cunningham)
tcp_output_segment: don't count retransmitted segments in mib2.tcpoutsegs
by detecting p->payload != tcphdr pointer; don't try to retransmit segments
where p->ref != 1 (as it is invalid to mess up p->len/p->payload when we don't
have exclusive access to the pbuf)
Optimize tcp_output runtime by not calling ip_route() for every segment
sent
fixed compiling netconn_write_partly with LWIP_SO_SNDTIMEO==1 after
recent api implementation changes (bug #47436, patch by William Hayes)
fixed bug #47448 (netconn/socket leak if RST is received during close)
define tcp_backlog_set() as dummy-define when backlog feature is disable
tcp_alloc(): remove explicit =0 already done by memset(0)
ignore dns response parsing errors, only abort resolving for correct
responses or error responses from correct server (bug #47459)
tcp: changed accept handling to be done internally: the application does
not have to call tcp_accepted() any more. Instead, when delaying accept (e.g.
sockets do), call tcp_backlog_delayed()/tcp_backlog_accepted() (fixes bug
#46696)
fixed bug #38203: DHCP options are not recorded in all DHCP ack messages
(patch by Florent Matignon)
call accept-callback with ERR_MEM when allocating a pcb fails on passive
open to inform the application about this error; ATTENTION: applications have
to handle NULL pcb in accept callback!
Fixed possible problems with tcp_backlog_delayed/tcp_backlog_accepted
make autoip_supplied_address() take a const pointer, too
fixed bug #47625 (Error in compilation of C++ source using netifapi
macros) by changing NULL define for __cplusplus
fixed bug# 43739 (Accept not reporting errors about aborted connections):
netconn_accept() returns ERR_ABRT (sockets: ECONNABORTED) for aborted
connections, ERR_CLSD (sockets: EINVAL) if the listening netconn is closed,
which better seems to follow the standard
patch #8358: allow more combinations of listening PCB for IPv6
prepare for overriding current timeout implementation: all stack-internal
caclic timers are avaliable in the lwip_cyclic_timers array
Set LWIP_VERSION_RC to RC1
softins (14):
Removed spurious semicolon and added missing end-of-comment.
Changed recv_raw() from int to u8_t, to match prototype of raw_recv() in
raw.h
Added trivial (int) cast to keep compiler happier.
Changed debug statements to use the tidier ip4_addrN() macros.
Updated low_level_output() to match prototype for netif->linkoutput
Made data types consistent in inet_ntoa().
Small corrections to some debugging statements, to pacify compiler.
Added a couple of casts to quiet the compiler.
Corrected IPH_TOS() macro: returns a byte, so doesn't need htons().
Stop compiler complaining of empty if statement when LWIP_DEBUGF() empty.
Stop compiler complaining of empty if statement when LWIP_DEBUGF() empty.
Add (int) cast in LWIP_DEBUGF() to avoid compiler warnings about
comparison.
Make sure the first pbuf queued on an ARP entry is properly ref counted.
Added my July and August updates.
stoklund (6):
Reuse XIDs for DHCP retransmissions
Implement exponential backoff in dhcp.c
Don't use an AutoIP-configured address on a new network until the address
has been configured.
The DHCP client should enter the REBOOTING state when connecting to a
Add C++ guards to autoip.h header.
Add patch #6725 to CHANGELOG
tabascoeye (1):
icmp: fix checksum on replies of echo request with ID 0, sequence 0 and
either no data or any amount of 0x00 Bytes as data (closes: #45322)
uid67528 (1):
Merged from DEVEL. etharp prepared for queueing feature. DHCP fix.
-----------------------------------------------------------------------
hooks/post-receive
--
lwIP - A Lightweight TCPIP stack
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [lwip-commits] [SCM] lwIP - A Lightweight TCPIP stack annotated tag, STABLE-2_0_0_RC1, created. STABLE-2_0_0_RC1,
Simon Goldschmidt <=