diff options
author | Felix Fietkau <nbd@openwrt.org> | 2013-05-23 12:50:08 +0200 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2013-05-23 12:50:08 +0200 |
commit | 7aea691dfe1fb730ba40841e8c98e0541e1f2801 (patch) | |
tree | 837a6ea2d0fd744e173a8e6ada73df40980b74bf | |
parent | d58f77ad52caa52e91cf698e60a5a43c5d870e84 (diff) | |
download | uhttpd2-7aea691dfe1fb730ba40841e8c98e0541e1f2801.tar.gz |
relay: do not process headers after the first error
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
-rw-r--r-- | relay.c | 4 | ||||
-rw-r--r-- | uhttpd.h | 1 |
2 files changed, 4 insertions, 1 deletions
@@ -55,6 +55,7 @@ static void relay_error(struct relay *r) struct ustream *s = &r->sfd.stream; int len; + r->error = true; s->eof = true; ustream_get_read_buf(s, &len); if (len) @@ -118,7 +119,8 @@ static void relay_read_cb(struct ustream *s, int bytes) if (r->process_done) uloop_timeout_set(&r->timeout, 1); - relay_process_headers(r); + if (!r->error) + relay_process_headers(r); if (r->header_cb) { /* @@ -150,6 +150,7 @@ struct relay { struct client *cl; bool process_done; + bool error; int ret; int header_ofs; |