summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/basic/socket-util.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/basic/socket-util.c b/src/basic/socket-util.c
index e787d53d8f..cf2e08c2df 100644
--- a/src/basic/socket-util.c
+++ b/src/basic/socket-util.c
@@ -1228,18 +1228,18 @@ int flush_accept(int fd) {
int r, b;
socklen_t l = sizeof(b);
- /* Similar to flush_fd() but flushes all incoming connection by accepting them and immediately
- * closing them. */
+ /* Similar to flush_fd() but flushes all incoming connections by accepting and immediately closing
+ * them. */
if (getsockopt(fd, SOL_SOCKET, SO_ACCEPTCONN, &b, &l) < 0)
return -errno;
assert(l == sizeof(b));
- if (!b) /* Let's check if this is a socket accepting connections before calling accept(). That's
- * because accept4() can return EOPNOTSUPP in the fd we are called on is not a listening
- * socket, or in case the incoming TCP connection transiently triggered that (see accept(2)
- * man page for details). The latter case is a transient error we should continue looping
- * on. The former case however is fatal. */
+ if (!b) /* Let's check if this socket accepts connections before calling accept(). accept4() can
+ * return EOPNOTSUPP if the fd is not a listening socket, which we should treat as a fatal
+ * error, or in case the incoming TCP connection triggered a network issue, which we want to
+ * treat as a transient error. Thus, let's rule out the first reason for EOPNOTSUPP early, so
+ * we can loop safely on transient errors below. */
return -ENOTTY;
for (;;) {