From 026b9483db2dd1f99deb1f4b398f93f7edc0404d 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 05c17f87..149b9286 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 0eb74675..4408925c 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;