serenity/Kernel/Net
Sergey Bugaev 43ce6c5474 Kernel: Move socket role tracking to the Socket class itself
This is more logical and allows us to solve the problem of
non-blocking TCP sockets getting stuck in SocketRole::None.

The only complication is that a single LocalSocket may be shared
between two file descriptions (on the connect and accept sides),
and should have two different roles depending from which side
you look at it. To deal with it, Socket::role() is made a
virtual method that accepts a file description, and LocalSocket
internally tracks which FileDescription is the which one and
returns a correct role.
2019-08-11 16:30:43 +02:00
..
ARP.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
E1000NetworkAdapter.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
E1000NetworkAdapter.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
EthernetFrameHeader.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
EtherType.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
ICMP.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
IPv4.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
IPv4Socket.cpp Kernel: Move socket role tracking to the Socket class itself 2019-08-11 16:30:43 +02:00
IPv4Socket.h Kernel: Merge FooSocketHandle classes into a single SocketHandle<Foo> 2019-08-09 09:18:16 +02:00
IPv4SocketTuple.h Kernel: Refactor TCP/IP stack 2019-08-06 16:21:17 +02:00
LocalSocket.cpp Kernel: Move socket role tracking to the Socket class itself 2019-08-11 16:30:43 +02:00
LocalSocket.h Kernel: Move socket role tracking to the Socket class itself 2019-08-11 16:30:43 +02:00
LoopbackAdapter.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
LoopbackAdapter.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
MACAddress.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
NetworkAdapter.cpp Kernel: Use WeakPtr<NetworkAdapter> instead of NetworkAdapter* in net code 2019-08-09 07:09:26 +02:00
NetworkAdapter.h Kernel: Use WeakPtr<NetworkAdapter> instead of NetworkAdapter* in net code 2019-08-09 07:09:26 +02:00
NetworkTask.cpp Kernel: Detect some outgoing TCP connection failures 2019-08-10 09:07:11 +02:00
NetworkTask.h Kernel: Move networking related files into Kernel/Net/. 2019-04-02 19:54:38 +02:00
Routing.cpp Kernel: Use WeakPtr<NetworkAdapter> instead of NetworkAdapter* in net code 2019-08-09 07:09:26 +02:00
Routing.h Kernel: Use WeakPtr<NetworkAdapter> instead of NetworkAdapter* in net code 2019-08-09 07:09:26 +02:00
Socket.cpp Kernel: Move socket role tracking to the Socket class itself 2019-08-11 16:30:43 +02:00
Socket.h Kernel: Move socket role tracking to the Socket class itself 2019-08-11 16:30:43 +02:00
TCP.h Kernel: Refactor TCP/IP stack 2019-08-06 16:21:17 +02:00
TCPSocket.cpp Kernel: Move socket role tracking to the Socket class itself 2019-08-11 16:30:43 +02:00
TCPSocket.h Kernel: Detect some outgoing TCP connection failures 2019-08-10 09:07:11 +02:00
UDP.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
UDPSocket.cpp Kernel: Move socket role tracking to the Socket class itself 2019-08-11 16:30:43 +02:00
UDPSocket.h Kernel: Move socket role tracking to the Socket class itself 2019-08-11 16:30:43 +02:00