diff options
Diffstat (limited to 'ctdb')
-rw-r--r-- | ctdb/protocol/protocol_util.c | 6 | ||||
-rw-r--r-- | ctdb/protocol/protocol_util.h | 4 | ||||
-rw-r--r-- | ctdb/tests/src/protocol_util_test.c | 18 | ||||
-rw-r--r-- | ctdb/tools/ctdb.c | 6 | ||||
-rw-r--r-- | ctdb/tools/ctdb_killtcp.c | 2 |
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)); |