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 */

Reply via email to