Write RDB magic using a REDIS_RDB_VERSION define that is defined inside rdb.h

This commit is contained in:
antirez 2012-03-31 17:08:40 +02:00
parent 609ea08445
commit d0ace5a314
2 changed files with 7 additions and 1 deletions

View File

@ -602,6 +602,7 @@ int rdbSave(char *filename) {
dictIterator *di = NULL; dictIterator *di = NULL;
dictEntry *de; dictEntry *de;
char tmpfile[256]; char tmpfile[256];
char magic[10];
int j; int j;
long long now = mstime(); long long now = mstime();
FILE *fp; FILE *fp;
@ -616,7 +617,8 @@ int rdbSave(char *filename) {
} }
rioInitWithFile(&rdb,fp); rioInitWithFile(&rdb,fp);
if (rdbWriteRaw(&rdb,"REDIS0004",9) == -1) goto werr; snprintf(magic,sizeof(magic),"REDIS%04d",REDIS_RDB_VERSION);
if (rdbWriteRaw(&rdb,magic,9) == -1) goto werr;
for (j = 0; j < server.dbnum; j++) { for (j = 0; j < server.dbnum; j++) {
redisDb *db = server.db+j; redisDb *db = server.db+j;

View File

@ -7,6 +7,10 @@
/* TBD: include only necessary headers. */ /* TBD: include only necessary headers. */
#include "redis.h" #include "redis.h"
/* The current RDB version. When the format changes in a way that is no longer
* backward compatible this number gets incremented. */
#define REDIS_RDB_VERSION 4
/* Defines related to the dump file format. To store 32 bits lengths for short /* Defines related to the dump file format. To store 32 bits lengths for short
* keys requires a lot of space, so we check the most significant 2 bits of * keys requires a lot of space, so we check the most significant 2 bits of
* the first byte to interpreter the length: * the first byte to interpreter the length: