Hi, I've encountered the exact same issue. I think this is due to a miss handling of message-body.
RFC2616 states in chapter 4.3 that: > The presence of a message-body in a request is signaled by the > inclusion of a Content-Length or Transfer-Encoding header field in > the request's message-headers. A message-body MUST NOT be included in > a request if the specification of the request method (section 5.1.1) > does not allow sending an entity-body in requests. A server SHOULD > read and forward a message-body on any request; if the request method > does not include defined semantics for an entity-body, then the > message-body SHOULD be ignored when handling the request. > Thus we should not ignore message-body for unknown methods by forcing cre->toread to TOREAD_HTTP_HEADER. Please find attached a patch that just allow http request to have a message-body whatever the method is. Regards, Paul > 2016-06-24 11:01:03 > <[email protected]>: > > Hi, > > thanks, this is the second report regarding WebDAV since yesterday. I'll > have a look \ > at this when I'm back home next week. > > Reyk > > > Am 24.06.2016 um 09:21 schrieb Michael Lechtermann > > <[email protected]>: > > > > Hi, > > > > I have recently configured relayd as SSL accelerator and it is working > > really \ > > great. However it seems that not all http methods that are mentioned > > in the man \ > > page are actually supported by the http protocol. > > method name > > Match the HTTP request method. The method is specified by name > > and can be either CONNECT, COPY, DELETE, GET, HEAD, LOCK, MKCOL, > > MOVE, OPTIONS, PATCH, POST, PROPFIND, PROPPATCH, PUT, TRACE, or > > UNLOCK. > > > > The above list is from "man relayd.conf" and I would assume that those > > methods, if \ > > mentioned, are fully supported, however when trying to use Apache2 > > with mod_dav_svn \ > > (ap2-subversion) relayd somehow breaks it: > > # svn up > > svn: Server sent unexpected return value (400 Bad Request) in response > > to OPTIONS \ > > request for 'https://<url>/svn/repo' > > This was tested using OpenBSD 5.9. If more information is required, > > please say so. > > > > Regards, > > Michael > >
Index: relay_http.c =================================================================== RCS file: /cvs/src/usr.sbin/relayd/relay_http.c,v retrieving revision 1.55 diff -r1.55 relay_http.c 375a376 > default: 385,389d385 < break; < default: < /* HTTP handler */ < cre->toread = TOREAD_HTTP_HEADER; < bev->readcb = relay_read_http;
