diff options
author | antirez <antirez@gmail.com> | 2014-06-07 17:38:16 +0200 |
---|---|---|
committer | antirez <antirez@gmail.com> | 2014-06-21 15:27:12 +0200 |
commit | 8060de98f89e4114af2aed90650e397292ada937 (patch) | |
tree | 3a717d9e162d424d8b6bb2d41d8f2584efe6a156 | |
parent | 41a15205b67331c2caf98da124388c36cb528250 (diff) | |
download | redis-8060de98f89e4114af2aed90650e397292ada937.tar.gz |
ROLE output improved for slaves.
Info about the replication state with the master added.
-rw-r--r-- | src/replication.c | 14 |
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); } } |