BBlack has submitted this change and it was merged.
Change subject: minor tweak for socket reuse
......................................................................
minor tweak for socket reuse
Change-Id: I0bf459360899a1df3c476a81fdf67dda19f8aa5e
---
M src/purger.c
1 file changed, 6 insertions(+), 0 deletions(-)
Approvals:
BBlack: Verified; Looks good to me, approved
diff --git a/src/purger.c b/src/purger.c
index c479baf..4763e3d 100644
--- a/src/purger.c
+++ b/src/purger.c
@@ -356,6 +356,12 @@
if(fcntl(s->fd, F_SETFL, (fcntl(s->fd, F_GETFL, 0)) | O_NONBLOCK) == -1)
dmn_log_fatal("Failed to set O_NONBLOCK on TCP socket: %s",
dmn_logf_errno());
+ // Atypical with no intent to bind(), but may help with racing other
threads for
+ // ephemeral port allocation in Linux leading to random socket errors,
supposedly?
+ int opt_one = 1;
+ if(setsockopt(s->fd, SOL_SOCKET, SO_REUSEADDR, &opt_one, sizeof(int)))
+ dmn_log_warn("Failed to set SO_REUSEADDR on TCP socket: %s",
dmn_logf_errno());
+
// Initiate a connect() attempt. In theory this always returns
-1/EINPROGRESS for
// a nonblocking socket, but it's possible it succeeds immediately for
localhost...
if(connect(s->fd, &s->daddr.sa, s->daddr.len) == -1) {
--
To view, visit https://gerrit.wikimedia.org/r/71625
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I0bf459360899a1df3c476a81fdf67dda19f8aa5e
Gerrit-PatchSet: 1
Gerrit-Project: operations/software/varnish/vhtcpd
Gerrit-Branch: master
Gerrit-Owner: BBlack <[email protected]>
Gerrit-Reviewer: BBlack <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits