From 21cda08b3bfa4a38a30e47e60139049b87bfb360 Mon Sep 17 00:00:00 2001 From: antirez Date: Mon, 14 Feb 2011 02:51:27 +0100 Subject: [PATCH] CONFIG GET/SET dir implemented --- src/config.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/config.c b/src/config.c index 5d2c316b..673b7717 100644 --- a/src/config.c +++ b/src/config.c @@ -423,6 +423,11 @@ void configSetCommand(redisClient *c) { if (yn == -1) goto badfmt; server.repl_serve_stale_data = yn; + } else if (!strcasecmp(c->argv[2]->ptr,"dir")) { + if (chdir((char*)o->ptr) == -1) { + addReplyErrorFormat(c,"Changing directory: %s", strerror(errno)); + return; + } } else { addReplyErrorFormat(c,"Unsupported CONFIG parameter: %s", (char*)c->argv[2]->ptr); @@ -445,6 +450,15 @@ void configGetCommand(redisClient *c) { int matches = 0; redisAssert(o->encoding == REDIS_ENCODING_RAW); + if (stringmatch(pattern,"dir",0)) { + char buf[1024]; + + buf[0] = '\0'; + getcwd(buf,sizeof(buf)); + addReplyBulkCString(c,"dir"); + addReplyBulkCString(c,buf); + matches++; + } if (stringmatch(pattern,"dbfilename",0)) { addReplyBulkCString(c,"dbfilename"); addReplyBulkCString(c,server.dbfilename); -- GitLab