Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 25 additions & 1 deletion redismodule.h
Original file line number Diff line number Diff line change
Expand Up @@ -520,7 +520,8 @@ typedef void (*RedisModuleEventLoopOneShotFunc)(void *user_data);
#define REDISMODULE_EVENT_KEY 17
#define REDISMODULE_EVENT_CLUSTER_SLOT_MIGRATION 18
#define REDISMODULE_EVENT_CLUSTER_SLOT_MIGRATION_TRIM 19
#define _REDISMODULE_EVENT_NEXT 20 /* Next event flag, should be updated if a new event added. */
#define REDISMODULE_EVENT_CLUSTER_TOPOLOGY_CHANGE 20
#define _REDISMODULE_EVENT_NEXT 21 /* Next event flag, should be updated if a new event added. */

typedef struct RedisModuleEvent {
uint64_t id; /* REDISMODULE_EVENT_... defines. */
Expand Down Expand Up @@ -639,6 +640,10 @@ static const RedisModuleEvent
RedisModuleEvent_ClusterSlotMigrationTrim = {
REDISMODULE_EVENT_CLUSTER_SLOT_MIGRATION_TRIM,
1
},
RedisModuleEvent_ClusterTopologyChange = {
REDISMODULE_EVENT_CLUSTER_TOPOLOGY_CHANGE,
1
};

/* Those are values that are used for the 'subevent' callback argument. */
Expand Down Expand Up @@ -731,6 +736,11 @@ static const RedisModuleEvent
#define REDISMODULE_SUBEVENT_CLUSTER_SLOT_MIGRATION_TRIM_BACKGROUND 2
#define _REDISMODULE_SUBEVENT_CLUSTER_SLOT_MIGRATION_TRIM_NEXT 3

#define REDISMODULE_SUBEVENT_CLUSTER_TOPOLOGY_CHANGE_STARTUP 0
#define REDISMODULE_SUBEVENT_CLUSTER_TOPOLOGY_CHANGE_TOPOLOGY_CHANGED 1
#define REDISMODULE_SUBEVENT_CLUSTER_TOPOLOGY_CHANGE_PRIMARY_CHANGED 2
#define _REDISMODULE_SUBEVENT_CLUSTER_TOPOLOGY_CHANGE_NEXT 3

/* RedisModuleClientInfo flags. */
#define REDISMODULE_CLIENTINFO_FLAG_SSL (1<<0)
#define REDISMODULE_CLIENTINFO_FLAG_PUBSUB (1<<1)
Expand Down Expand Up @@ -895,6 +905,20 @@ typedef struct RedisModuleClusterSlotMigrationTrimInfo {

#define RedisModuleClusterSlotMigrationTrimInfo RedisModuleClusterSlotMigrationTrimInfoV1

#define REDISMODULE_CLUSTER_TOPOLOGY_CHANGE_INFO_VERSION 1

typedef struct RedisModuleClusterTopologyChangeInfo {
uint64_t version; /* Not used since this structure is never passed
from the module to the core right now. Here
for future compatibility. */
int cluster_ok; /* Non-zero if the cluster state is OK, i.e. all the
required slots are covered and reachable. */
uint32_t num_primaries; /* Number of primaries currently serving at least
one slot. */
} RedisModuleClusterTopologyChangeInfoV1;

#define RedisModuleClusterTopologyChangeInfo RedisModuleClusterTopologyChangeInfoV1

typedef enum {
REDISMODULE_ACL_LOG_AUTH = 0, /* Authentication failure */
REDISMODULE_ACL_LOG_CMD, /* Command authorization failure */
Expand Down