Now MONITOR/SYNC cannot be issued multiple times
This commit is contained in:
parent
87eca72788
commit
cf3f0c012d
2
TODO
2
TODO
@ -34,3 +34,5 @@ ROLLBACK command:
|
||||
COMMIT
|
||||
|
||||
but this sucks since there is no way to check the error message.
|
||||
|
||||
- Prevent the client to issue SYNC or MONITOR multiple times
|
||||
|
6
redis.c
6
redis.c
@ -2919,6 +2919,9 @@ static void syncCommand(redisClient *c) {
|
||||
time_t start = time(NULL);
|
||||
char sizebuf[32];
|
||||
|
||||
/* ignore SYNC if aleady slave or in monitor mode */
|
||||
if (c->flags & REDIS_SLAVE) return;
|
||||
|
||||
redisLog(REDIS_NOTICE,"Slave ask for syncronization");
|
||||
if (flushClientOutput(c) == REDIS_ERR || saveDb(server.dbfilename) != REDIS_OK)
|
||||
goto closeconn;
|
||||
@ -3029,6 +3032,9 @@ static int syncWithMaster(void) {
|
||||
}
|
||||
|
||||
static void monitorCommand(redisClient *c) {
|
||||
/* ignore MONITOR if aleady slave or in monitor mode */
|
||||
if (c->flags & REDIS_SLAVE) return;
|
||||
|
||||
c->flags |= (REDIS_SLAVE|REDIS_MONITOR);
|
||||
c->slaveseldb = 0;
|
||||
if (!listAddNodeTail(server.monitors,c)) oom("listAddNodeTail");
|
||||
|
Loading…
x
Reference in New Issue
Block a user