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
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
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
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
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
Axel Lin
61e90d9fc0
Use pbuf_clone to replace pbuf_alloc+pbuf_copy
...
Use pbuf_clone() to simplify the code a bit.
Signed-off-by: Axel Lin <axel.lin@ingics.com>
2017-12-24 12:50:30 +01:00
goldsimon
b07a481f66
Fix bug #52686 (pointer 'to' checked for NULL in lwip_sendto() may be dereferenced)
...
Signed-off-by: goldsimon <goldsimon@gmx.de>
2017-12-18 20:09:44 +01:00
Axel Lin
32788f2c74
sockets.c: use udp_is_flag_set() instead of udp_flags()
...
Signed-off-by: goldsimon <goldsimon@gmx.de>
2017-11-23 22:12:41 +01:00
Joel Cunningham
ebcae98ae6
Revert "socket/netconn recv: FIN should only be reported once (as '0' for sockets, as 'ERR_CLSD' for netconns)"
...
This reverts commit db3a4e3158
.
See description of regression in bug #52417
2017-11-20 13:54:11 -06:00
Joel Cunningham
6af3b4accc
netconn: Add LWIP_HOOK_NETCONN_EXTERNAL_RESOLVE (patch #9427 )
...
This adds a new hook allowing an external DNS resolver to be hooked into
netconn_gethostbyname(). The hook can handle some or all of the queries
One use case for this hook is to run mDNSResponder in the same system as LwIP
(mDNSResponder also uses LwIP's socekt APIs) and have it handle .local queries
while LwIP stack handles unicast DNS queries
2017-11-20 09:59:35 -06:00
goldsimon
2aed2fc215
sockets: prevent nested SYS_ARCH_PROTECT() for LWIP_NETCONN_FULLDUPLEX==1
2017-11-19 14:37:29 +01:00
goldsimon
f5c37c8cbb
Fix broken MSG_PEEK on TCP sockets (post-2.0.3 bug)
...
MSG_PEEK on TCP sockets was broken since commit b71d4477ea
from 06.03.2017: recv hung in an endless loop and tcp_recved() was called for peeked data
(which would result in a too large window advertised).
Aded TCP MSG_PEEK to socket unit tests
2017-11-18 13:34:20 +01:00
goldsimon
db3a4e3158
socket/netconn recv: FIN should only be reported once (as '0' for sockets, as 'ERR_CLSD' for netconns)
2017-11-17 21:22:53 +01:00
Dirk Ziegelmeier
b0344518e8
sockets.c: Don't rely on #defines in socket.h to be in sync with ip.h
...
Map SO_* to SOF_* #defines
2017-11-17 09:41:26 +01:00
Joel Cunningham
c47d161d4a
netifapi: add thread safe ARP APIs (task #14724 )
...
This adds thread safe netifapi ARP cache APIs for add/remove
2017-11-16 13:59:33 -06:00
goldsimon
245a6835f3
fixed bug #52403 : netconn: FIN may be sent instead of RST when TCP netconn is closed with pending data in recv_mbox
2017-11-15 21:12:15 +01:00
Joel Cunningham
d39e8cd827
docs: replace old reference to TCPIP_APIMSG with netconn_apimsg
2017-10-29 16:52:03 -05:00
Joel Cunningham
b18e6a8734
sockets: fix missing break regression in event_callback
...
During the refactoring in c5db278746
, the
previous gotos were removed, but the lack of break statements in
NETCONN_EVNT_RCVMINUS and NETCONN_EVT_SENDMINUS was overlooked, leading
to incorrect fall through behavior
2017-10-23 09:05:57 -05:00
Joel Cunningham
22dacc38c0
Revert "Fix two bad "fall-through" code"
...
This reverts commit a7f2ef4aec
.
The fall through is actually a regression
2017-10-23 08:59:43 -05:00
Dirk Ziegelmeier
a7f2ef4aec
Fix two bad "fall-through" code
2017-10-22 21:26:57 +02:00
Dirk Ziegelmeier
33ce04019d
Move API description text from rawapi.txt to doxygen docs
2017-10-20 18:44:58 +02:00
Nate Karstens
1960937df3
Enable support for MSG_DONTWAIT in lwip_recvmsg()
...
Enables support for MSG_DONTWAIT in lwip_recvmsg(). Support already
exists in lwip_recv_tcp() and lwip_recvfrom_udp_raw(); these are both
accessible from lwip_recvfrom(), which already supports MSG_DONTWAIT.
Signed-off-by: Nate Karstens <nate.karstens@garmin.com>
Signed-off-by: Joel Cunningham <joel.cunningham@me.com>
2017-10-19 13:55:25 -05:00
goldsimon
cf07fddf96
lwip_poll_dec_sockets_used: remove unused SYS_ARCH_DECL_PROTECT(lev);
2017-10-19 06:52:33 +02:00
Joel Cunningham
8d04f3d622
docs: correct LWIP_IPV6_MLD reference on #endif comment
2017-10-18 11:48:00 -05:00
Our Air Quality
4d21d8da23
Allow LWIP_SOCKET_OFFSET with an external FD_SET
...
Signed-off-by: goldsimon <goldsimon@gmx.de>
2017-10-16 17:07:17 +02:00
Joel Cunningham
0882e0ba89
sockets: poll clean ups
...
This makes the following poll cleanups:
1) Add LWIP_ERROR in lwip_poll to check for invalid fds/nfds combinations.
This fixes a possible a NULL fds dereference in lwip_poll_scan()
2) Use has_ copies of the socket events in lwip_poll_should_wake() rather
passing the sock pointer and accessing socket after leaving the critical
section
2017-10-16 08:06:31 -05:00
goldsimon
68d75a58df
sockets: adapt poll to LWIP_MPU_COMPATIBLE; make LWIP_SOCKET_POLL and LWIP_SOCKET_SELECT independent options
2017-09-21 22:18:55 +02:00
Kalle Olavi Niemitalo
1152fd02c0
New sockets function: lwip_poll
...
Signed-off-by: goldsimon <goldsimon@gmx.de>
2017-09-21 21:50:36 +02:00
goldsimon
333f1bf2bd
Fix compiling with LWIP_SOCKET_SELECT==0
2017-09-21 21:49:31 +02:00
Kalle Olavi Niemitalo
983eb8ebb4
Move select_cb list handling to functions (prepare for adding "poll")
...
Signed-off-by: goldsimon <goldsimon@gmx.de>
2017-09-21 21:10:08 +02:00
Dirk Ziegelmeier
438cfd3f14
Reformat sockets.c using astylerc
2017-09-17 17:50:24 +02:00
Dirk Ziegelmeier
fa33db1448
Reformat tcpip.c using astylerc
2017-09-17 17:50:24 +02:00
Dirk Ziegelmeier
dc9115334e
Reformat netifapi.c using astylerc
2017-09-17 17:50:24 +02:00
Dirk Ziegelmeier
771ac7ac44
Reformat netdb.c using astylerc
2017-09-17 17:50:24 +02:00
Dirk Ziegelmeier
bfae233e3e
Reformat netbuf.c using astylerc
2017-09-17 17:50:24 +02:00
Dirk Ziegelmeier
3d60024f9b
Reformat if_api.c using astylerc
2017-09-17 17:50:24 +02:00
Dirk Ziegelmeier
75847c8b4d
Reformat err.c using astylerc
2017-09-17 17:50:24 +02:00
Dirk Ziegelmeier
2b977a4a6a
Reformat api_msg.c using astylerc
2017-09-17 17:50:24 +02:00
Dirk Ziegelmeier
30152cea78
Reformat api_lib.c using astylerc
2017-09-17 17:50:24 +02:00
Joel Cunningham
5c0054d8ee
Remove double free on select_cb (bug #51990 )
...
This was left over after the refactoring in 92b6f83eb2
2017-09-13 16:51:03 -05:00
goldsimon
92b6f83eb2
Slightly rework the fix for bug #51990 : allocate select_cb only if we actually need to wait
2017-09-12 21:37:48 +02:00
David Lockyer
72a00ca79c
Fixed bug #51990 : Calling select() from different threads with MPU enabled triggers memory protection fault
...
Signed-off-by: goldsimon <goldsimon@gmx.de>
2017-09-12 21:19:54 +02:00
Joel Cunningham
445eef2b0e
sockets: add readv() implementation (task #14610 )
...
Adds an implementation of readv() that calls recvmsg()
See http://pubs.opengroup.org/onlinepubs/009695399/functions/readv.html
2017-09-11 14:48:33 -05:00
goldsimon
e749678eed
Fix function signature of fcntl() for LWIP_COMPAT_SOCKETS == 2 && LWIP_POSIX_SOCKETS_IO_NAMES (see bug #51701 )
2017-08-25 22:07:14 +02:00
Axel Lin
2e4867fcde
api_msg: Remove superfluous NETIF_NO_INDEX checking
...
netif_get_by_index() returns NULL if idx is NETIF_NO_INDEX.
So remove the superfluous NETIF_NO_INDEX checking for msg->msg.jl.if_idx
before calling netif_get_by_index().
Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Dirk Ziegelmeier <dirk@ziegelmeier.net>
2017-08-24 08:59:49 +02:00
Dirk Ziegelmeier
b9d3812ee8
Add assertion that netif index is within sane range in sockets.h.
...
We can assert here since lwIP only supports <= 255 netifs due to netif index being an u8_t.
2017-08-21 21:27:12 +02:00
Dirk Ziegelmeier
fa51a7225a
lwip_socket_drop_registered_mld6_memberships: Fix if_idx got lost :-(
2017-08-21 09:46:08 +02:00
Dirk Ziegelmeier
6082251854
Use netconn_join_leave_group_netif() in sockets.c, lwip_socket_drop_registered_mld6_memberships to avoid threading issues (reported by Joel Cunningham)
2017-08-21 09:43:34 +02:00
Dirk Ziegelmeier
f457769fe8
Add netconn_join_leave_group_netif() that takes netif index as argument
2017-08-21 09:42:57 +02:00
Dirk Ziegelmeier
d0e0afb46a
sockets.c, lwip_socket_drop_registered_mld6_memberships: Remove membership from socket_ipv6_multicast_memberships even if netif cannot be found
2017-08-21 09:30:23 +02:00