Gregory Nutt
21041af8a7
This commit modifies the Unix domain local socket design. Local sockets are built on top of pipes. The Local socket implementation maintained file descriptors to interrupt with the pipes. File descriptors have the bad property that they are valid only while running on the thread within the task that created the local socket.
...
As a policy, all internal OS implementations must use "detached" files which are valid in any context and do not depend on the validity of a file descriptor at any point in time. This commit converts the usage of file descriptors to detached files throughout the local socket implementation.
Squashed commit of the following:
net/local: Finish change to eliminate use of file descriptors.
net/local: A little more of the conversion.
net/local: Beginning of chnages to eliminate use of file descriptors in the local socket implementeation. poll() will be a problem.
2017-11-02 08:23:38 -06:00
Gregory Nutt
a1469a3e95
Add CONFIG_DEBUG_ERROR. Change names of *dbg() * *err()
2016-06-11 15:50:49 -06:00
Gregory Nutt
fca919f3d2
Networking: Fix some compilation issues noted with network is build with CONFIG_BUILD_KERNEL
2015-07-05 11:18:56 -06:00
Gregory Nutt
0f5c35260b
Local sockets: Local stream sockets had problem of double releasing pipes (both server and client attempt release), which causes wrong pipe pair being closed in multi-client case. Solve by adding per connection instance ID to pipe names. From Jussi Kivilinna (2015-05-12).
2015-05-12 07:47:32 -06:00
Gregory Nutt
011ff49685
Cosmetic update to a few comments
2015-02-01 12:23:57 -06:00
Gregory Nutt
898d511e05
Unix domain: Fix some bugs in logic the frees stream FIFOs
2015-02-01 09:16:55 -06:00
Gregory Nutt
f8bb77365a
Unix domain: Enable logic to clean up the FIFOs underlying stream sockets with those sockets are disconnected. Tehre is still no corresponding clean-up logic in place for Unix domain datagram sockets because the life of the FIFO is not as well known in that case
2015-02-01 08:52:26 -06:00
Gregory Nutt
0fc8d2fcc5
Unix domain: Add options to build in stream or datagram support separately
2015-01-31 07:58:51 -06:00
Gregory Nutt
62b706fa68
If a Unix domain socket is non-blocking, then the underlying FIFO should also be opened non-blocking
2015-01-30 12:43:37 -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
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
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
ffb16f658f
Unix domain: Add initial cut at redvfrom() for Unix domain datagram sockets
2015-01-29 07:47:09 -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
1828badd1d
Networking: Add FIFO management logic needed to support Unix domain sockets
2015-01-26 13:30:27 -06:00