diff options
-rw-r--r-- | client.c | 6 | ||||
-rw-r--r-- | file.c | 2 | ||||
-rw-r--r-- | uhttpd.h | 2 | ||||
-rw-r--r-- | utils.c | 8 |
4 files changed, 8 insertions, 10 deletions
@@ -50,7 +50,7 @@ void uh_http_header(struct client *cl, int code, const char *summary) cl->http_code = code; - if (!cl->request.respond_chunked) + if (!uh_use_chunked(cl)) enc = ""; if (r->connection_close) @@ -188,8 +188,6 @@ static int client_parse_request(struct client *cl, char *data) !conf.http_keepalive) req->connection_close = true; - req->respond_chunked = uh_use_chunked(cl); - return CLIENT_STATE_HEADER; } @@ -261,7 +259,7 @@ static bool tls_redirect_check(struct client *cl) else if ((ptr = strchr(host, ':')) != NULL) *ptr = 0; - cl->request.respond_chunked = false; + cl->request.disable_chunked = true; cl->request.connection_close = true; uh_http_header(cl, 307, "Temporary Redirect"); @@ -614,7 +614,7 @@ static void uh_file_request(struct client *cl, const char *url, if (fd < 0) goto error; - req->respond_chunked = false; + req->disable_chunked = true; cl->dispatch.file.hdr = tb; uh_file_data(cl, pi, fd); cl->dispatch.file.hdr = NULL; @@ -112,7 +112,7 @@ struct http_request { int content_length; bool expect_cont; bool connection_close; - bool respond_chunked; + bool disable_chunked; uint8_t transfer_chunked; const struct auth_realm *realm; }; @@ -32,12 +32,12 @@ bool uh_use_chunked(struct client *cl) if (cl->http_code == 204 || cl->http_code == 304) return false; - return true; + return !cl->request.disable_chunked; } void uh_chunk_write(struct client *cl, const void *data, int len) { - bool chunked = cl->request.respond_chunked; + bool chunked = uh_use_chunked(cl); if (cl->state == CLIENT_STATE_CLEANUP) return; @@ -60,7 +60,7 @@ void uh_chunk_vprintf(struct client *cl, const char *format, va_list arg) return; uloop_timeout_set(&cl->timeout, conf.network_timeout * 1000); - if (!cl->request.respond_chunked) { + if (!uh_use_chunked(cl)) { ustream_vprintf(cl->us, format, arg); return; } @@ -88,7 +88,7 @@ void uh_chunk_printf(struct client *cl, const char *format, ...) void uh_chunk_eof(struct client *cl) { - if (!cl->request.respond_chunked) + if (!uh_use_chunked(cl)) return; if (cl->state == CLIENT_STATE_CLEANUP) |