Re-enable logs.

master
Nicolas Favre-Felix 14 years ago
parent 443d142497
commit 6455b9006a

@ -18,6 +18,7 @@ http_client_new(int fd, struct server *s) {
c->fd = fd;
c->s = s;
/* initialize HTTP parser */
c->settings.on_path = http_on_path;
c->settings.on_body = http_on_body;
c->settings.on_message_complete = http_on_complete;
@ -32,6 +33,9 @@ http_client_new(int fd, struct server *s) {
}
/**
* Called by libevent when read(2) is possible on fd without blocking.
*/
void
http_client_read(int fd, short event, void *ctx) {
@ -48,16 +52,15 @@ http_client_read(int fd, short event, void *ctx) {
return;
}
/* TODO: http parse. */
nparsed = http_parser_execute(&c->parser, &c->settings, buffer, ret);
if(c->parser.upgrade) {
/* TODO */
/* TODO: upgrade parser (WebSockets & cie) */
} else if(nparsed != ret) { /* invalid */
http_client_free(c);
return;
}
if(!c->executing) {
if(!c->executing) { /* if we're not waiting for Redis to reply, continue serving. */
http_client_serve(c);
}
}
@ -157,7 +160,7 @@ http_client_reset(struct http_client *c) {
}
/**
* Add read event callback
* (Re-)add read event callback
*/
void
http_client_serve(struct http_client *c) {
@ -260,17 +263,17 @@ http_on_complete(http_parser *p) {
if(c->path.sz == 16 && memcmp(c->path.s, "/crossdomain.xml", 16) == 0) {
return http_crossdomain(c);
}
/* slog(s, WEBDIS_DEBUG, uri); */
slog(c->s, WEBDIS_DEBUG, c->path.s, c->path.sz);
ret = cmd_run(c->s, c, 1+c->path.s, c->path.sz-1, NULL, 0);
break;
case HTTP_POST:
/*slog(s, WEBDIS_DEBUG, uri);*/
slog(c->s, WEBDIS_DEBUG, c->path.s, c->path.sz);
ret = cmd_run(c->s, c, 1+c->body.s, c->body.sz-1, NULL, 0);
break;
case HTTP_PUT:
/* slog(s, WEBDIS_DEBUG, uri); */
slog(c->s, WEBDIS_DEBUG, c->path.s, c->path.sz);
ret = cmd_run(c->s, c, 1+c->path.s, c->path.sz-1,
c->body.s, c->body.sz);
break;
@ -279,7 +282,7 @@ http_on_complete(http_parser *p) {
return http_options(c);
default:
slog(c->s, WEBDIS_DEBUG, "405");
slog(c->s, WEBDIS_DEBUG, "405", 3);
http_send_error(c, 405, "Method Not Allowed");
return 0;
}

@ -124,7 +124,8 @@ on_timer_reconnect(int fd, short event, void *ctx) {
s->ac->data = s;
if(s->ac->err) {
slog(s, WEBDIS_ERROR, "Connection failed");
const char err[] = "Connection failed";
slog(s, WEBDIS_ERROR, err, sizeof(err)-1);
fprintf(stderr, "Error: %s\n", s->ac->errstr);
}
@ -184,7 +185,7 @@ server_start(struct server *s) {
#endif
/* start http server */
slog(s, WEBDIS_INFO, "Starting HTTP Server");
slog(s, WEBDIS_INFO, "Starting HTTP Server", sizeof("Starting HTTP Server")-1);
s->fd = socket_setup(s->cfg->http_host, s->cfg->http_port);
/* FIXME: check return value. */
@ -193,7 +194,7 @@ server_start(struct server *s) {
event_add(&s->ev, NULL);
/* drop privileges */
slog(s, WEBDIS_INFO, "Dropping Privileges");
slog(s, WEBDIS_INFO, "Dropping Privileges", sizeof("Dropping Privileges")-1);
setuid(s->cfg->user);
setgid(s->cfg->group);

@ -10,7 +10,9 @@
#include "server.h"
#include "conf.h"
void slog(const struct server *s, log_level level, const char *body) {
void slog(const struct server *s, log_level level,
const char *body, size_t sz) {
const char *c = ".-*#";
time_t now = time(NULL);
static FILE *fp = NULL;
@ -26,7 +28,7 @@ void slog(const struct server *s, log_level level, const char *body) {
if(!fp) return;
/* limit message size */
snprintf(msg, sizeof(msg), "%s", body);
snprintf(msg, sz + 1 > sizeof(msg) ? sizeof(msg) : sz + 1, "%s", body);
strftime(buf,sizeof(buf),"%d %b %H:%M:%S",localtime(&now));
fprintf(fp,"[%d] %s %c %s\n", (int)self, buf, c[level], msg);

@ -11,6 +11,7 @@ typedef enum {
struct server;
void slog(const struct server *s, log_level level, const char *body);
void slog(const struct server *s, log_level level,
const char *body, size_t sz);
#endif

Loading…
Cancel
Save