]> git.saurik.com Git - redis.git/blobdiff - redis.c
random tested mode for test-redis.tcl, minor other stuff, version switched to 0.8
[redis.git] / redis.c
diff --git a/redis.c b/redis.c
index c7b10dfde8841bba3bd7b28c434e54eb8a79debe..58b8560603bb8c63cd5caad062f1f94a48e13cea 100644 (file)
--- a/redis.c
+++ b/redis.c
@@ -27,7 +27,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
-#define REDIS_VERSION "0.07"
+#define REDIS_VERSION "0.08"
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -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");