summaryrefslogtreecommitdiff
path: root/ctdb
diff options
context:
space:
mode:
Diffstat (limited to 'ctdb')
-rw-r--r--ctdb/protocol/protocol_util.c6
-rw-r--r--ctdb/protocol/protocol_util.h4
-rw-r--r--ctdb/tests/src/protocol_util_test.c18
-rw-r--r--ctdb/tools/ctdb.c6
-rw-r--r--ctdb/tools/ctdb_killtcp.c2
5 files changed, 17 insertions, 19 deletions
diff --git a/ctdb/protocol/protocol_util.c b/ctdb/protocol/protocol_util.c
index 7ce19c1f79c..75427e44f50 100644
--- a/ctdb/protocol/protocol_util.c
+++ b/ctdb/protocol/protocol_util.c
@@ -679,7 +679,9 @@ static int ctdb_connection_list_read_line(char *line, void *private_data)
return 0;
}
-int ctdb_connection_list_read(TALLOC_CTX *mem_ctx, bool client_first,
+int ctdb_connection_list_read(TALLOC_CTX *mem_ctx,
+ int fd,
+ bool client_first,
struct ctdb_connection_list **conn_list)
{
struct ctdb_connection_list_read_state state;
@@ -696,7 +698,7 @@ int ctdb_connection_list_read(TALLOC_CTX *mem_ctx, bool client_first,
state.client_first = client_first;
- ret = line_read(0,
+ ret = line_read(fd,
128,
mem_ctx,
ctdb_connection_list_read_line,
diff --git a/ctdb/protocol/protocol_util.h b/ctdb/protocol/protocol_util.h
index fa7189c22a4..a51cbcdda98 100644
--- a/ctdb/protocol/protocol_util.h
+++ b/ctdb/protocol/protocol_util.h
@@ -69,7 +69,9 @@ int ctdb_connection_list_sort(struct ctdb_connection_list *conn_list);
const char *ctdb_connection_list_to_string(
TALLOC_CTX *mem_ctx,
struct ctdb_connection_list *conn_list, bool client_first);
-int ctdb_connection_list_read(TALLOC_CTX *mem_ctx, bool client_first,
+int ctdb_connection_list_read(TALLOC_CTX *mem_ctx,
+ int fd,
+ bool client_first,
struct ctdb_connection_list **conn_list);
#endif /* __CTDB_PROTOCOL_UTIL_H__ */
diff --git a/ctdb/tests/src/protocol_util_test.c b/ctdb/tests/src/protocol_util_test.c
index 9b4729ec5ee..178ce1d6429 100644
--- a/ctdb/tests/src/protocol_util_test.c
+++ b/ctdb/tests/src/protocol_util_test.c
@@ -183,7 +183,7 @@ static void test_connection_list_read(const char *s1, const char *s2)
TALLOC_CTX *tmp_ctx;
int pipefd[2];
pid_t pid;
- struct ctdb_connection_list *conn_list;
+ struct ctdb_connection_list *conn_list = NULL;
const char *t;
int ret;
@@ -212,14 +212,11 @@ static void test_connection_list_read(const char *s1, const char *s2)
close(pipefd[1]);
- ret = dup2(pipefd[0], STDIN_FILENO);
- assert(ret != -1);
+ ret = ctdb_connection_list_read(tmp_ctx, pipefd[0], false, &conn_list);
+ assert(ret == 0);
close(pipefd[0]);
- ret = ctdb_connection_list_read(tmp_ctx, false, &conn_list);
- assert(ret == 0);
-
ret = ctdb_connection_list_sort(conn_list);
assert(ret == 0);
@@ -236,7 +233,7 @@ static void test_connection_list_read_bad(const char *s1)
TALLOC_CTX *tmp_ctx;
int pipefd[2];
pid_t pid;
- struct ctdb_connection_list *conn_list;
+ struct ctdb_connection_list *conn_list = NULL;
int ret;
tmp_ctx = talloc_new(NULL);
@@ -264,14 +261,11 @@ static void test_connection_list_read_bad(const char *s1)
close(pipefd[1]);
- ret = dup2(pipefd[0], STDIN_FILENO);
- assert(ret != -1);
+ ret = ctdb_connection_list_read(tmp_ctx, pipefd[0], false, &conn_list);
+ assert(ret == EINVAL);
close(pipefd[0]);
- ret = ctdb_connection_list_read(tmp_ctx, false, &conn_list);
- assert(ret == EINVAL);
-
talloc_free(tmp_ctx);
}
diff --git a/ctdb/tools/ctdb.c b/ctdb/tools/ctdb.c
index 771632c03a1..0652a205dbd 100644
--- a/ctdb/tools/ctdb.c
+++ b/ctdb/tools/ctdb.c
@@ -3029,7 +3029,7 @@ static int control_tickle(TALLOC_CTX *mem_ctx, struct ctdb_context *ctdb,
unsigned int num_failed;
/* Client first but the src/dst logic is confused */
- ret = ctdb_connection_list_read(mem_ctx, false, &clist);
+ ret = ctdb_connection_list_read(mem_ctx, 0, false, &clist);
if (ret != 0) {
return ret;
}
@@ -3247,7 +3247,7 @@ static int control_addtickle(TALLOC_CTX *mem_ctx, struct ctdb_context *ctdb,
struct tevent_req *req;
/* Client first but the src/dst logic is confused */
- ret = ctdb_connection_list_read(mem_ctx, false, &clist);
+ ret = ctdb_connection_list_read(mem_ctx, 0, false, &clist);
if (ret != 0) {
return ret;
}
@@ -3312,7 +3312,7 @@ static int control_deltickle(TALLOC_CTX *mem_ctx, struct ctdb_context *ctdb,
struct tevent_req *req;
/* Client first but the src/dst logic is confused */
- ret = ctdb_connection_list_read(mem_ctx, false, &clist);
+ ret = ctdb_connection_list_read(mem_ctx, 0, false, &clist);
if (ret != 0) {
return ret;
}
diff --git a/ctdb/tools/ctdb_killtcp.c b/ctdb/tools/ctdb_killtcp.c
index bd5da0834b7..8537a579670 100644
--- a/ctdb/tools/ctdb_killtcp.c
+++ b/ctdb/tools/ctdb_killtcp.c
@@ -372,7 +372,7 @@ int main(int argc, char **argv)
goto fail;
}
} else {
- ret = ctdb_connection_list_read(mem_ctx, true, &conn_list);
+ ret = ctdb_connection_list_read(mem_ctx, 0, true, &conn_list);
if (ret != 0) {
D_ERR("Unable to parse connections (%s)\n",
strerror(ret));