mirror of
https://github.com/fluencelabs/redis
synced 2025-04-02 15:51:05 +00:00
RESP3: Use new deferred len API in server.c.
This commit is contained in:
parent
57c5a766a2
commit
073293693e
14
src/server.c
14
src/server.c
@ -2940,7 +2940,7 @@ void timeCommand(client *c) {
|
|||||||
/* gettimeofday() can only fail if &tv is a bad address so we
|
/* gettimeofday() can only fail if &tv is a bad address so we
|
||||||
* don't check for errors. */
|
* don't check for errors. */
|
||||||
gettimeofday(&tv,NULL);
|
gettimeofday(&tv,NULL);
|
||||||
addReplyMultiBulkLen(c,2);
|
addReplyArrayLen(c,2);
|
||||||
addReplyBulkLongLong(c,tv.tv_sec);
|
addReplyBulkLongLong(c,tv.tv_sec);
|
||||||
addReplyBulkLongLong(c,tv.tv_usec);
|
addReplyBulkLongLong(c,tv.tv_usec);
|
||||||
}
|
}
|
||||||
@ -2960,12 +2960,12 @@ void addReplyCommand(client *c, struct redisCommand *cmd) {
|
|||||||
addReply(c, shared.nullbulk);
|
addReply(c, shared.nullbulk);
|
||||||
} else {
|
} else {
|
||||||
/* We are adding: command name, arg count, flags, first, last, offset */
|
/* We are adding: command name, arg count, flags, first, last, offset */
|
||||||
addReplyMultiBulkLen(c, 6);
|
addReplyArrayLen(c, 6);
|
||||||
addReplyBulkCString(c, cmd->name);
|
addReplyBulkCString(c, cmd->name);
|
||||||
addReplyLongLong(c, cmd->arity);
|
addReplyLongLong(c, cmd->arity);
|
||||||
|
|
||||||
int flagcount = 0;
|
int flagcount = 0;
|
||||||
void *flaglen = addDeferredMultiBulkLength(c);
|
void *flaglen = addReplyDeferredLen(c);
|
||||||
flagcount += addReplyCommandFlag(c,cmd,CMD_WRITE, "write");
|
flagcount += addReplyCommandFlag(c,cmd,CMD_WRITE, "write");
|
||||||
flagcount += addReplyCommandFlag(c,cmd,CMD_READONLY, "readonly");
|
flagcount += addReplyCommandFlag(c,cmd,CMD_READONLY, "readonly");
|
||||||
flagcount += addReplyCommandFlag(c,cmd,CMD_DENYOOM, "denyoom");
|
flagcount += addReplyCommandFlag(c,cmd,CMD_DENYOOM, "denyoom");
|
||||||
@ -2985,7 +2985,7 @@ void addReplyCommand(client *c, struct redisCommand *cmd) {
|
|||||||
addReplyStatus(c, "movablekeys");
|
addReplyStatus(c, "movablekeys");
|
||||||
flagcount += 1;
|
flagcount += 1;
|
||||||
}
|
}
|
||||||
setDeferredMultiBulkLength(c, flaglen, flagcount);
|
setDeferredSetLen(c, flaglen, flagcount);
|
||||||
|
|
||||||
addReplyLongLong(c, cmd->firstkey);
|
addReplyLongLong(c, cmd->firstkey);
|
||||||
addReplyLongLong(c, cmd->lastkey);
|
addReplyLongLong(c, cmd->lastkey);
|
||||||
@ -3008,7 +3008,7 @@ NULL
|
|||||||
};
|
};
|
||||||
addReplyHelp(c, help);
|
addReplyHelp(c, help);
|
||||||
} else if (c->argc == 1) {
|
} else if (c->argc == 1) {
|
||||||
addReplyMultiBulkLen(c, dictSize(server.commands));
|
addReplyArrayLen(c, dictSize(server.commands));
|
||||||
di = dictGetIterator(server.commands);
|
di = dictGetIterator(server.commands);
|
||||||
while ((de = dictNext(di)) != NULL) {
|
while ((de = dictNext(di)) != NULL) {
|
||||||
addReplyCommand(c, dictGetVal(de));
|
addReplyCommand(c, dictGetVal(de));
|
||||||
@ -3016,7 +3016,7 @@ NULL
|
|||||||
dictReleaseIterator(di);
|
dictReleaseIterator(di);
|
||||||
} else if (!strcasecmp(c->argv[1]->ptr, "info")) {
|
} else if (!strcasecmp(c->argv[1]->ptr, "info")) {
|
||||||
int i;
|
int i;
|
||||||
addReplyMultiBulkLen(c, c->argc-2);
|
addReplyArrayLen(c, c->argc-2);
|
||||||
for (i = 2; i < c->argc; i++) {
|
for (i = 2; i < c->argc; i++) {
|
||||||
addReplyCommand(c, dictFetchValue(server.commands, c->argv[i]->ptr));
|
addReplyCommand(c, dictFetchValue(server.commands, c->argv[i]->ptr));
|
||||||
}
|
}
|
||||||
@ -3043,7 +3043,7 @@ NULL
|
|||||||
if (!keys) {
|
if (!keys) {
|
||||||
addReplyError(c,"Invalid arguments specified for command");
|
addReplyError(c,"Invalid arguments specified for command");
|
||||||
} else {
|
} else {
|
||||||
addReplyMultiBulkLen(c,numkeys);
|
addReplyArrayLen(c,numkeys);
|
||||||
for (j = 0; j < numkeys; j++) addReplyBulk(c,c->argv[keys[j]+2]);
|
for (j = 0; j < numkeys; j++) addReplyBulk(c,c->argv[keys[j]+2]);
|
||||||
getKeysFreeResult(keys);
|
getKeysFreeResult(keys);
|
||||||
}
|
}
|
||||||
|
@ -1450,7 +1450,12 @@ void addReplyStatus(client *c, const char *status);
|
|||||||
void addReplyDouble(client *c, double d);
|
void addReplyDouble(client *c, double d);
|
||||||
void addReplyHumanLongDouble(client *c, long double d);
|
void addReplyHumanLongDouble(client *c, long double d);
|
||||||
void addReplyLongLong(client *c, long long ll);
|
void addReplyLongLong(client *c, long long ll);
|
||||||
void addReplyMultiBulkLen(client *c, long length);
|
void addReplyArrayLen(client *c, long length);
|
||||||
|
void addReplyMapLen(client *c, long length);
|
||||||
|
void addReplySetLen(client *c, long length);
|
||||||
|
void addReplyAttributeLen(client *c, long length);
|
||||||
|
void addReplyPushLen(client *c, long length);
|
||||||
|
void addReplyHelloLen(client *c, long length);
|
||||||
void addReplyHelp(client *c, const char **help);
|
void addReplyHelp(client *c, const char **help);
|
||||||
void addReplySubcommandSyntaxError(client *c);
|
void addReplySubcommandSyntaxError(client *c);
|
||||||
void copyClientOutputBuffer(client *dst, client *src);
|
void copyClientOutputBuffer(client *dst, client *src);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user