mirror of
https://github.com/samba-team/samba.git
synced 2025-02-26 21:57:41 +03:00
merged tridge's code
(This used to be ctdb commit 85d23c52462f6c706626022c3d2ddf731c93599f)
This commit is contained in:
commit
36a49682ed
@ -175,6 +175,7 @@ int ctdb_start(struct ctdb_context *ctdb)
|
||||
static void ctdb_recv_pkt(struct ctdb_context *ctdb, uint8_t *data, uint32_t length)
|
||||
{
|
||||
struct ctdb_req_header *hdr;
|
||||
|
||||
if (length < sizeof(*hdr)) {
|
||||
ctdb_set_error(ctdb, "Bad packet length %d\n", length);
|
||||
return;
|
||||
@ -229,7 +230,7 @@ static void ctdb_node_dead(struct ctdb_node *node)
|
||||
}
|
||||
|
||||
/*
|
||||
called by the transport layer when a node is dead
|
||||
called by the transport layer when a node is connected
|
||||
*/
|
||||
static void ctdb_node_connected(struct ctdb_node *node)
|
||||
{
|
||||
|
@ -38,13 +38,6 @@ static void ctdb_tcp_node_dead(struct event_context *ev, struct timed_event *te,
|
||||
struct ctdb_tcp_node *tnode = talloc_get_type(node->private,
|
||||
struct ctdb_tcp_node);
|
||||
|
||||
/* flush the queue */
|
||||
while (tnode->queue) {
|
||||
struct ctdb_tcp_packet *pkt = tnode->queue;
|
||||
DLIST_REMOVE(tnode->queue, pkt);
|
||||
talloc_free(pkt);
|
||||
}
|
||||
|
||||
/* start a new connect cycle to try to re-establish the
|
||||
link */
|
||||
talloc_free(tnode->fde);
|
||||
@ -68,6 +61,7 @@ void ctdb_tcp_node_write(struct event_context *ev, struct fd_event *fde,
|
||||
always an error, as we have separate read and write
|
||||
sockets. In future we may combine them, but for now it must
|
||||
mean that the socket is dead, so we try to reconnect */
|
||||
node->ctdb->upcalls->node_dead(node);
|
||||
talloc_free(tnode->fde);
|
||||
close(tnode->fd);
|
||||
tnode->fd = -1;
|
||||
@ -170,10 +164,9 @@ void ctdb_tcp_incoming_read(struct event_context *ev, struct fd_event *fde,
|
||||
in->ctdb->upcalls->recv_pkt(in->ctdb, d2, len);
|
||||
data += len;
|
||||
nread -= len;
|
||||
return;
|
||||
}
|
||||
|
||||
if (nread < 4 || *(uint32_t *)data > nread) {
|
||||
if (nread > 0) {
|
||||
/* we have only part of a packet */
|
||||
if (data_base == data) {
|
||||
in->partial.data = data;
|
||||
|
Loading…
x
Reference in New Issue
Block a user