From 27c1fe7c94de59a858a89eb7b37b26bf88a29b63 Mon Sep 17 00:00:00 2001 From: antirez Date: Wed, 20 Mar 2013 10:32:00 +0100 Subject: [PATCH] Cluster: add sender flags in cluster bus messages header. Sender flags were not propagated for the sender, but only for nodes in the gossip section. This is odd and in the next commits we'll need to get updated flags for the sender node, so this commit adds a new field in the cluster messages header. The message header is the same size as we reused some free space that was marked as 'unused' because of alignment concerns. --- src/cluster.c | 1 + src/redis.h | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/cluster.c b/src/cluster.c index 05c17f873..149b9286f 100644 --- a/src/cluster.c +++ b/src/cluster.c @@ -1156,6 +1156,7 @@ void clusterBuildMessageHdr(clusterMsg *hdr, int type) { REDIS_CLUSTER_NAMELEN); } hdr->port = htons(server.port); + hdr->flags = htons(server.cluster->myself->flags); hdr->state = server.cluster->state; memset(hdr->configdigest,0,32); /* FIXME: set config digest */ diff --git a/src/redis.h b/src/redis.h index 0eb746759..4408925c2 100644 --- a/src/redis.h +++ b/src/redis.h @@ -648,8 +648,9 @@ typedef struct { char slaveof[REDIS_CLUSTER_NAMELEN]; char configdigest[32]; uint16_t port; /* Sender TCP base port */ + uint16_t flags; /* Sender node flags */ unsigned char state; /* Cluster state from the POV of the sender */ - unsigned char notused[5]; /* Reserved for future use. For alignment. */ + unsigned char notused[3]; /* Reserved for future use. For alignment. */ union clusterMsgData data; } clusterMsg;