Gregory Nutt
9e73216bf2
net/tcp: Same change to tcp_send_buffered.c probably also applies to sixlowpan_tcpsend.c and inet_recvfrom.c
2017-10-19 16:45:00 -06:00
Gregory Nutt
5ffd034f40
TCP Networking: When CONFIG_NET_TCP_WRITE_BUFF=y there is a situation where a NULL pointer may be dereferenced. In this configuration, the TCP connection's 'semi-permnanent' callback, s_sndcb was nullified in tcp_close_disconnect. However, other logic in tcp_lost_connection() attempt to use that callback reference after it was nullifed. Fixed in tcp_lost_connectino() by adding a NULL pointer change before the access. This was reported by Dmitriy Linikov in Bitbucket Issue 72.
2017-10-13 06:47:40 -06:00
Gregory Nutt
42a0796615
Squashed commit of the following:
...
sched/semaphore: Add nxsem_post() which is identical to sem_post() except that it never modifies the errno variable. Changed all references to sem_post in the OS to nxsem_post().
sched/semaphore: Add nxsem_destroy() which is identical to sem_destroy() except that it never modifies the errno variable. Changed all references to sem_destroy() in the OS to nxsem_destroy().
libc/semaphore and sched/semaphore: Add nxsem_getprotocol() and nxsem_setprotocola which are identical to sem_getprotocol() and set_setprotocol() except that they never modifies the errno variable. Changed all references to sem_setprotocol in the OS to nxsem_setprotocol(). sem_getprotocol() was not used in the OS
2017-10-03 15:35:24 -06:00
Gregory Nutt
83cdb0c552
Squashed commit of the following:
...
libc/semaphore: Add nxsem_getvalue() which is identical to sem_getvalue() except that it never modifies the errno variable. Changed all references to sem_getvalue in the OS to nxsem_getvalue().
sched/semaphore: Rename all internal private functions from sem_xyz to nxsem_xyz. The sem_ prefix is (will be) reserved only for the application semaphore interfaces.
libc/semaphore: Add nxsem_init() which is identical to sem_init() except that it never modifies the errno variable. Changed all references to sem_init in the OS to nxsem_init().
sched/semaphore: Rename sem_tickwait() to nxsem_tickwait() so that it is clear this is an internal OS function.
sched/semaphoate: Rename sem_reset() to nxsem_reset() so that it is clear this is an internal OS function.
2017-10-03 12:52:31 -06:00
Gregory Nutt
0eee0f22cd
Networking: IPv4 getsockname(): Fix a typo that can cause a compile error.
2017-09-19 10:52:01 -06:00
Gregory Nutt
780435d9f1
Networking: sockgetname() files need to include udp/udp.h and tcp/tcp.h or otherwise NET_UDP_HAVE_STACK and NET_TCP_HAVE_STACK are undefined and the logic is never compiled. Noted by Anthony Merlino
2017-09-18 13:14:57 -06:00
Gregory Nutt
684a59f8e8
Eliminate some warnings found in build testing.
2017-09-15 14:42:50 -06:00
Gregory Nutt
cca15891c9
Networking: Fix some errors found by Coverity
2017-09-13 13:04:26 -06:00
Jussi Kivilinna
547733cbb0
Update net_timedwait() and net_lockedwait() call sites to handle negated errno in return value
2017-09-04 07:56:51 -06:00
Gregory Nutt
d74381ca72
Networking: Missed removal of one net_unlock() in previous commit.
2017-08-31 07:29:44 -06:00
Gregory Nutt
7ebef900fb
Networking: Fix a race condition. The accept() operation is performed with the network locked. However, the network is unlocked BEFORE the connected state is set. Therefore, a context switch may occur and the socket may no longer be connected when it is marked so. Noted by Pascal Speck.
2017-08-31 07:23:19 -06:00
Gregory Nutt
0b2a4eb4bd
Networking: A little more wording changes related to interrupts vs. events
2017-08-29 15:08:38 -06:00
Gregory Nutt
04ad162540
Networking: Clean up some naming that has bothered me for a long time... There are no interrupts and no interrupt handlers in the network. There are events and event handler (there used to to be interrupt logic in there years ago but that is long, long gone).
2017-08-29 14:08:04 -06:00
Gregory Nutt
171d183e8e
Networking: A placeholder for some missing logic in the previous change related to monitoring network status for dup'ed sockets. If one of the dup'ed socket's is closed, then network monitor resources associated with that one socket must be recovered. Also, in the event that socket is being used on one thread, but then closed on another, any threads waiting for events from the socket should be informed of the closure. That latter requirement is not implemented because current data structures do not support it.
2017-08-29 13:24:49 -06:00
Gregory Nutt
0f7a52bc28
Networking: Fix a runaway recursion problem introduced the previous fixe for shutting down dup'ed sockets.
2017-08-29 12:27:58 -06:00
Gregory Nutt
ed58536c3a
Networking: Move two more TCP specific files from inet/ to tcp/. There is other TCP-specific logic in inet/ that should be moved sometime, but those are more entangled.
2017-08-29 09:25:22 -06:00
Gregory Nutt
92f44c5607
Networking: Move net/inet/net_monitor.c to net/tcp/tcp_monitor.c in preparation for design change to fix monitoring of duplicated sockets.
2017-08-29 08:40:13 -06:00
Gregory Nutt
969d7c5814
Networking: Remove driver based backlog support. This affects the entire network, but is used by only one driver. The only supported with of supported RX backlog is via common read-ahead buffering.
2017-08-21 06:28:59 -06:00
Masayuki Ishikawa
6bf399dfcb
Networking: Fix a compilation issue with CONFIG_NET_ICMPv6_AUTOCONF=y
2017-08-09 18:08:28 -06:00
Gregory Nutt
aeb59383cf
Remove CONFIG_NET_MULTILINK. This increases code size by a little, but greatly reduces the complexity of the network code.
2017-08-08 15:26:09 -06:00
Gregory Nutt
bd7c84b23e
Remove CONFIG_NETDEV_MULTINIC. This increases code size by a little, but greatly reduces the complexity of the network code.
2017-08-08 14:24:12 -06:00
Gregory Nutt
572cf51fa4
Networking: Rethink IPv6 all-nodes packet routing.
2017-08-08 07:48:07 -06:00
Gregory Nutt
814fc2049d
Networking: Forgot to add a file in a previous commit.
2017-08-08 07:02:39 -06:00
Gregory Nutt
835ae2999d
networking: Move a little more to the inet/ subdirectory.
2017-08-07 13:03:23 -06:00
Gregory Nutt
2ada7d5892
IPv6: Remove comparisons to the address with all ones set. IPv6 does not support broadcast addresses and certainly not in that form. Replace with multicast addresses beginning with 0xff02.
2017-08-07 11:50:50 -06:00
Gregory Nutt
bbf1ad4ea6
Spirit network driver: TX timeout was never being cancelled! Also reviewed and cleaned up all error handling logic
2017-08-06 15:40:37 -06:00
Gregory Nutt
3c6981534f
Networking: Move INET socket interface out of net/sockets to its own directory net/inet
2017-08-06 14:48:19 -06:00