Commit Graph

690 Commits

Author SHA1 Message Date
Gregory Nutt e8a74527a0 Fix mimatched #if/#endif 2015-01-30 12:28:29 -06:00
Gregory Nutt e86d00913e Unix domain/FIFOs: Fix a race condition between FIFO buffer operations and the opening and closing of FIFOs which necessary when the FIFOs are used to support Unix domain, datagram sockets. The default policy is the deallocate FIFO buffering when the last client closes the pipe. When when used for datagram communicatinos, packets left in the FIFO will be lost. Some like UDP read-ahead is needed: The buffered data in the FIFO needs to be retained until the reader gets a chance to re-open the FIFO. Added an ioctl (PIPEIOC_POLICY) to control the buffer policy. Default (0) is the legacy behavior; Unix domain datagram logic sets the alternative policy so that the packet data persists after the FIFO is closed. 2015-01-30 11:14:24 -06:00
Gregory Nutt 4205d68505 Networking: Any linger UDP read-ahead buffers must be freed when UDP socket is closed 2015-01-30 09:44:00 -06:00
Gregory Nutt 2a39105b3f Unix domain: Add logic to release references to the half duplex FIFO after sendto and recvfrom 2015-01-30 09:28:55 -06:00
Gregory Nutt 52f9a2744c Should fix another warning reported by Travis 2015-01-30 08:57:35 -06:00
Gregory Nutt a76b87305a Networking: Should fix a few compile errors/warnings reported by Travis 2015-01-30 08:54:40 -06:00
Gregory Nutt f357ba6c80 Fix error just introduces into recvfrom. From Macs N. 2015-01-30 08:22:44 -06:00
Gregory Nutt a438784054 Forgot to add a file in the last commit 2015-01-30 07:28:30 -06:00
Gregory Nutt 5736cf10af Networking: Separate TCP poll logic out of net/sockets/net_poll.c and move it into the new net/tcp/tcp_netpoll.c. 2015-01-30 07:25:01 -06:00
Gregory Nutt de91d34a19 Networking: Separate out UDP poll logic from socket/net_poll.c into a new udp/udp_netpoll.c; Create a skeleton local/local_netpoll.c for future poll support on Unix domain sockets. 2015-01-30 07:09:25 -06:00
Gregory Nutt 6eda06888a Eliminate a warning 2015-01-30 06:39:23 -06:00
Gregory Nutt ccc72edc0b Networking: Add UDP read-ahead support and support for poll/select on UDP sockets. From Macs N. 2015-01-30 06:08:26 -06:00
Gregory Nutt 7e7d228cd7 Update a comment 2015-01-30 05:40:28 -06:00
Gregory Nutt 7f95e4fb2c Networking: Fix a major TCP bug introduced with commit e71c09ce9777ff732cb60bd07fb43d85522f79d6. Some connection logic was reorder -- setting the socket got moved BEFORE the point where the check was made if the socket was already connected. The resulting behavior was odd: Telnet would connect, but then when you exit and reconnect, it would fail to connect. But then if try again, it would connect okay. So the symptom was connect-fail-connect-fail-... 2015-01-29 16:30:47 -06:00
Gregory Nutt 8b9958b7ba Fix two compilation errors that occur when Unix domain occurs an IPv6 are enabled 2015-01-29 12:31:29 -06:00
Gregory Nutt 0deca5b039 Unix domain: Various fixes to get apps/examplex/udgram working 2015-01-29 11:05:04 -06:00
Gregory Nutt e5f820a2cd Unix domain: Add sendto logic for SOCK_DRAM protocoal 2015-01-29 10:40:10 -06:00
Gregory Nutt 9abd8e2e64 Fix typo in conditional compilation 2015-01-29 10:08:16 -06:00
Gregory Nutt f6bec26e53 Elminate some warnings with TCP and UDP are disabled 2015-01-29 09:33:45 -06:00
Gregory Nutt ffb16f658f Unix domain: Add initial cut at redvfrom() for Unix domain datagram sockets 2015-01-29 07:47:09 -06:00
Gregory Nutt 1c8ddae655 Fix a typo in comments 2015-01-28 17:51:59 -06:00
Gregory Nutt 72ac79e7a1 Minor fixes after initial tests with apps/examples/udgram 2015-01-28 15:27:54 -06:00
Gregory Nutt dfa642601a Merge remote-tracking branch 'origin/master' into afunix 2015-01-28 14:58:49 -06:00
Gregory Nutt 35a814abca net/socket/accept.c: Ooops.. deleted one too many header files 2015-01-28 14:56:06 -06:00
Gregory Nutt 2c7123197c Networking: Move UDP-specifc parts of sendto() out of socket/sendto.c and into udp/udp_sendto.c. Hook in Unix domain sokcet sendto() logic (still just a stub for the moment) 2015-01-28 13:41:24 -06:00
Gregory Nutt 508f8aefa6 Unix domain socket support is no longer EXPERIMENTAL 2015-01-28 13:22:53 -06:00
Gregory Nutt e4e863e752 Merge remote-tracking branch 'origin/master' into afunix 2015-01-28 12:14:00 -06:00
Gregory Nutt 5c2aad64cd Networking: Missed header file inclusion 2015-01-28 12:09:00 -06:00
Gregory Nutt 9c2af5317f Merge remote-tracking branch 'origin/master' into afunix 2015-01-28 12:03:43 -06:00
Gregory Nutt 371a9fd84c Networking: Fix another deadlock condition. tcp_write_buffer_alloc() calls sem_wait() with network locked. That worked if CONFIG_NET_NOINTS was not defined because interrupts are automatically restored when the wait happens. But with CONFIG_NET_NOINTS=y, the wait blocks with the network locked -- bad style and also can lead to a deadlock condition 2015-01-28 11:56:11 -06:00
Gregory Nutt 6a1bfc9594 Unix domain: Fix a typo and some missing conditional compilation 2015-01-28 11:48:23 -06:00
Gregory Nutt cba78c7349 Unix domain: More fixes. With these changes, apps/examples/ustream works 2015-01-28 08:39:48 -06:00
Gregory Nutt 5f9837dcc8 Merge remote-tracking branch 'origin/master' into afunix
Conflicts:
	nuttx/ChangeLog
2015-01-27 21:47:12 -06:00
Gregory Nutt c4bd6f52b5 Networking: The are issues with the TCP write-ahead buffering if CONFIG_NET_NOINTS is enabled: There is a possibility of deadlocks in certain timing conditions. I have not seen this with the Tiva driver that I have been users but other people claim to see the issue on other platforms. Certainly it is a logic error: The network should never wait for TCP read-ahead buffering space to be available. It should drop the packets immediately.
This was fixed by duplicating most of the IOB interfaces:  The versions that waited are still present (like iob_alloc()), but now there are non-waiting verisons of the same interfaces (like iob_tryalloc()).  The TCP read-ahead logic now uses only these non-waiting interfaces.
2015-01-27 21:23:42 -06:00
Gregory Nutt b76db036da Unix domain: A few more bugfixes 2015-01-27 17:31:42 -06:00
Gregory Nutt ca2102febb Unix domain: A few fixes from early integration 2015-01-27 16:39:30 -06:00
Gregory Nutt 55d94b6748 Unix domain: With these changes I can build a system with no link layer enabled, only Unix domain sockets 2015-01-27 15:26:03 -06:00
Gregory Nutt c250c97186 Unix domain: More fixed to build without Ethernet or Slip 2015-01-27 14:26:10 -06:00
Gregory Nutt 8f517ad0c1 recvfrom(): Missing else in conditional logic of recvfrom() 2015-01-27 14:14:53 -06:00
Gregory Nutt c49c7bc447 Merge remote-tracking branch 'origin/master' into afunix 2015-01-27 14:12:41 -06:00
Gregory Nutt cbf0608513 Various fixes to get Unix domain sockets to build on the simulator without Ethernet 2015-01-27 14:11:46 -06:00
Gregory Nutt 8f29039f42 Unix sockets: Fleshes out the recvfrom() logic 2015-01-27 11:51:24 -06:00
Gregory Nutt 120efa4717 Local sockets: Add basic packet send logic 2015-01-27 08:05:09 -06:00
Gregory Nutt 1f7b40ce15 Local sockets: Remove some ill-conceived logic 2015-01-27 07:03:20 -06:00
Gregory Nutt a88b824f96 Networking: Hook in send and revcfrom Unix domain socket logic; still needs hooks for sendto logic 2015-01-26 18:47:48 -06:00
Gregory Nutt 2201c9b449 Add stub files for sending and receiving on FIFOs 2015-01-26 17:28:36 -06:00
Gregory Nutt 1828badd1d Networking: Add FIFO management logic needed to support Unix domain sockets 2015-01-26 13:30:27 -06:00
Gregory Nutt a25f6cb7fd Replace an un-necessary goto 2015-01-25 17:53:01 -06:00
Gregory Nutt f756545eb0 Networking: Add local Unix domain socket accept logic 2015-01-25 16:27:25 -06:00
Gregory Nutt 90e59217c6 Networking: Move TCP specific logic out of net/socket/accept.c to net/tcp/tcp_accept.c; add hooks for local, Unix doamin sockets 2015-01-25 15:46:05 -06:00