summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2013-11-19 17:58:11 +0100
committerantirez <antirez@gmail.com>2013-11-21 15:23:47 +0100
commitc517f723432b43ee70b84119c343fa3e1d14b2fc (patch)
tree524c053bb193de5bc93a35844d2c6ebc41897ea8
parent812f76a85027769df9c294cbaa08bf0ac4b4cf39 (diff)
downloadredis-c517f723432b43ee70b84119c343fa3e1d14b2fc.tar.gz
CONFIG REWRITE: don't add the signature if it already exists.
At the end of the file, CONFIG REWRITE adds a comment line that: # Generated by CONFIG REWRITE Followed by the additional config options required. However this was added again and again at every rewrite in praticular conditions (when a given set of options change in a given time during the time). Now if it was alrady encountered, it is not added a second time. This is especially important for Sentinel that rewrites the config at every state change.
-rw-r--r--src/config.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/config.c b/src/config.c
index 29e1893b6..0d8376e5a 100644
--- a/src/config.c
+++ b/src/config.c
@@ -1102,6 +1102,8 @@ void configGetCommand(redisClient *c) {
* CONFIG REWRITE implementation
*----------------------------------------------------------------------------*/
+#define REDIS_CONFIG_REWRITE_SIGNATURE "# Generated by CONFIG REWRITE"
+
/* We use the following dictionary type to store where a configuration
* option is mentioned in the old configuration file, so it's
* like "maxmemory" -> list of line numbers (first line is zero). */
@@ -1178,6 +1180,8 @@ struct rewriteConfigState *rewriteConfigReadOldFile(char *path) {
/* Handle comments and empty lines. */
if (line[0] == '#' || line[0] == '\0') {
+ if (!state->has_tail && !strcmp(line,REDIS_CONFIG_REWRITE_SIGNATURE))
+ state->has_tail = 1;
rewriteConfigAppendLine(state,line);
continue;
}
@@ -1249,7 +1253,7 @@ void rewriteConfigRewriteLine(struct rewriteConfigState *state, char *option, sd
/* Append a new line. */
if (!state->has_tail) {
rewriteConfigAppendLine(state,
- sdsnew("# Generated by CONFIG REWRITE"));
+ sdsnew(REDIS_CONFIG_REWRITE_SIGNATURE));
state->has_tail = 1;
}
rewriteConfigAppendLine(state,line);