From 62ec599c363f36a8f2b0b7d39c1533895f491631 Mon Sep 17 00:00:00 2001 From: antirez Date: Thu, 4 Nov 2010 17:35:03 +0100 Subject: [PATCH] typos and minor stuff fixed in the new non blocking replication code --- src/redis.c | 2 +- src/redis.h | 4 ++-- src/replication.c | 17 ++++++++++------- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/redis.c b/src/redis.c index 7aadf0ddc..21a5bd19d 100644 --- a/src/redis.c +++ b/src/redis.c @@ -635,7 +635,7 @@ int serverCron(struct aeEventLoop *eventLoop, long long id, void *clientData) { /* Replication cron function -- used to reconnect to master and * to detect transfer failures. */ - if (!(loops % 10)) replicationCron(void); + if (!(loops % 10)) replicationCron(); return 100; } diff --git a/src/redis.h b/src/redis.h index beb13081e..d26e3c797 100644 --- a/src/redis.h +++ b/src/redis.h @@ -152,7 +152,7 @@ /* Slave replication state - slave side */ #define REDIS_REPL_NONE 0 /* No active replication */ #define REDIS_REPL_CONNECT 1 /* Must connect to master */ -#define REDIS_REPL_TRANFER 2 /* Receiving .rdb from master */ +#define REDIS_REPL_TRANSFER 2 /* Receiving .rdb from master */ #define REDIS_REPL_CONNECTED 3 /* Connected to master */ /* Slave replication state - from the point of view of master @@ -408,7 +408,7 @@ struct redisServer { int masterport; redisClient *master; /* client that is master for this slave */ int replstate; /* replication status if the instance is a slave */ - off_t repl_transfer_left; /* bytes left reading .rdb if this is a slave */ + off_t repl_transfer_left; /* bytes left reading .rdb */ int repl_transfer_s; /* slave -> master SYNC socket */ int repl_transfer_fd; /* slave -> master SYNC temp file descriptor */ char *repl_transfer_tmpfile; /* slave-> master SYNC temp file name */ diff --git a/src/replication.c b/src/replication.c index e58a9013d..38914ef10 100644 --- a/src/replication.c +++ b/src/replication.c @@ -306,11 +306,14 @@ void replicationAbortSyncTransfer(void) { /* Asynchronously read the SYNC payload we receive from a master */ void readSyncBulkPayload(aeEventLoop *el, int fd, void *privdata, int mask) { - unsigned char buf[4096] - size_t nread, readlen; + unsigned char buf[4096]; + ssize_t nread, readlen; + REDIS_NOTUSED(el); + REDIS_NOTUSED(privdata); + REDIS_NOTUSED(mask); - readlen = (server.repl_transfer_left < sizeof(buf)) ? - server.repl_transfer_left : sizeof(buf); + readlen = (server.repl_transfer_left < (signed)sizeof(buf)) ? + server.repl_transfer_left : (signed)sizeof(buf); nread = read(fd,buf,readlen); if (nread <= 0) { redisLog(REDIS_WARNING,"I/O error trying to sync with MASTER: %s", @@ -425,8 +428,8 @@ int syncWithMaster(void) { } /* Setup the non blocking download of the bulk file. */ - if (aeCreateFileEvent(server.el, fd, AE_READABLE,readSyncBulkPayload) == - AE_ERR) + if (aeCreateFileEvent(server.el, fd, AE_READABLE, readSyncBulkPayload, NULL) + == AE_ERR) { close(fd); redisLog(REDIS_WARNING,"Can't create readable event for SYNC"); @@ -481,7 +484,7 @@ void replicationCron(void) { } /* Check if we should connect to a MASTER */ - if (server.replstate == REDIS_REPL_CONNECT && !(loops % 10)) { + if (server.replstate == REDIS_REPL_CONNECT) { redisLog(REDIS_NOTICE,"Connecting to MASTER..."); if (syncWithMaster() == REDIS_OK) { redisLog(REDIS_NOTICE,"MASTER <-> SLAVE sync succeeded"); -- GitLab