JSON comments.

master
Nicolas Favre-Felix 14 years ago
parent fb5c60bee9
commit 11293f64b5

@ -8,7 +8,7 @@
#include <evhttp.h>
static json_t *
json_encode(const struct cmd *cmd, const redisReply *r);
json_wrap_redis_reply(const struct cmd *cmd, const redisReply *r);
void
json_reply(redisAsyncContext *c, void *r, void *privdata) {
@ -25,35 +25,34 @@ json_reply(redisAsyncContext *c, void *r, void *privdata) {
return;
}
j = json_encode(cmd, r);
/* encode redis reply as JSON */
j = json_wrap_redis_reply(cmd, r);
/* get JSON as string */
json_reply = json_dumps(j, JSON_COMPACT);
/* reply */
/* send reply */
body = evbuffer_new();
evbuffer_add(body, json_reply, strlen(json_reply));
evhttp_add_header(cmd->rq->output_headers, "Content-Type", "application/json");
evhttp_send_reply(cmd->rq, 200, "OK", body);
evbuffer_free(body);
/* cleanup */
evbuffer_free(body);
json_decref(j);
freeReplyObject(r);
cmd_free(cmd);
free(json_reply);
}
json_t *
json_encode(const struct cmd *cmd, const redisReply *r) {
static json_t *
json_wrap_redis_reply(const struct cmd *cmd, const redisReply *r) {
unsigned int i;
json_t *jlist, *jroot = json_object(); /* that's what we return */
/* copy verb */
/* copy verb, as jansson only takes a char* but not its length. */
char *verb;
verb = calloc(cmd->argv_len[0]+1, 1);
memcpy(verb, cmd->argv[0], cmd->argv_len[0]);

Loading…
Cancel
Save