summaryrefslogtreecommitdiff
path: root/ctdb/tools
diff options
context:
space:
mode:
authorMartin Schwenke <martin@meltin.net>2017-09-14 15:19:43 +1000
committerMartin Schwenke <martins@samba.org>2017-09-19 13:30:27 +0200
commit3f78dddea95fb90ac01d52229d9449c6b094de64 (patch)
tree11ae31b50fb40d2af6d0aabe06abade2d9c1e4c0 /ctdb/tools
parent7a2db5410f745f0c745399a0190a9064fa173696 (diff)
downloadsamba-3f78dddea95fb90ac01d52229d9449c6b094de64.tar.gz
ctdb-tools: Improve error handling
Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
Diffstat (limited to 'ctdb/tools')
-rw-r--r--ctdb/tools/ctdb_killtcp.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/ctdb/tools/ctdb_killtcp.c b/ctdb/tools/ctdb_killtcp.c
index e88ef210f5b..d1eee535e1c 100644
--- a/ctdb/tools/ctdb_killtcp.c
+++ b/ctdb/tools/ctdb_killtcp.c
@@ -64,10 +64,11 @@ static void capture_tcp_handler(struct tevent_context *ev,
uint16_t window;
int ret;
- if (ctdb_sys_read_tcp_packet(killtcp->capture_fd,
- killtcp->private_data,
- &conn.server, &conn.client,
- &ack_seq, &seq, &rst, &window) != 0) {
+ ret = ctdb_sys_read_tcp_packet(killtcp->capture_fd,
+ killtcp->private_data,
+ &conn.server, &conn.client,
+ &ack_seq, &seq, &rst, &window);
+ if (ret != 0) {
/* probably a non-tcp ACK packet */
return;
}
@@ -97,7 +98,10 @@ static void capture_tcp_handler(struct tevent_context *ev,
D_INFO("Sending a TCP RST to kill connection %s\n",
ctdb_connection_to_string(killtcp, &conn, true));
- ctdb_sys_send_tcp(&conn.server, &conn.client, ack_seq, seq, 1);
+ ret = ctdb_sys_send_tcp(&conn.server, &conn.client, ack_seq, seq, 1);
+ if (ret != 0) {
+ DBG_ERR("Error sending TCP RST for connection\n");
+ }
}
@@ -108,6 +112,7 @@ static int tickle_connection_parser(uint8_t *keybuf, size_t keylen,
struct ctdb_kill_tcp *killtcp = talloc_get_type_abort(
private_data, struct ctdb_kill_tcp);
struct ctdb_connection *conn;
+ int ret;
if (keylen != sizeof(*conn)) {
DBG_WARNING("Unexpected data in connection hash\n");
@@ -122,7 +127,11 @@ static int tickle_connection_parser(uint8_t *keybuf, size_t keylen,
return 1;
}
- ctdb_sys_send_tcp(&conn->server, &conn->client, 0, 0, 0);
+ ret = ctdb_sys_send_tcp(&conn->server, &conn->client, 0, 0, 0);
+ if (ret != 0) {
+ DBG_ERR("Error sending tickle ACK\n");
+ /* continue */
+ }
return 0;
}