diff options
author | Andrew Tridgell <tridge@samba.org> | 2007-04-26 15:28:13 +0200 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2007-04-26 15:28:13 +0200 |
commit | c23d1694db4e19a7349300ed475bf5f7688c522b (patch) | |
tree | 3ba6fc2460f8267b700f58eb68f4361a22724b86 /ctdb/tcp/tcp_init.c | |
parent | 8ae14b4052bc565bee5ff8556121f613155dddd3 (diff) | |
parent | 9d521cf16a601dcce2dea2ba52c33dbeac738150 (diff) | |
download | samba-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.c | 51 |
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 }; |