From 28cff2f185f23ce7b811909cf8996d1e13c01716 Mon Sep 17 00:00:00 2001 From: Jonas 'Sortie' Termansen Date: Thu, 9 Feb 2023 18:49:10 +0100 Subject: [PATCH] Fix listen(2) failing if called twice. --- kernel/net/tcp.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/net/tcp.cpp b/kernel/net/tcp.cpp index bbfdda42..c3371f67 100644 --- a/kernel/net/tcp.cpp +++ b/kernel/net/tcp.cpp @@ -1793,7 +1793,8 @@ int TCPSocket::listen(ioctx_t* /*ctx*/, int backlog) if ( !bound ) return errno = EDESTADDRREQ, -1; // TODO: os-test a regular connection, close, and then try to listen. - if ( state != TCP_STATE_CLOSED ) + // TODO: os-test listen twice. + if ( state != TCP_STATE_CLOSED && state != TCP_STATE_LISTEN ) return errno = EINVAL, -1; backlog_max = backlog; memset(&remote, 0, sizeof(remote));