diff options
author | Felix Fietkau <nbd@openwrt.org> | 2014-03-21 21:27:30 +0100 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2014-03-21 21:27:33 +0100 |
commit | d6366570bf706f3970b7f106a1ccd49b584559cf (patch) | |
tree | e61c29f574a21d8c65ccbd2a03fe6545625acc33 | |
parent | 4ead51e17f1e7d7c986daf0cb3f1aeb12d3fe98e (diff) |
relay: do forward data if the http request type was HEAD
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
-rw-r--r-- | proc.c | 3 | ||||
-rw-r--r-- | relay.c | 4 | ||||
-rw-r--r-- | uhttpd.h | 2 |
3 files changed, 8 insertions, 1 deletions
@@ -224,6 +224,9 @@ static void proc_handle_header_end(struct relay *r) ustream_printf(cl->us, "%s: %s\r\n", blobmsg_name(cur), blobmsg_data(cur)); ustream_printf(cl->us, "\r\n"); + + if (cl->request.method == UH_HTTP_MSG_HEAD) + r->skip_data = true; } static void proc_write_close(struct client *cl) @@ -142,7 +142,9 @@ static void relay_read_cb(struct ustream *s, int bytes) if (!buf || !len) return; - uh_chunk_write(cl, buf, len); + if (!r->skip_data) + uh_chunk_write(cl, buf, len); + ustream_consume(s, len); } @@ -152,6 +152,8 @@ struct relay { bool process_done; bool error; + bool skip_data; + int ret; int header_ofs; |