HTTP refactor.

master
Nicolas Favre-Felix 14 years ago
parent 2d10922688
commit 8e1d018a21

@ -356,15 +356,7 @@ http_on_header_value(http_parser *p, const char *at, size_t length) {
/**** HTTP Responses ****/
static void
http_response_init(struct http_client *c, struct http_response *r, int code, const char *msg) {
/* remove any old data */
memset(r, 0, sizeof(struct http_response));
r->code = code;
r->msg = msg;
http_response_set_header(r, "Server", "Webdis");
http_response_set_connection_header(struct http_client *c, struct http_response *r) {
if(http_client_keep_alive(c)) {
http_response_set_header(r, "Connection", "Keep-Alive");
@ -372,6 +364,7 @@ http_response_init(struct http_client *c, struct http_response *r, int code, con
http_response_set_header(r, "Connection", "Close");
}
}
void
http_send_reply(struct http_client *c, short code, const char *msg,
const char *body, size_t body_len) {
@ -383,7 +376,8 @@ http_send_reply(struct http_client *c, short code, const char *msg,
}
/* respond */
http_response_init(c, &resp, code, msg);
http_response_init(&resp, code, msg);
http_response_set_connection_header(c, &resp);
if(body_len) {
http_response_set_header(&resp, "Content-Type", ct);
@ -458,7 +452,8 @@ http_crossdomain(struct http_client *c) {
"<allow-access-from domain=\"*\" />\n"
"</cross-domain-policy>\n";
http_response_init(c, &resp, 200, "OK");
http_response_init(&resp, 200, "OK");
http_response_set_connection_header(c, &resp);
http_response_set_header(&resp, "Content-Type", "application/xml");
http_response_set_body(&resp, out, sizeof(out)-1);
@ -474,7 +469,8 @@ http_options(struct http_client *c) {
struct http_response resp;
http_response_init(c, &resp, 200, "OK");
http_response_init(&resp, 200, "OK");
http_response_set_connection_header(c, &resp);
http_response_set_header(&resp, "Content-Type", "text/html");
http_response_set_header(&resp, "Allow", "GET,POST,PUT,OPTIONS");

@ -17,6 +17,19 @@ http_set_header(str_t *h, const char *p, size_t sz) {
/* HTTP Response */
void
http_response_init(struct http_response *r, int code, const char *msg) {
/* remove any old data */
memset(r, 0, sizeof(struct http_response));
r->code = code;
r->msg = msg;
http_response_set_header(r, "Server", "Webdis");
}
void
http_response_set_header(struct http_response *r, const char *k, const char *v) {

@ -25,6 +25,10 @@ void
http_set_header(str_t *h, const char *p, size_t sz);
/* HTTP response */
void
http_response_init(struct http_response *r, int code, const char *msg);
void
http_response_set_header(struct http_response *r, const char *k, const char *v);

Loading…
Cancel
Save