Axel Lin
efa90d4294
netif: Add LWIP_ASSERT_CORE_LOCKED() to netif_set_remove_callback
...
Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Dirk Ziegelmeier <dirk@ziegelmeier.net>
2018-01-09 07:51:18 +01:00
Dirk Ziegelmeier
05ded5516d
Apply patch #9536 : netif: Prevent possible NULL pointer dereference in netif_set_addr in a modified version
...
Replace NULL pointers by IP4_ADDR_ANY4 - at sometime in the future, we make the NULL pointer handling obsolete and we can remove all the NULL pointer checks in the code
2018-01-09 07:51:09 +01:00
goldsimon
1affbb4bd5
unit tests: fixed testing itoa with too small buffer
2018-01-08 21:38:16 +01:00
David Girault
8801cbdb30
core: fix lwip_itoa()
...
See discussion in bug #51729
Signed-off-by: goldsimon <goldsimon@gmx.de>
2018-01-08 21:37:31 +01:00
Dirk Ziegelmeier
d7566216c9
Remove Simon's compile fix in test_timers.c, it is not needed any more. The function is now used.
2018-01-08 13:02:58 +01:00
Dirk Ziegelmeier
bb0ba64fb0
Work on bug #52748 : the bug in timeouts.c - apply Douglas' patch for absolute timeouts with modification to avoid cyclic timer overload situation
2018-01-08 12:48:48 +01:00
Dirk Ziegelmeier
5eced48869
Apply timeouts.c simplification from Douglas
...
Use TIME_LESS_THAN() macro instead of TIME_LESS_OR_EQUAL_THAN, it is more readable and results equivalent
2018-01-08 11:16:51 +01:00
Dirk Ziegelmeier
b6c0c52d66
Fix that one of Douglas' optimizations broke the timers
...
The unit tests failed and I didn't notice it :-(
2018-01-08 09:19:57 +01:00
Dirk Ziegelmeier
b4768f1711
Once again: Fix build warnings in test_timers.c
2018-01-08 08:34:17 +01:00
Dirk Ziegelmeier
bbb2e50327
Fix variable shadowing warning in my last commit
2018-01-08 08:12:33 +01:00
Dirk Ziegelmeier
3f30bfae28
lwipopts.h for unit tests: Increase number of timeouts
2018-01-08 07:34:38 +01:00
Dirk Ziegelmeier
a31f8837b5
Partly apply patch from "Douglas" provided in bug #52748 : the bug in timeouts.c
...
- Fix sys_untimeout implementation should not modify timer values since we are now using absolute timeouts.c
- Cleanup and simplify sys_check_timeouts() implementation
- Implement sys_restart_timeouts to rebase all timeouts based on next timer to expire
Changes by me:
- Rename TIME_LESS_THAN to TIME_LESS_OR_EQUAL_THAN
2018-01-08 07:33:40 +01:00
Dirk Ziegelmeier
eaca067c7d
Make _cyclic_ timers interval more deterministic - next timeout is calculated from last due time instead of relative to current time
...
This eliminates the cyclic timer jitter
2018-01-08 07:16:49 +01:00
Dirk Ziegelmeier
2b4dde84e3
Apply modified patch #9533 : sys_check_timeouts: recalculate the time diff after each handler call
...
Adapted to new timer implementation
2018-01-08 07:16:48 +01:00
Dirk Ziegelmeier
dd3861720f
Fix bug #52748 : the bug in timeouts.c by reimplementing timer logic to use absolute instead of relative timeout values
2018-01-08 07:16:47 +01:00
Axel Lin
da2478b761
netif: Enclosing macro argument in parentheses for NETIF_FOREACH
...
Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: goldsimon <goldsimon@gmx.de>
2018-01-05 21:35:25 +01:00
goldsimon
e415151cf2
minor style change: fixed indentation
2018-01-05 21:30:32 +01:00
goldsimon
40c0f21b9e
Added dummy sys_mbox_trypost to unit test port
2018-01-05 21:30:07 +01:00
goldsimon
c4867b878c
Try to silence unused function warning in travis
2018-01-05 21:12:31 +01:00
goldsimon
8fc20142f7
Added sys_mbox_trypost_fromisr() and tcpip_callbackmsg_trycallback_fromisr()
...
This can be used to post preallocated messages from an ISR to the tcpip thread
when using FreeRTOS, where where calls differ between task level and ISR level.
Signed-off-by: goldsimon <goldsimon@gmx.de>
2018-01-05 21:08:27 +01:00
Dirk Ziegelmeier
1623c3e2cc
Add test for bug 52748
...
Disabled :-) -> travis doesn't complain
2018-01-05 08:20:36 +01:00
Dirk Ziegelmeier
8de4900641
Work on timer unit tests
2018-01-05 07:49:39 +01:00
Dirk Ziegelmeier
8542556a03
Fix build warning in test_def.c
2018-01-04 13:37:29 +01:00
Dirk Ziegelmeier
756b7431a7
Start implementing unit tests for timers
2018-01-04 13:37:05 +01:00
Dirk Ziegelmeier
40fecab313
Introduce LWIP_TESTMODE #define to be able to make functions/variables public etc. for implementing unit tests
2018-01-04 13:20:28 +01:00
Dirk Ziegelmeier
b16f5f0e19
Rename tcpip_trycallback() tcpip_callbackmsg_trycallback() to avoid confusion with tcpip_try_callback()
...
Add tcpip_callbackmsg_new(), tcpip_callbackmsg_delete(), tcpip_callbackmsg_trycallback() to documentation
2018-01-04 08:24:17 +01:00
goldsimon
6b2ef1a89b
httpd: fix typo "kepalive" -> "keepalive"
2018-01-04 06:35:00 +01:00
Axel Lin
2cb220d7fe
netif: Move LWIP_ASSERT_CORE_LOCKED out of static functions
...
The netif_do_set_{ipaddr|netmask|gw} are static functions what won't be called
directly, thus move LWIP_ASSERT_CORE_LOCKED to netif_set_{ipaddr|netmask|gw}.
This avoid duplicated LWIP_ASSERT_CORE_LOCKED checking by netif_set_addr().
Signed-off-by: Axel Lin <axel.lin@ingics.com>
2018-01-03 12:22:36 +01:00
Dirk Ziegelmeier
25f1c6ef2c
Revert "Apply patch #9523 : MDNS responder should reply after a random timeout"
...
This reverts commit fa345b0f22
.
2018-01-03 07:48:23 +01:00
Dirk Ziegelmeier
3b79c60e41
Revert "Fix build warnings in mdns.c introduced in my last commit"
...
This reverts commit 744e69334d
.
2018-01-03 07:48:12 +01:00
Dirk Ziegelmeier
01e227d2c0
netif.c: Fix that when using LWIP_NETIF_EXT_STATUS_CALLBACK multiple callbacks instead of only one are fired when netif_set_addr() is used
2018-01-03 07:47:49 +01:00
Axel Lin
913a7e0638
sockets: Simplify #if !LWIP_TCPIP_CORE_LOCKING guard in select_check_waiters
...
Signed-off-by: Axel Lin <axel.lin@ingics.com>
2018-01-03 06:35:02 +01:00
Dirk Ziegelmeier
744e69334d
Fix build warnings in mdns.c introduced in my last commit
2018-01-03 06:31:59 +01:00
Dirk Ziegelmeier
fa345b0f22
Apply patch #9523 : MDNS responder should reply after a random timeout
...
with a few cleanups and coding style fixes
2018-01-02 22:20:25 +01:00
Dirk Ziegelmeier
004b13ca09
Work on task #14780 : Add debug helper asserts to ensure threading/locking requirements are met
...
Update documentation
2018-01-02 21:45:30 +01:00
Joel Cunningham
d569a22c73
tcpip: ensure core is locked for init done function
...
This ensures the core is locked when executing the init done function
passed to tcpip_init
The could manifest as a synchronization issue during early init if
another thread was in the LwIP context at the same time
2018-01-02 13:45:00 -06:00
Erik Ekman
d87740bb96
mdns: Fix multicast destination check for IPv6
...
This broke when IPv6 got scopes added. Scopes/zones are checked
even if none of the compared addresses are link local.
Result of the bug was that IPv6 replies were always sent unicast to
the source instead of to the multicast address.
Add ip-generic version that ignores IP zone info, since the v6 group
address is not tied to any netif.
2018-01-02 20:41:50 +01:00
Our Air Quality
1c7a024297
timers: add core locking assertion to tcp_timer_needed (task #14780 )
2018-01-02 12:13:35 -06:00
Our Air Quality
53499f5e9f
timers: rework the core locking around timers (bug #52719 )
...
Want the core lock held while working on the timer data structures.
2018-01-02 11:54:40 -06:00
Joel Cunningham
04b983b4f3
tcp: handle pcb->snd_queuelen and chained pbufs during segment split (bug #52692 )
...
This fixes a bug in tcp_split_unsent_seg() where a chained pbuf was
not correctly updating pcb->snd_queuelen during trimming and snd_queuelen
would desynchronize if pbuf_realloc() freed some of the chain
Also, use pbuf_clen() for adding the new remaining segment rather than ++.
The new remaining segment should always be one pbuf due to the semantics
of PBUF_RAM, but this follows the best practice of using pbuf_clen()
2018-01-02 09:16:10 -06:00
Dirk Ziegelmeier
f334ac68b6
Work on task #14780 : Add debug helper asserts to ensure threading/locking requirements are met
...
Add LWIP_ASSERT_CORE_LOCKED() in several places
2018-01-02 15:44:08 +01:00
Dirk Ziegelmeier
10c50dffce
tcpip.h: Make functions to lock TCPIP core overridable
2018-01-02 14:06:38 +01:00
Dirk Ziegelmeier
b33b3bb8bb
Start working on task #14780 : Add debug helper asserts to ensure threading/locking requirements are met
2018-01-02 13:44:38 +01:00
Dirk Ziegelmeier
36d160686a
Remove mdnsapi_mdns_resp_announce() again - it is not really needed and declaring it in mdns.h breaks layering between callback-style API and thread-safe API
2018-01-02 12:33:07 +01:00
Dirk Ziegelmeier
dfd6a31ecb
Fixup mdnsapi_mdns_resp_announce() macro - mdns_resp_announce() is a void function!
2018-01-02 11:03:45 +01:00
Dirk Ziegelmeier
a8755b8530
Work on bug #52770 : mdns: move the announcements to a timer callback
...
Don't automatically announce when adding netifs/services
2018-01-02 10:59:20 +01:00
Dirk Ziegelmeier
c20d50acec
Update cache handling in ZeroCopyRx.c - invalidate is faster than flushing
2018-01-02 08:40:23 +01:00
Dirk Ziegelmeier
6c7e7153bc
Fix bug #52704 : DHCP and bad OFFER
...
Stop timeout only if offer is accepted
2017-12-30 12:17:24 +01:00
Dirk Ziegelmeier
b536fd9767
Apply modified version of bug #52747 : mdns resp: separate the announce function and add netifapi support for it
...
Changes made by me:
- Move all error handling code into mdns_resp_announce() so it can be safely used by external code
- Remove mdns_resp_netif_settings_changed() because it is the same as mdns_resp_announce() after my changes
- Declare #define for a "thread-safe" version of mdns_resp_announce in mdns.h instead of netifapi.h - I don't want to intermix netif API with APPs
2017-12-30 12:08:01 +01:00
Our Air Quality
1b57284bb4
mdns: guard against there being no ip4 address.
...
* Avoid announcing to an interface with no ip4addr.
* Avoid emitting A answers if there is no ip4 address.
2017-12-30 11:42:46 +01:00