diff --git a/Kernel/Net/IPv4Socket.cpp b/Kernel/Net/IPv4Socket.cpp index 650a8bd616..f0f5bf7dc7 100644 --- a/Kernel/Net/IPv4Socket.cpp +++ b/Kernel/Net/IPv4Socket.cpp @@ -84,7 +84,7 @@ KResult IPv4Socket::bind(const sockaddr* address, socklen_t address_size) m_local_address = IPv4Address((const u8*)&ia.sin_addr.s_addr); m_local_port = ntohs(ia.sin_port); - dbgprintf("IPv4Socket::bind %s{%p} to port %u\n", class_name(), this, m_local_port); + dbgprintf("IPv4Socket::bind %s{%p} to %s:%u\n", class_name(), this, m_local_address.to_string().characters(), m_local_port); return protocol_bind(); } diff --git a/Kernel/Net/NetworkTask.cpp b/Kernel/Net/NetworkTask.cpp index b00e43a683..288b7df32e 100644 --- a/Kernel/Net/NetworkTask.cpp +++ b/Kernel/Net/NetworkTask.cpp @@ -320,6 +320,10 @@ void handle_tcp(const EthernetFrameHeader& eth, int frame_size) IPv4SocketTuple tuple(ipv4_packet.destination(), tcp_packet.destination_port(), ipv4_packet.source(), tcp_packet.source_port()); +#ifdef TCP_DEBUG + kprintf("handle_tcp: looking for socket; tuple=%s\n", tuple.to_string().characters()); +#endif + auto socket = TCPSocket::from_tuple(tuple); if (!socket) { kprintf("handle_tcp: No TCP socket for tuple %s\n", tuple.to_string().characters()); @@ -329,6 +333,10 @@ void handle_tcp(const EthernetFrameHeader& eth, int frame_size) ASSERT(socket->type() == SOCK_STREAM); ASSERT(socket->local_port() == tcp_packet.destination_port()); +#ifdef TCP_DEBUG + kprintf("handle_tcp: got socket; state=%s\n", socket->tuple().to_string().characters(), TCPSocket::to_string(socket->state())); +#endif + if (tcp_packet.ack_number() != socket->sequence_number()) { kprintf("handle_tcp: ack/seq mismatch: got %u, wanted %u\n", tcp_packet.ack_number(), socket->sequence_number()); return; @@ -336,10 +344,6 @@ void handle_tcp(const EthernetFrameHeader& eth, int frame_size) socket->record_incoming_data(ipv4_packet.payload_size()); -#ifdef TCP_DEBUG - kprintf("handle_tcp: state=%s\n", TCPSocket::to_string(socket->state())); -#endif - switch (socket->state()) { case TCPSocket::State::Closed: kprintf("handle_tcp: unexpected flags in Closed state\n"); diff --git a/Kernel/Net/TCPSocket.cpp b/Kernel/Net/TCPSocket.cpp index cd9f0f3f0f..67bf1a6bbd 100644 --- a/Kernel/Net/TCPSocket.cpp +++ b/Kernel/Net/TCPSocket.cpp @@ -148,10 +148,10 @@ void TCPSocket::send_tcp_packet(u16 flags, const void* payload, int payload_size local_port(), peer_address().to_string().characters(), peer_port(), - tcp_packet.has_syn() ? "SYN" : "", - tcp_packet.has_ack() ? "ACK" : "", - tcp_packet.has_fin() ? "FIN" : "", - tcp_packet.has_rst() ? "RST" : "", + tcp_packet.has_syn() ? "SYN " : "", + tcp_packet.has_ack() ? "ACK " : "", + tcp_packet.has_fin() ? "FIN " : "", + tcp_packet.has_rst() ? "RST " : "", tcp_packet.sequence_number(), tcp_packet.ack_number()); #endif