ladybird/Kernel/Net
Peter Elliott ae5d7f542c Kernel: Change polarity of weak ownership between Inode and LocalSocket
There was a bug in which bound Inodes would lose all their references
(because localsocket does not reference them), and they would be
deallocated, and clients would get ECONNREFUSED as a result. now
LocalSocket has a strong reference to inode so that the inode will live
as long as the socket, and Inode has a weak reference to the socket,
because if the socket stops being referenced anywhere it should not be
bound.

This still prevents the reference loop that
220b7dd779 was trying to fix.
2023-02-19 00:37:37 +01:00
..
Intel Kernel: Remove declarations for non-existent methods 2023-01-27 20:33:18 +00:00
Realtek Kernel: Remove declarations for non-existent methods 2023-01-27 20:33:18 +00:00
ARP.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
EthernetFrameHeader.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
EtherType.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
ICMP.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
IPv4.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
IPv4Socket.cpp Everywhere: Remove needless copies of Error / ErrorOr instances 2023-02-10 09:08:52 +00:00
IPv4Socket.h AK: Combine SinglyLinkedList and SinglyLinkedListWithCount 2023-01-02 20:13:24 +00:00
IPv4SocketTuple.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LocalSocket.cpp Kernel: Change polarity of weak ownership between Inode and LocalSocket 2023-02-19 00:37:37 +01:00
LocalSocket.h Kernel: Change polarity of weak ownership between Inode and LocalSocket 2023-02-19 00:37:37 +01:00
LoopbackAdapter.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
LoopbackAdapter.h Kernel/Net: Get the correct interface type in SIOCGIFHWADDR ioctl 2023-01-13 15:44:04 +01:00
NetworkAdapter.cpp Kernel: Pass ipv4_packet_size to ipv4.set_length() 2023-02-05 22:14:14 +00:00
NetworkAdapter.h Kernel/Net: Get the correct interface type in SIOCGIFHWADDR ioctl 2023-01-13 15:44:04 +01:00
NetworkingManagement.cpp Kernel/Net: Propagate proper errno codes from determine_network_device 2023-02-10 09:14:20 +00:00
NetworkingManagement.h Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
NetworkTask.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
NetworkTask.h Kernel: Avoid deadlock when trying to send packets from the NetworkTask 2021-04-30 23:11:56 +02:00
Routing.cpp Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
Routing.h Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
Socket.cpp Kernel: Store socket errors as errno codes rather than ErrorOr values 2023-02-10 09:08:52 +00:00
Socket.h AK+Everywhere: Do not implicitly copy variables in TRY macros 2023-02-10 09:08:52 +00:00
TCP.h Everywhere: Remove unused includes of AK/StdLibExtras.h 2023-01-02 20:27:20 -05:00
TCPSocket.cpp Kernel: Check against TCP packet size overflows in checksum calculation 2022-12-14 15:17:05 +00:00
TCPSocket.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
UDP.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
UDPSocket.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
UDPSocket.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00