From 2e1d24d0480c914068bb202cffb16d52a40ca9d7 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Sat, 18 Mar 2023 06:28:16 -0700 Subject: [PATCH] base,dev: Simplify the ListenSocket::accept method. Remove the nodelay option which is always set to the same thing, and simplify the logic of the method itself. Change-Id: I78cd91f99cbaec9abddedbc7dcddc563daedb81f Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/69158 Tested-by: kokoro Maintainer: Gabe Black Reviewed-by: Yu-hsin Wang --- src/base/remote_gdb.cc | 2 +- src/base/socket.cc | 14 +++++++------- src/base/socket.hh | 2 +- src/base/vnc/vncserver.cc | 2 +- src/dev/net/ethertap.cc | 2 +- src/dev/serial/terminal.cc | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/base/remote_gdb.cc b/src/base/remote_gdb.cc index dd37a3503a..b709ac3d76 100644 --- a/src/base/remote_gdb.cc +++ b/src/base/remote_gdb.cc @@ -438,7 +438,7 @@ BaseRemoteGDB::connect() pollQueue.remove(incomingConnectionEvent); - int sfd = listener.accept(true); + int sfd = listener.accept(); if (sfd != -1) { if (isAttached()) diff --git a/src/base/socket.cc b/src/base/socket.cc index 23f2b40d1a..0a62a88f6c 100644 --- a/src/base/socket.cc +++ b/src/base/socket.cc @@ -239,17 +239,17 @@ ListenSocket::listen(int port, bool reuse) // Open a connection. Accept will block, so if you don't want it to, // make sure a connection is ready before you call accept. int -ListenSocket::accept(bool nodelay) +ListenSocket::accept() { struct sockaddr_in sockaddr; socklen_t slen = sizeof (sockaddr); int sfd = acceptCloexec(fd, (struct sockaddr *)&sockaddr, &slen); - if (sfd != -1 && nodelay) { - int i = 1; - if (::setsockopt(sfd, IPPROTO_TCP, TCP_NODELAY, (char *)&i, - sizeof(i)) < 0) - warn("ListenSocket(accept): setsockopt() TCP_NODELAY failed!"); - } + if (sfd == -1) + return -1; + + int i = 1; + int ret = ::setsockopt(sfd, IPPROTO_TCP, TCP_NODELAY, &i, sizeof(i)); + warn_if(ret < 0, "ListenSocket(accept): setsockopt() TCP_NODELAY failed!"); return sfd; } diff --git a/src/base/socket.hh b/src/base/socket.hh index af4a6511dd..aa451b691a 100644 --- a/src/base/socket.hh +++ b/src/base/socket.hh @@ -104,7 +104,7 @@ class ListenSocket ListenSocket(); virtual ~ListenSocket(); - virtual int accept(bool nodelay = true); + virtual int accept(); virtual bool listen(int port, bool reuse = true); diff --git a/src/base/vnc/vncserver.cc b/src/base/vnc/vncserver.cc index c98838a393..5792c440fc 100644 --- a/src/base/vnc/vncserver.cc +++ b/src/base/vnc/vncserver.cc @@ -190,7 +190,7 @@ VncServer::accept() if (!listener.islistening()) panic("%s: cannot accept a connection if not listening!", name()); - int fd = listener.accept(true); + int fd = listener.accept(); if (fd < 0) { warn("%s: failed to accept VNC connection!", name()); return; diff --git a/src/dev/net/ethertap.cc b/src/dev/net/ethertap.cc index 5b1e957146..b28f255d83 100644 --- a/src/dev/net/ethertap.cc +++ b/src/dev/net/ethertap.cc @@ -280,7 +280,7 @@ TapListener::accept() if (!listener.islistening()) panic("TapListener(accept): cannot accept if we're not listening!"); - int sfd = listener.accept(true); + int sfd = listener.accept(); if (sfd != -1) tap->attach(sfd); } diff --git a/src/dev/serial/terminal.cc b/src/dev/serial/terminal.cc index d4108a372d..fada99c2a4 100644 --- a/src/dev/serial/terminal.cc +++ b/src/dev/serial/terminal.cc @@ -195,7 +195,7 @@ Terminal::accept() if (!listener.islistening()) panic("%s: cannot accept a connection if not listening!", name()); - int fd = listener.accept(true); + int fd = listener.accept(); if (data_fd != -1) { char message[] = "terminal already attached!\n"; atomic_write(fd, message, sizeof(message));