Added support for Redis AUTH command.

master
Nicolas Favre-Felix 14 years ago
parent 63394166b5
commit f4e28936b5

@ -22,6 +22,7 @@ curl -d "GET/hello" http://127.0.0.1:7379/
* HTTP 1.1 pipelining (50,000 http requests per second on a desktop Linux machine.)
* Connects to Redis using a TCP or UNIX socket.
* Restricted commands by IP range (CIDR subnet + mask), returning 403 errors.
* Possible Redis authentication in the config file.
# Ideas, TODO...
* Add meta-data info per key (MIME type in a second key, for instance).

@ -39,6 +39,8 @@ conf_read(const char *filename) {
conf->redis_host = strdup(json_string_value(jtmp));
} else if(strcmp(json_object_iter_key(kv), "redis_port") == 0 && json_typeof(jtmp) == JSON_INTEGER) {
conf->redis_port = (short)json_integer_value(jtmp);
} else if(strcmp(json_object_iter_key(kv), "redis_auth") == 0 && json_typeof(jtmp) == JSON_STRING) {
conf->redis_auth = strdup(json_string_value(jtmp));
} else if(strcmp(json_object_iter_key(kv), "http_host") == 0 && json_typeof(jtmp) == JSON_STRING) {
free(conf->http_host);
conf->http_host = strdup(json_string_value(jtmp));
@ -129,6 +131,8 @@ void
conf_free(struct conf *conf) {
free(conf->redis_host);
free(conf->redis_auth);
free(conf->http_host);
free(conf);

@ -18,6 +18,7 @@ struct conf {
char *redis_host;
short redis_port;
char *redis_auth;
char *http_host;
short http_port;

@ -13,12 +13,12 @@ raw_wrap(const redisReply *r, size_t *sz);
void
raw_reply(redisAsyncContext *c, void *r, void *privdata) {
(void)c;
struct evbuffer *body;
redisReply *reply = r;
struct cmd *cmd = privdata;
char *raw_out;
size_t sz;
(void)c;
evhttp_clear_headers(&cmd->uri_params);

@ -50,10 +50,13 @@ on_timer_reconnect(int fd, short event, void *ctx) {
printf("Error: %s\n", s->ac->errstr);
}
redisLibeventAttach(s->ac, s->base);
redisAsyncSetConnectCallback(s->ac, connectCallback);
redisAsyncSetDisconnectCallback(s->ac, disconnectCallback);
if (s->cfg->redis_auth) { /* authenticate. */
redisAsyncCommand(s->ac, NULL, NULL, "AUTH %s", s->cfg->redis_auth);
}
}
void

@ -1,6 +1,7 @@
{
"redis_host": "127.0.0.1",
"redis_port": 6379,
"redis_auth": null,
"http_host": "0.0.0.0",
"http_port": 7379,

Loading…
Cancel
Save