diff options
author | 2012-04-30 10:49:57 +0000 | |
---|---|---|
committer | 2012-04-30 10:49:57 +0000 | |
commit | 9907692c7a2247ed8e73499d30472031e62d5dc3 (patch) | |
tree | 8ff61af7a045f115293aa1f81821f7e12a2a5cb6 | |
parent | more refactor (diff) | |
download | wireguard-openbsd-9907692c7a2247ed8e73499d30472031e62d5dc3.tar.xz wireguard-openbsd-9907692c7a2247ed8e73499d30472031e62d5dc3.zip |
The message-body should be forwarded for GET,HEAD and OPTIONS methods as well.
ok giovanni@, phessler@, henning@
-rw-r--r-- | usr.sbin/relayd/relay.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/usr.sbin/relayd/relay.c b/usr.sbin/relayd/relay.c index 58d5f48795c..5dab14af95d 100644 --- a/usr.sbin/relayd/relay.c +++ b/usr.sbin/relayd/relay.c @@ -1,4 +1,4 @@ -/* $OpenBSD: relay.c,v 1.147 2012/04/27 14:01:35 giovanni Exp $ */ +/* $OpenBSD: relay.c,v 1.148 2012/04/30 10:49:57 benno Exp $ */ /* * Copyright (c) 2006, 2007, 2008 Reyk Floeter <reyk@openbsd.org> @@ -1373,6 +1373,9 @@ relay_read_http(struct bufferevent *bev, void *arg) goto abort; } } else if ((cre->method == HTTP_METHOD_DELETE || + cre->method == HTTP_METHOD_GET || + cre->method == HTTP_METHOD_HEAD || + cre->method == HTTP_METHOD_OPTIONS || cre->method == HTTP_METHOD_POST || cre->method == HTTP_METHOD_PUT || cre->method == HTTP_METHOD_RESPONSE) && @@ -1389,6 +1392,14 @@ relay_read_http(struct bufferevent *bev, void *arg) relay_close_http(con, 500, errstr, 0); goto abort; } + } else if ((cre->method == HTTP_METHOD_TRACE) && + strcasecmp("Content-Length", pk.key) == 0) { + /* + * This method should not have a body and thus no + * Content-Length header. + */ + relay_close_http(con, 400, "malformed", 0); + goto abort; } lookup: if (strcasecmp("Transfer-Encoding", pk.key) == 0 && @@ -1468,6 +1479,9 @@ relay_read_http(struct bufferevent *bev, void *arg) bev->readcb = relay_read; break; case HTTP_METHOD_DELETE: + case HTTP_METHOD_GET: + case HTTP_METHOD_HEAD: + case HTTP_METHOD_OPTIONS: case HTTP_METHOD_POST: case HTTP_METHOD_PUT: case HTTP_METHOD_RESPONSE: |