summaryrefslogtreecommitdiffstats
path: root/ctdb/tcp/tcp_init.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2007-04-26 15:28:13 +0200
committerAndrew Tridgell <tridge@samba.org>2007-04-26 15:28:13 +0200
commitc23d1694db4e19a7349300ed475bf5f7688c522b (patch)
tree3ba6fc2460f8267b700f58eb68f4361a22724b86 /ctdb/tcp/tcp_init.c
parent8ae14b4052bc565bee5ff8556121f613155dddd3 (diff)
parent9d521cf16a601dcce2dea2ba52c33dbeac738150 (diff)
downloadsamba-c23d1694db4e19a7349300ed475bf5f7688c522b.tar.gz
samba-c23d1694db4e19a7349300ed475bf5f7688c522b.tar.xz
samba-c23d1694db4e19a7349300ed475bf5f7688c522b.zip
merge from peter
(This used to be ctdb commit ddf390da2bceb5b3f431433aec424d99d98c05f4)
Diffstat (limited to 'ctdb/tcp/tcp_init.c')
-rw-r--r--ctdb/tcp/tcp_init.c51
1 files changed, 29 insertions, 22 deletions
diff --git a/ctdb/tcp/tcp_init.c b/ctdb/tcp/tcp_init.c
index 9b54bb75ba..35b43bd5e2 100644
--- a/ctdb/tcp/tcp_init.c
+++ b/ctdb/tcp/tcp_init.c
@@ -26,6 +26,25 @@
#include "../include/ctdb_private.h"
#include "ctdb_tcp.h"
+
+/*
+ initialise tcp portion of a ctdb node
+*/
+static int ctdb_tcp_add_node(struct ctdb_node *node)
+{
+ struct ctdb_tcp_node *tnode;
+ tnode = talloc_zero(node, struct ctdb_tcp_node);
+ CTDB_NO_MEMORY(node->ctdb, tnode);
+
+ tnode->fd = -1;
+ node->private_data = tnode;
+
+ tnode->queue = ctdb_queue_setup(node->ctdb, node, tnode->fd, CTDB_TCP_ALIGNMENT,
+ ctdb_tcp_tnode_cb, node);
+
+ return 0;
+}
+
/*
start the protocol going
*/
@@ -33,6 +52,13 @@ static int ctdb_tcp_start(struct ctdb_context *ctdb)
{
int i;
+ for (i=0; i<ctdb->num_nodes; i++) {
+ if (ctdb_tcp_add_node(ctdb->nodes[i]) != 0) {
+ DEBUG(0, ("methods->add_node failed at %d\n", i));
+ return -1;
+ }
+ }
+
/* listen on our own address */
if (ctdb_tcp_listen(ctdb) != 0) return -1;
@@ -51,25 +77,6 @@ static int ctdb_tcp_start(struct ctdb_context *ctdb)
/*
- initialise tcp portion of a ctdb node
-*/
-static int ctdb_tcp_add_node(struct ctdb_node *node)
-{
- struct ctdb_tcp_node *tnode;
- tnode = talloc_zero(node, struct ctdb_tcp_node);
- CTDB_NO_MEMORY(node->ctdb, tnode);
-
- tnode->fd = -1;
- node->private_data = tnode;
-
- tnode->queue = ctdb_queue_setup(node->ctdb, node, tnode->fd, CTDB_TCP_ALIGNMENT,
- ctdb_tcp_tnode_cb, node);
-
- return 0;
-}
-
-
-/*
transport packet allocator - allows transport to control memory for packets
*/
static void *ctdb_tcp_allocate_pkt(TALLOC_CTX *mem_ctx, size_t size)
@@ -83,9 +90,9 @@ static void *ctdb_tcp_allocate_pkt(TALLOC_CTX *mem_ctx, size_t size)
static const struct ctdb_methods ctdb_tcp_methods = {
- .start = ctdb_tcp_start,
- .add_node = ctdb_tcp_add_node,
- .queue_pkt = ctdb_tcp_queue_pkt,
+ .start = ctdb_tcp_start,
+ .queue_pkt = ctdb_tcp_queue_pkt,
+ .add_node = ctdb_tcp_add_node,
.allocate_pkt = ctdb_tcp_allocate_pkt
};