Add version override command for users that need compatibility with Redis
Former-commit-id: 5a78a3bc46335a844490fe00e657d68313680cbe
This commit is contained in:
parent
359e871737
commit
c32ae00cb8
@ -34,6 +34,8 @@
|
|||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
|
||||||
|
const char *KEYDB_SET_VERSION = KEYDB_REAL_VERSION;
|
||||||
|
|
||||||
/*-----------------------------------------------------------------------------
|
/*-----------------------------------------------------------------------------
|
||||||
* Config file name-value maps.
|
* Config file name-value maps.
|
||||||
*----------------------------------------------------------------------------*/
|
*----------------------------------------------------------------------------*/
|
||||||
@ -859,6 +861,9 @@ void loadServerConfigFromString(char *config) {
|
|||||||
if ((server.enable_multimaster = yesnotoi(argv[1])) == -1) {
|
if ((server.enable_multimaster = yesnotoi(argv[1])) == -1) {
|
||||||
err = "argument must be 'yes' or 'no'"; goto loaderr;
|
err = "argument must be 'yes' or 'no'"; goto loaderr;
|
||||||
}
|
}
|
||||||
|
} else if (!strcasecmp(argv[0], "version-override") && argc == 2) {
|
||||||
|
KEYDB_SET_VERSION = zstrdup(argv[1]);
|
||||||
|
serverLog(LL_WARNING, "Warning version is overriden to: %s\n", KEYDB_SET_VERSION);
|
||||||
} else {
|
} else {
|
||||||
err = "Bad directive or wrong number of arguments"; goto loaderr;
|
err = "Bad directive or wrong number of arguments"; goto loaderr;
|
||||||
}
|
}
|
||||||
@ -1413,6 +1418,7 @@ void configGetCommand(client *c) {
|
|||||||
config_get_string_field("pidfile",server.pidfile);
|
config_get_string_field("pidfile",server.pidfile);
|
||||||
config_get_string_field("slave-announce-ip",server.slave_announce_ip);
|
config_get_string_field("slave-announce-ip",server.slave_announce_ip);
|
||||||
config_get_string_field("replica-announce-ip",server.slave_announce_ip);
|
config_get_string_field("replica-announce-ip",server.slave_announce_ip);
|
||||||
|
config_get_string_field("version-override",KEYDB_SET_VERSION);
|
||||||
|
|
||||||
/* Numerical values */
|
/* Numerical values */
|
||||||
config_get_numerical_field("maxmemory",server.maxmemory);
|
config_get_numerical_field("maxmemory",server.maxmemory);
|
||||||
@ -2378,6 +2384,7 @@ int rewriteConfig(char *path) {
|
|||||||
rewriteConfigYesNoOption(state,"dynamic-hz",server.dynamic_hz,CONFIG_DEFAULT_DYNAMIC_HZ);
|
rewriteConfigYesNoOption(state,"dynamic-hz",server.dynamic_hz,CONFIG_DEFAULT_DYNAMIC_HZ);
|
||||||
rewriteConfigYesNoOption(state,"active-replica",server.fActiveReplica,CONFIG_DEFAULT_ACTIVE_REPLICA);
|
rewriteConfigYesNoOption(state,"active-replica",server.fActiveReplica,CONFIG_DEFAULT_ACTIVE_REPLICA);
|
||||||
rewriteConfigYesNoOption(state,"multi-master",server.enable_multimaster,CONFIG_DEFAULT_ENABLE_MULTIMASTER);
|
rewriteConfigYesNoOption(state,"multi-master",server.enable_multimaster,CONFIG_DEFAULT_ENABLE_MULTIMASTER);
|
||||||
|
rewriteConfigStringOption(state, "version-override",KEYDB_SET_VERSION,KEYDB_REAL_VERSION);
|
||||||
|
|
||||||
/* Rewrite Sentinel config if in Sentinel mode. */
|
/* Rewrite Sentinel config if in Sentinel mode. */
|
||||||
if (server.sentinel_mode) rewriteConfigSentinelOption(state);
|
if (server.sentinel_mode) rewriteConfigSentinelOption(state);
|
||||||
|
@ -1362,7 +1362,7 @@ void sigsegvHandler(int sig, siginfo_t *info, void *secret) {
|
|||||||
|
|
||||||
bugReportStart();
|
bugReportStart();
|
||||||
serverLog(LL_WARNING,
|
serverLog(LL_WARNING,
|
||||||
"Redis %s crashed by signal: %d", REDIS_VERSION, sig);
|
"Redis %s crashed by signal: %d", KEYDB_REAL_VERSION, sig);
|
||||||
if (eip != NULL) {
|
if (eip != NULL) {
|
||||||
serverLog(LL_WARNING,
|
serverLog(LL_WARNING,
|
||||||
"Crashed running the instruction at: %p", eip);
|
"Crashed running the instruction at: %p", eip);
|
||||||
|
@ -2557,7 +2557,7 @@ void helloCommand(client *c) {
|
|||||||
addReplyBulkCString(c,"redis");
|
addReplyBulkCString(c,"redis");
|
||||||
|
|
||||||
addReplyBulkCString(c,"version");
|
addReplyBulkCString(c,"version");
|
||||||
addReplyBulkCString(c,REDIS_VERSION);
|
addReplyBulkCString(c,KEYDB_SET_VERSION);
|
||||||
|
|
||||||
addReplyBulkCString(c,"proto");
|
addReplyBulkCString(c,"proto");
|
||||||
addReplyLongLong(c,3);
|
addReplyLongLong(c,3);
|
||||||
|
@ -1074,7 +1074,7 @@ int rdbSaveInfoAuxFields(rio *rdb, int flags, rdbSaveInfo *rsi) {
|
|||||||
int aof_preamble = (flags & RDB_SAVE_AOF_PREAMBLE) != 0;
|
int aof_preamble = (flags & RDB_SAVE_AOF_PREAMBLE) != 0;
|
||||||
|
|
||||||
/* Add a few fields about the state when the RDB was created. */
|
/* Add a few fields about the state when the RDB was created. */
|
||||||
if (rdbSaveAuxFieldStrStr(rdb,"redis-ver",REDIS_VERSION) == -1) return -1;
|
if (rdbSaveAuxFieldStrStr(rdb,"redis-ver",KEYDB_REAL_VERSION) == -1) return -1;
|
||||||
if (rdbSaveAuxFieldStrInt(rdb,"redis-bits",redis_bits) == -1) return -1;
|
if (rdbSaveAuxFieldStrInt(rdb,"redis-bits",redis_bits) == -1) return -1;
|
||||||
if (rdbSaveAuxFieldStrInt(rdb,"ctime",time(NULL)) == -1) return -1;
|
if (rdbSaveAuxFieldStrInt(rdb,"ctime",time(NULL)) == -1) return -1;
|
||||||
if (rdbSaveAuxFieldStrInt(rdb,"used-mem",zmalloc_used_memory()) == -1) return -1;
|
if (rdbSaveAuxFieldStrInt(rdb,"used-mem",zmalloc_used_memory()) == -1) return -1;
|
||||||
|
@ -282,7 +282,7 @@ static int helpEntriesLen;
|
|||||||
|
|
||||||
static sds cliVersion(void) {
|
static sds cliVersion(void) {
|
||||||
sds version;
|
sds version;
|
||||||
version = sdscatprintf(sdsempty(), "%s", REDIS_VERSION);
|
version = sdscatprintf(sdsempty(), "%s", KEYDB_REAL_VERSION);
|
||||||
|
|
||||||
/* Add git commit and working tree status when available */
|
/* Add git commit and working tree status when available */
|
||||||
if (strtoll(redisGitSHA1(),NULL,16)) {
|
if (strtoll(redisGitSHA1(),NULL,16)) {
|
||||||
|
@ -46,7 +46,7 @@ char *redisGitDirty(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
uint64_t redisBuildId(void) {
|
uint64_t redisBuildId(void) {
|
||||||
char *buildid = REDIS_VERSION REDIS_BUILD_ID REDIS_GIT_DIRTY REDIS_GIT_SHA1;
|
char *buildid = KEYDB_REAL_VERSION REDIS_BUILD_ID REDIS_GIT_DIRTY REDIS_GIT_SHA1;
|
||||||
|
|
||||||
return crc64(0,(unsigned char*)buildid,strlen(buildid));
|
return crc64(0,(unsigned char*)buildid,strlen(buildid));
|
||||||
}
|
}
|
||||||
|
@ -3988,7 +3988,7 @@ sds genRedisInfoString(const char *section) {
|
|||||||
"lru_clock:%ld\r\n"
|
"lru_clock:%ld\r\n"
|
||||||
"executable:%s\r\n"
|
"executable:%s\r\n"
|
||||||
"config_file:%s\r\n",
|
"config_file:%s\r\n",
|
||||||
REDIS_VERSION,
|
KEYDB_SET_VERSION,
|
||||||
redisGitSHA1(),
|
redisGitSHA1(),
|
||||||
strtol(redisGitDirty(),NULL,10) > 0,
|
strtol(redisGitDirty(),NULL,10) > 0,
|
||||||
(unsigned long long) redisBuildId(),
|
(unsigned long long) redisBuildId(),
|
||||||
@ -4587,7 +4587,7 @@ void daemonize(void) {
|
|||||||
|
|
||||||
void version(void) {
|
void version(void) {
|
||||||
printf("Redis server v=%s sha=%s:%d malloc=%s bits=%d build=%llx\n",
|
printf("Redis server v=%s sha=%s:%d malloc=%s bits=%d build=%llx\n",
|
||||||
REDIS_VERSION,
|
KEYDB_REAL_VERSION,
|
||||||
redisGitSHA1(),
|
redisGitSHA1(),
|
||||||
atoi(redisGitDirty()) > 0,
|
atoi(redisGitDirty()) > 0,
|
||||||
ZMALLOC_LIB,
|
ZMALLOC_LIB,
|
||||||
@ -4637,7 +4637,7 @@ void redisAsciiArt(void) {
|
|||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
snprintf(buf,1024*16,ascii_logo,
|
snprintf(buf,1024*16,ascii_logo,
|
||||||
REDIS_VERSION,
|
KEYDB_REAL_VERSION,
|
||||||
redisGitSHA1(),
|
redisGitSHA1(),
|
||||||
strtol(redisGitDirty(),NULL,10) > 0,
|
strtol(redisGitDirty(),NULL,10) > 0,
|
||||||
(sizeof(long) == 8) ? "64" : "32",
|
(sizeof(long) == 8) ? "64" : "32",
|
||||||
@ -5051,7 +5051,7 @@ int main(int argc, char **argv) {
|
|||||||
serverLog(LL_WARNING, "oO0OoO0OoO0Oo KeyDB is starting oO0OoO0OoO0Oo");
|
serverLog(LL_WARNING, "oO0OoO0OoO0Oo KeyDB is starting oO0OoO0OoO0Oo");
|
||||||
serverLog(LL_WARNING,
|
serverLog(LL_WARNING,
|
||||||
"KeyDB version=%s, bits=%d, commit=%s, modified=%d, pid=%d, just started",
|
"KeyDB version=%s, bits=%d, commit=%s, modified=%d, pid=%d, just started",
|
||||||
REDIS_VERSION,
|
KEYDB_REAL_VERSION,
|
||||||
(sizeof(long) == 8) ? 64 : 32,
|
(sizeof(long) == 8) ? 64 : 32,
|
||||||
redisGitSHA1(),
|
redisGitSHA1(),
|
||||||
strtol(redisGitDirty(),NULL,10) > 0,
|
strtol(redisGitDirty(),NULL,10) > 0,
|
||||||
|
@ -1 +1,2 @@
|
|||||||
#define REDIS_VERSION "0.9.2"
|
#define KEYDB_REAL_VERSION "0.9.2"
|
||||||
|
extern const char *KEYDB_SET_VERSION; // Unlike real version, this can be overriden by the config
|
Loading…
x
Reference in New Issue
Block a user