diff options
author | Andrew Tridgell <tridge@samba.org> | 2007-10-22 16:41:11 +1000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2007-10-22 16:41:11 +1000 |
commit | 8e22bca5cab9a5d28e45c11de8844c6c7a24d5e3 (patch) | |
tree | 740576ddb4d93d01d2d789e90eb668970e285dab /ctdb/tcp/tcp_init.c | |
parent | 2d8afd85d5b851f979169aac1d9e9a590246d785 (diff) | |
download | samba-8e22bca5cab9a5d28e45c11de8844c6c7a24d5e3.tar.gz samba-8e22bca5cab9a5d28e45c11de8844c6c7a24d5e3.tar.xz samba-8e22bca5cab9a5d28e45c11de8844c6c7a24d5e3.zip |
fixed a double close of a socket, leading to an EPOLL error
(This used to be ctdb commit bbe8ad842bdfedd37ef14a6be07ad939113fe9b1)
Diffstat (limited to 'ctdb/tcp/tcp_init.c')
-rw-r--r-- | ctdb/tcp/tcp_init.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/ctdb/tcp/tcp_init.c b/ctdb/tcp/tcp_init.c index 1b186c3f40..a47a18d298 100644 --- a/ctdb/tcp/tcp_init.c +++ b/ctdb/tcp/tcp_init.c @@ -80,8 +80,9 @@ static int ctdb_tcp_start(struct ctdb_context *ctdb) struct ctdb_tcp_node *tnode = talloc_get_type( node->private_data, struct ctdb_tcp_node); if (!ctdb_same_address(&ctdb->address, &node->address)) { - event_add_timed(ctdb->ev, tnode, timeval_zero(), - ctdb_tcp_node_connect, node); + tnode->connect_te = event_add_timed(ctdb->ev, tnode, + timeval_zero(), + ctdb_tcp_node_connect, node); } } @@ -99,11 +100,10 @@ static void ctdb_tcp_restart(struct ctdb_node *node) DEBUG(0,("Tearing down connection to dead node :%d\n", node->pnn)); - tnode->fd = -1; - ctdb_queue_set_fd(tnode->out_queue, -1); + ctdb_tcp_stop_connection(node); - event_add_timed(node->ctdb->ev, tnode, timeval_zero(), - ctdb_tcp_node_connect, node); + tnode->connect_te = event_add_timed(node->ctdb->ev, tnode, timeval_zero(), + ctdb_tcp_node_connect, node); } |