File dpdk_telemetry-plugin-refactor-clean-up-of-socket-close.patch of Package collectd.23723
From: Reshma Pattan <reshma.pattan@intel.com>
Subject: dpdk_telemetry plugin: refactor clean up of socket close
References: jsc#SLE-23472
Patch-Mainline: collectd-5.11.0
Git-commit: 097e87b76b22d9a7d3ab37176a399e535d8dab31
Git-repo: git://github.com/collectd/collectd.git.git
Instead of closing each socket during failures, just call
clean up function to be more consistent across the file.
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Signed-off-by: <trenn@suse.com>
diff --git a/src/dpdk_telemetry.c b/src/dpdk_telemetry.c
index f356ed32..b46e8574 100755
--- a/src/dpdk_telemetry.c
+++ b/src/dpdk_telemetry.c
@@ -241,6 +241,9 @@ static int dpdk_telemetry_cleanup(void) {
close(client.s_send);
close(client.s_recv);
close(client.fd);
+ client.s_send = -1;
+ client.s_recv = -1;
+ client.fd = -1;
return 0;
}
@@ -265,7 +268,7 @@ static int dpdk_telemetry_socket_init(void) {
if (client.s_recv < 0) {
ERROR(PLUGIN_NAME ": Failed to open message socket errno(%d), error(%s)",
errno, strerror(errno));
- close(client.s_send);
+ dpdk_telemetry_cleanup();
return -1;
}
client.addr.sun_family = AF_UNIX;
@@ -275,8 +278,7 @@ static int dpdk_telemetry_socket_init(void) {
sizeof(client.addr)) < 0) {
ERROR(PLUGIN_NAME ": Failed to connect errno(%d), error(%s)", errno,
strerror(errno));
- close(client.s_send);
- close(client.s_recv);
+ dpdk_telemetry_cleanup();
return -1;
}
client.addrs.sun_family = AF_UNIX;
@@ -287,15 +289,13 @@ static int dpdk_telemetry_socket_init(void) {
sizeof(client.addrs)) < 0) {
ERROR(PLUGIN_NAME ": Failed to bind errno(%d), error(%s)", errno,
strerror(errno));
- close(client.s_send);
- close(client.s_recv);
+ dpdk_telemetry_cleanup();
return -1;
}
if (listen(client.s_recv, 1) < 0) {
ERROR(PLUGIN_NAME ": Listen failed errno(%d), error(%s)", errno,
strerror(errno));
- close(client.s_send);
- close(client.s_recv);
+ dpdk_telemetry_cleanup();
return -1;
}
snprintf(message, sizeof(message),
@@ -305,16 +305,14 @@ static int dpdk_telemetry_socket_init(void) {
if (send(client.s_send, message, strlen(message), 0) < 0) {
ERROR(PLUGIN_NAME ": Could not send register message errno(%d), error(%s)",
errno, strerror(errno));
- close(client.s_send);
- close(client.s_recv);
+ dpdk_telemetry_cleanup();
return -1;
}
client.fd = accept(client.s_recv, NULL, NULL);
if (client.fd < 0) {
ERROR(PLUGIN_NAME ": Failed to accept errno(%d), error(%s)", errno,
strerror(errno));
- close(client.s_send);
- close(client.s_recv);
+ dpdk_telemetry_cleanup();
return -1;
}
return 0;