Gabe Black has uploaded this change for review. (
https://gem5-review.googlesource.com/c/public/gem5/+/69158?usp=email )
Change subject: base,dev: Simplify the ListenSocket::accept method.
......................................................................
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
---
M src/base/remote_gdb.cc
M src/base/socket.cc
M src/base/socket.hh
M src/base/vnc/vncserver.cc
M src/dev/net/ethertap.cc
M src/dev/serial/terminal.cc
6 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/src/base/remote_gdb.cc b/src/base/remote_gdb.cc
index dd37a35..b709ac3 100644
--- a/src/base/remote_gdb.cc
+++ b/src/base/remote_gdb.cc
@@ -438,7 +438,7 @@
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 23f2b40..0a62a88 100644
--- a/src/base/socket.cc
+++ b/src/base/socket.cc
@@ -239,17 +239,17 @@
// 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 af4a651..aa451b6 100644
--- a/src/base/socket.hh
+++ b/src/base/socket.hh
@@ -104,7 +104,7 @@
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 c98838a..5792c44 100644
--- a/src/base/vnc/vncserver.cc
+++ b/src/base/vnc/vncserver.cc
@@ -190,7 +190,7 @@
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 5b1e957..b28f255 100644
--- a/src/dev/net/ethertap.cc
+++ b/src/dev/net/ethertap.cc
@@ -280,7 +280,7 @@
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 d4108a3..fada99c 100644
--- a/src/dev/serial/terminal.cc
+++ b/src/dev/serial/terminal.cc
@@ -195,7 +195,7 @@
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));
--
To view, visit
https://gem5-review.googlesource.com/c/public/gem5/+/69158?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gem5-review.googlesource.com/settings
Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I78cd91f99cbaec9abddedbc7dcddc563daedb81f
Gerrit-Change-Number: 69158
Gerrit-PatchSet: 1
Gerrit-Owner: Gabe Black <gabe.bl...@gmail.com>
Gerrit-CC: Gabe Black <gabebl...@google.com>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org