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
|
COMMIT
|
||||||
|
|
||||||
but this sucks since there is no way to check the error message.
|
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);
|
time_t start = time(NULL);
|
||||||
char sizebuf[32];
|
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");
|
redisLog(REDIS_NOTICE,"Slave ask for syncronization");
|
||||||
if (flushClientOutput(c) == REDIS_ERR || saveDb(server.dbfilename) != REDIS_OK)
|
if (flushClientOutput(c) == REDIS_ERR || saveDb(server.dbfilename) != REDIS_OK)
|
||||||
goto closeconn;
|
goto closeconn;
|
||||||
@ -3029,6 +3032,9 @@ static int syncWithMaster(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void monitorCommand(redisClient *c) {
|
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->flags |= (REDIS_SLAVE|REDIS_MONITOR);
|
||||||
c->slaveseldb = 0;
|
c->slaveseldb = 0;
|
||||||
if (!listAddNodeTail(server.monitors,c)) oom("listAddNodeTail");
|
if (!listAddNodeTail(server.monitors,c)) oom("listAddNodeTail");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user