summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2014-06-07 17:38:16 +0200
committerantirez <antirez@gmail.com>2014-06-21 15:27:12 +0200
commit8060de98f89e4114af2aed90650e397292ada937 (patch)
tree3a717d9e162d424d8b6bb2d41d8f2584efe6a156
parent41a15205b67331c2caf98da124388c36cb528250 (diff)
downloadredis-8060de98f89e4114af2aed90650e397292ada937.tar.gz
ROLE output improved for slaves.
Info about the replication state with the master added.
-rw-r--r--src/replication.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/replication.c b/src/replication.c
index 4f7616984..4e70efadc 100644
--- a/src/replication.c
+++ b/src/replication.c
@@ -1329,11 +1329,23 @@ void roleCommand(redisClient *c) {
}
setDeferredMultiBulkLength(c,mbcount,slaves);
} else {
+ char *slavestate = NULL;
+
addReplyMultiBulkLen(c,4);
addReplyBulkCBuffer(c,"slave",5);
addReplyBulkCString(c,server.masterhost);
addReplyLongLong(c,server.masterport);
- addReplyLongLong(c,server.master->reploff);
+ switch(server.repl_state) {
+ case REDIS_REPL_NONE: slavestate = "none"; break;
+ case REDIS_REPL_CONNECT: slavestate = "connect"; break;
+ case REDIS_REPL_CONNECTING: slavestate = "connecting"; break;
+ case REDIS_REPL_RECEIVE_PONG: /* see next */
+ case REDIS_REPL_TRANSFER: slavestate = "sync"; break;
+ case REDIS_REPL_CONNECTED: slavestate = "connected"; break;
+ default: slavestate = "unknown"; break;
+ }
+ addReplyBulkCString(c,slavestate);
+ addReplyLongLong(c,server.master ? server.master->reploff : -1);
}
}