diff options
author | Andrew Tridgell <tridge@samba.org> | 2007-10-19 09:39:07 +1000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2007-10-19 09:39:07 +1000 |
commit | f47f758fe86dcaa77c8d6fdc67553a0f0dbfe63a (patch) | |
tree | dbfeb12c18b6a9484c02de57dba5a5ccf9920a35 /ctdb/tcp | |
parent | 623e216dcf02de0afbf9c5cea350818943eafdde (diff) | |
parent | e81e008a36bf94248acef72aa526f153bbec32eb (diff) | |
download | samba-f47f758fe86dcaa77c8d6fdc67553a0f0dbfe63a.tar.gz samba-f47f758fe86dcaa77c8d6fdc67553a0f0dbfe63a.tar.xz samba-f47f758fe86dcaa77c8d6fdc67553a0f0dbfe63a.zip |
merge from ronnie
(This used to be ctdb commit d444fdc7782496abe4b27003b647ac49fb52e6be)
Diffstat (limited to 'ctdb/tcp')
-rw-r--r-- | ctdb/tcp/tcp_init.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/ctdb/tcp/tcp_init.c b/ctdb/tcp/tcp_init.c index f5d4e4c1d6b..1b186c3f400 100644 --- a/ctdb/tcp/tcp_init.c +++ b/ctdb/tcp/tcp_init.c @@ -88,6 +88,24 @@ static int ctdb_tcp_start(struct ctdb_context *ctdb) return 0; } +/* + shutdown and try to restart a connection to a node after it has been + disconnected +*/ +static void ctdb_tcp_restart(struct ctdb_node *node) +{ + struct ctdb_tcp_node *tnode = talloc_get_type( + node->private_data, struct ctdb_tcp_node); + + DEBUG(0,("Tearing down connection to dead node :%d\n", node->pnn)); + + tnode->fd = -1; + ctdb_queue_set_fd(tnode->out_queue, -1); + + event_add_timed(node->ctdb->ev, tnode, timeval_zero(), + ctdb_tcp_node_connect, node); +} + /* shutdown the transport @@ -121,6 +139,7 @@ static const struct ctdb_methods ctdb_tcp_methods = { .add_node = ctdb_tcp_add_node, .allocate_pkt = ctdb_tcp_allocate_pkt, .shutdown = ctdb_tcp_shutdown, + .restart = ctdb_tcp_restart, }; /* |