mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-01-23 09:46:04 -05:00
4717009e3e
* We don't have to lock the "all IPv4 sockets" in exclusive mode, shared mode is enough for just reading the list (as opposed to modifying it). * We don't have to lock socket's own lock at all, the IPv4Socket::did_receive() implementation takes care of this. * Most importantly, we don't have to hold the "all IPv4 sockets" across the IPv4Socket::did_receive() call(s). We can copy the current ICMP socket list while holding the lock, then release the lock, and then call IPv4Socket::did_receive() on all the ICMP sockets in our list. These changes fix a deadlock triggered by receiving ICMP messages when using tap networking setup (as opposed to QEMU's default user/SLIRP networking) on the host. |
||
---|---|---|
.. | ||
ARP.h | ||
E1000NetworkAdapter.cpp | ||
E1000NetworkAdapter.h | ||
EthernetFrameHeader.h | ||
EtherType.h | ||
ICMP.h | ||
IPv4.h | ||
IPv4Socket.cpp | ||
IPv4Socket.h | ||
IPv4SocketTuple.h | ||
LocalSocket.cpp | ||
LocalSocket.h | ||
LoopbackAdapter.cpp | ||
LoopbackAdapter.h | ||
NE2000NetworkAdapter.cpp | ||
NE2000NetworkAdapter.h | ||
NetworkAdapter.cpp | ||
NetworkAdapter.h | ||
NetworkTask.cpp | ||
NetworkTask.h | ||
Routing.cpp | ||
Routing.h | ||
RTL8139NetworkAdapter.cpp | ||
RTL8139NetworkAdapter.h | ||
Socket.cpp | ||
Socket.h | ||
TCP.h | ||
TCPSocket.cpp | ||
TCPSocket.h | ||
UDP.h | ||
UDPSocket.cpp | ||
UDPSocket.h |