mirror of
https://github.com/fluencelabs/redis
synced 2025-03-30 22:31:03 +00:00
Cluster: added signature + version in bus packets.
This commit is contained in:
parent
100cd7b21e
commit
007e1c7cb2
@ -1166,7 +1166,9 @@ int clusterProcessPacket(clusterLink *link) {
|
|||||||
type, (unsigned long) totlen);
|
type, (unsigned long) totlen);
|
||||||
|
|
||||||
/* Perform sanity checks */
|
/* Perform sanity checks */
|
||||||
if (totlen < 8) return 1;
|
if (totlen < 16) return 1; /* At least signature, totlen, count. */
|
||||||
|
if (hdr->sig[0] != 'R' || hdr->sig[1] != 'C' ||
|
||||||
|
hdr->sig[2] != 'i' || hdr->sig[3] != 'b') return 1; /* Bad signature. */
|
||||||
if (totlen > sdslen(link->rcvbuf)) return 1;
|
if (totlen > sdslen(link->rcvbuf)) return 1;
|
||||||
if (type == CLUSTERMSG_TYPE_PING || type == CLUSTERMSG_TYPE_PONG ||
|
if (type == CLUSTERMSG_TYPE_PING || type == CLUSTERMSG_TYPE_PONG ||
|
||||||
type == CLUSTERMSG_TYPE_MEET)
|
type == CLUSTERMSG_TYPE_MEET)
|
||||||
@ -1677,6 +1679,10 @@ void clusterBuildMessageHdr(clusterMsg *hdr, int type) {
|
|||||||
myself->slaveof : myself;
|
myself->slaveof : myself;
|
||||||
|
|
||||||
memset(hdr,0,sizeof(*hdr));
|
memset(hdr,0,sizeof(*hdr));
|
||||||
|
hdr->sig[0] = 'R';
|
||||||
|
hdr->sig[1] = 'C';
|
||||||
|
hdr->sig[2] = 'i';
|
||||||
|
hdr->sig[3] = 'b';
|
||||||
hdr->type = htons(type);
|
hdr->type = htons(type);
|
||||||
memcpy(hdr->sender,myself->name,REDIS_CLUSTER_NAMELEN);
|
memcpy(hdr->sender,myself->name,REDIS_CLUSTER_NAMELEN);
|
||||||
|
|
||||||
|
@ -195,6 +195,9 @@ union clusterMsgData {
|
|||||||
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
char sig[4]; /* Siganture "RCib" (Redis Cluster internal bus). */
|
||||||
|
uint16_t ver; /* Protocol version, currently set to 0. */
|
||||||
|
uint16_t notused0; /* 2 bytes not used. */
|
||||||
uint32_t totlen; /* Total length of this message */
|
uint32_t totlen; /* Total length of this message */
|
||||||
uint16_t type; /* Message type */
|
uint16_t type; /* Message type */
|
||||||
uint16_t count; /* Only used for some kind of messages. */
|
uint16_t count; /* Only used for some kind of messages. */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user