On Wed, Jul 27, 2016 at 11:26:28AM +0200, Paul Fariello wrote:
> On Wed, Jul 27, 2016 at 11:08:17AM +0200, Michael Lechtermann wrote:
> >
> > > On 27Juli, 2016, at 10:19, Paul Fariello <[email protected]> wrote:
> > >
> > > relayd logs and svn server log could really help.
> > >
> > > I can't reproduce it since I don't have a working svn server.
> >
> > relayd doesn’t print out anything in regards to this, even when using -d
> > and multiple -v
> >
> > Apache also doesn’t recognize any incoming requests (from relayd), so no
> > logs from that either.
> >
>
> Can you check if the http OPTIONS request has a body ? With tcpdump for
> example.
>
> Relayd considers it should not have one. But this kind of behavior
> reminds me the issue I had with CalDav.
Looking at RFC3253, 6.4.1 Example - OPTIONS, it seems that OPTIONS
method can have a body.
Could you try the attached patch ? It remove some logic on http request
size in regards to http methods.
--
Paul Fariello
PGP: 0x672CDD2031AAF49B
diff --git a/relay_http.c b/relay_http.c
index bab2135..c5743b3 100644
--- a/relay_http.c
+++ b/relay_http.c
@@ -398,16 +398,7 @@ relay_read_http(struct bufferevent *bev, void *arg)
cre->toread = TOREAD_UNLIMITED;
bev->readcb = relay_read;
break;
- case HTTP_METHOD_DELETE:
- case HTTP_METHOD_GET:
- case HTTP_METHOD_HEAD:
- case HTTP_METHOD_OPTIONS:
- cre->toread = 0;
- break;
- case HTTP_METHOD_PATCH:
- case HTTP_METHOD_POST:
- case HTTP_METHOD_PUT:
- case HTTP_METHOD_RESPONSE:
+ default:
/* HTTP request payload */
if (cre->toread > 0)
bev->readcb = relay_read_httpcontent;
@@ -418,11 +409,6 @@ relay_read_http(struct bufferevent *bev, void *arg)
bev->readcb = relay_read;
}
break;
- default:
- /* HTTP handler */
- cre->toread = TOREAD_HTTP_HEADER;
- bev->readcb = relay_read_http;
- break;
}
if (desc->http_chunked) {
/* Chunked transfer encoding */