summaryrefslogtreecommitdiff
path: root/net-mgmt/collectd5/files/patch-src_network.c
diff options
context:
space:
mode:
authorDag-Erling Smørgrav <des@FreeBSD.org>2017-11-29 13:12:24 +0000
committerDag-Erling Smørgrav <des@FreeBSD.org>2017-11-29 13:12:24 +0000
commitea0f1337b8429ecb966c70b43062fcf71a250ac0 (patch)
tree2f4c8ccc3b6781c53253ac06e26d631e75442372 /net-mgmt/collectd5/files/patch-src_network.c
parent- Update to 2.3.5 (diff)
Add a patch that sends a probe packet to the server when setting up the
client socket. It helps in a few cases where the server has multiple addresses, only some of them are reachable, and connect() succeeds even though sendto() will fail. Approved by: maintainer
Notes
Notes: svn path=/head/; revision=455109
Diffstat (limited to 'net-mgmt/collectd5/files/patch-src_network.c')
-rw-r--r--net-mgmt/collectd5/files/patch-src_network.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/net-mgmt/collectd5/files/patch-src_network.c b/net-mgmt/collectd5/files/patch-src_network.c
new file mode 100644
index 000000000000..7b159123e621
--- /dev/null
+++ b/net-mgmt/collectd5/files/patch-src_network.c
@@ -0,0 +1,16 @@
+--- src/network.c.orig
++++ src/network.c
+@@ -2000,6 +2000,13 @@
+ continue;
+ }
+
++ status = sendto(client->fd, "", 1, 0, ai_ptr->ai_addr, ai_ptr->ai_addrlen);
++ if (status != 1) {
++ close(client->fd);
++ client->fd = -1;
++ continue;
++ }
++
+ client->addr = calloc(1, sizeof(*client->addr));
+ if (client->addr == NULL) {
+ ERROR("network plugin: calloc failed.");