Ver código fonte

Kernel: Don't respond to TCP RST packets

As seen with GitHub Pages and probably lots of other hosts this might
cause a loop if the peer decides to respond to our RST packet again.
Gunnar Beutner 4 anos atrás
pai
commit
c17f9adb12
1 arquivos alterados com 1 adições e 1 exclusões
  1. 1 1
      Kernel/Net/NetworkTask.cpp

+ 1 - 1
Kernel/Net/NetworkTask.cpp

@@ -410,7 +410,7 @@ void handle_tcp(IPv4Packet const& ipv4_packet, Time const& packet_timestamp)
     dbgln_if(TCP_DEBUG, "handle_tcp: looking for socket; tuple={}", tuple.to_string());
 
     auto socket = TCPSocket::from_tuple(tuple);
-    if (!socket) {
+    if (!socket && !tcp_packet.has_rst()) {
         dbgln("handle_tcp: No TCP socket for tuple {}. Sending RST.", tuple.to_string());
         send_tcp_rst(ipv4_packet, tcp_packet, adapter);
         return;