Skip object encoding where it doesn't make sense
This commit is contained in:
parent
19408d83a4
commit
a375b077cc
14
src/config.c
14
src/config.c
@ -225,8 +225,11 @@ loaderr:
|
|||||||
*----------------------------------------------------------------------------*/
|
*----------------------------------------------------------------------------*/
|
||||||
|
|
||||||
void configSetCommand(redisClient *c) {
|
void configSetCommand(redisClient *c) {
|
||||||
robj *o = getDecodedObject(c->argv[3]);
|
robj *o;
|
||||||
long long ll;
|
long long ll;
|
||||||
|
redisAssert(c->argv[2]->encoding == REDIS_ENCODING_RAW);
|
||||||
|
redisAssert(c->argv[3]->encoding == REDIS_ENCODING_RAW);
|
||||||
|
o = c->argv[3];
|
||||||
|
|
||||||
if (!strcasecmp(c->argv[2]->ptr,"dbfilename")) {
|
if (!strcasecmp(c->argv[2]->ptr,"dbfilename")) {
|
||||||
zfree(server.dbfilename);
|
zfree(server.dbfilename);
|
||||||
@ -273,7 +276,6 @@ void configSetCommand(redisClient *c) {
|
|||||||
if (startAppendOnly() == REDIS_ERR) {
|
if (startAppendOnly() == REDIS_ERR) {
|
||||||
addReplyError(c,
|
addReplyError(c,
|
||||||
"Unable to turn on AOF. Check server logs.");
|
"Unable to turn on AOF. Check server logs.");
|
||||||
decrRefCount(o);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -315,10 +317,8 @@ void configSetCommand(redisClient *c) {
|
|||||||
} else {
|
} else {
|
||||||
addReplyErrorFormat(c,"Unsupported CONFIG parameter: %s",
|
addReplyErrorFormat(c,"Unsupported CONFIG parameter: %s",
|
||||||
(char*)c->argv[2]->ptr);
|
(char*)c->argv[2]->ptr);
|
||||||
decrRefCount(o);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
decrRefCount(o);
|
|
||||||
addReply(c,shared.ok);
|
addReply(c,shared.ok);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -326,14 +326,14 @@ badfmt: /* Bad format errors */
|
|||||||
addReplyErrorFormat(c,"Invalid argument '%s' for CONFIG SET '%s'",
|
addReplyErrorFormat(c,"Invalid argument '%s' for CONFIG SET '%s'",
|
||||||
(char*)o->ptr,
|
(char*)o->ptr,
|
||||||
(char*)c->argv[2]->ptr);
|
(char*)c->argv[2]->ptr);
|
||||||
decrRefCount(o);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void configGetCommand(redisClient *c) {
|
void configGetCommand(redisClient *c) {
|
||||||
robj *o = getDecodedObject(c->argv[2]);
|
robj *o = c->argv[2];
|
||||||
void *replylen = addDeferredMultiBulkLength(c);
|
void *replylen = addDeferredMultiBulkLength(c);
|
||||||
char *pattern = o->ptr;
|
char *pattern = o->ptr;
|
||||||
int matches = 0;
|
int matches = 0;
|
||||||
|
redisAssert(o->encoding == REDIS_ENCODING_RAW);
|
||||||
|
|
||||||
if (stringmatch(pattern,"dbfilename",0)) {
|
if (stringmatch(pattern,"dbfilename",0)) {
|
||||||
addReplyBulkCString(c,"dbfilename");
|
addReplyBulkCString(c,"dbfilename");
|
||||||
@ -405,12 +405,10 @@ void configGetCommand(redisClient *c) {
|
|||||||
sdsfree(buf);
|
sdsfree(buf);
|
||||||
matches++;
|
matches++;
|
||||||
}
|
}
|
||||||
decrRefCount(o);
|
|
||||||
setDeferredMultiBulkLength(c,replylen,matches*2);
|
setDeferredMultiBulkLength(c,replylen,matches*2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void configCommand(redisClient *c) {
|
void configCommand(redisClient *c) {
|
||||||
c->argv[c->argc-1] = tryObjectEncoding(c->argv[c->argc-1]);
|
|
||||||
if (!strcasecmp(c->argv[1]->ptr,"set")) {
|
if (!strcasecmp(c->argv[1]->ptr,"set")) {
|
||||||
if (c->argc != 4) goto badarity;
|
if (c->argc != 4) goto badarity;
|
||||||
configSetCommand(c);
|
configSetCommand(c);
|
||||||
|
@ -262,7 +262,6 @@ void punsubscribeCommand(redisClient *c) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void publishCommand(redisClient *c) {
|
void publishCommand(redisClient *c) {
|
||||||
c->argv[2] = tryObjectEncoding(c->argv[2]);
|
|
||||||
int receivers = pubsubPublishMessage(c->argv[1],c->argv[2]);
|
int receivers = pubsubPublishMessage(c->argv[1],c->argv[2]);
|
||||||
addReplyLongLong(c,receivers);
|
addReplyLongLong(c,receivers);
|
||||||
}
|
}
|
||||||
|
@ -1007,7 +1007,6 @@ void pingCommand(redisClient *c) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void echoCommand(redisClient *c) {
|
void echoCommand(redisClient *c) {
|
||||||
c->argv[1] = tryObjectEncoding(c->argv[1]);
|
|
||||||
addReplyBulk(c,c->argv[1]);
|
addReplyBulk(c,c->argv[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user