]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
ctdb-tcp: Factor out function ctdb_tcp_start_outgoing()
authorMartin Schwenke <martin@meltin.net>
Fri, 6 Mar 2020 04:59:32 +0000 (15:59 +1100)
committerKarolin Seeger <kseeger@samba.org>
Tue, 24 Mar 2020 07:26:18 +0000 (07:26 +0000)
BUG: https://bugzilla.samba.org/show_bug.cgi?id=14295

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Signed-off-by: Martin Schwenke <martin@meltin.net>
(cherry picked from commit 3c8747fe29486a4f95308b335a5e3ec1807f62cb)

ctdb/tcp/tcp_connect.c

index 9c09f3f4e74b338a296117967f69899e692cdaa8..6065829a44e9137d7c29857887b3f9b4299cecd5 100644 (file)
@@ -164,11 +164,8 @@ static void ctdb_node_connect_write(struct tevent_context *ev,
 /*
   called when we should try and establish a tcp connection to a node
 */
-void ctdb_tcp_node_connect(struct tevent_context *ev, struct tevent_timer *te,
-                          struct timeval t, void *private_data)
+static void ctdb_tcp_start_outgoing(struct ctdb_node *node)
 {
-       struct ctdb_node *node = talloc_get_type(private_data,
-                                                struct ctdb_node);
        struct ctdb_tcp_node *tnode = talloc_get_type(node->transport_data,
                                                      struct ctdb_tcp_node);
        struct ctdb_context *ctdb = node->ctdb;
@@ -178,8 +175,6 @@ void ctdb_tcp_node_connect(struct tevent_context *ev, struct tevent_timer *te,
         ctdb_sock_addr sock_out;
        int ret;
 
-       ctdb_tcp_stop_outgoing(node);
-
        sock_out = node->address;
 
        tnode->out_fd = socket(sock_out.sa.sa_family, SOCK_STREAM, IPPROTO_TCP);
@@ -270,6 +265,18 @@ failed:
                                             node);
 }
 
+void ctdb_tcp_node_connect(struct tevent_context *ev,
+                          struct tevent_timer *te,
+                          struct timeval t,
+                          void *private_data)
+{
+       struct ctdb_node *node = talloc_get_type_abort(private_data,
+                                                      struct ctdb_node);
+
+       ctdb_tcp_stop_outgoing(node);
+       ctdb_tcp_start_outgoing(node);
+}
+
 /*
   called when we get contacted by another node
   currently makes no attempt to check if the connection is really from a ctdb