Can you try Matthias' patch from the other mail please?
This is better and seems to fix the nextcloud app for me.
This is on top of my patch.
--- usr.sbin/httpd/server_fcgi.c Thu May 20 05:57:23 2021
+++ usr.sbin/httpd/server_fcgi.c Thu May 20 06:03:40 2021
@@ -620,6 +620,12 @@
EVBUFFER_LENGTH(clt->clt_srvevb) == 0) {
/* Can't chunk encode an empty body. */
clt->clt_fcgi.chunked = 0;
+ key.kv_key = "Content-Length";
+ if ((kv = kv_find(&resp->http_headers, &key)) == NULL) {
+ if (kv_add(&resp->http_headers,
+ "Content-Length", "0") == NULL)
+ return (-1);
+ }
}
/* Set chunked encoding */
@@ -636,13 +642,6 @@
if (kv_add(&resp->http_headers,
"Transfer-Encoding", "chunked") == NULL)
return (-1);
- } else {
- key.kv_key = "Content-Length";
- if ((kv = kv_find(&resp->http_headers, &key)) == NULL) {
- if (kv_add(&resp->http_headers,
- "Content-Length", "0") == NULL)
- return (-1);
- }
}
/* Is it a persistent connection? */
On 2021-05-19 23:07 -06, Steve Williams <[email protected]> wrote:
> Hi,
>
> Now that I have my head out of my ass (php/redis issue), I can confirm
> that the Nextcloud Android client does NOT work with this latest patch
> for me.
>
> I am getting the same "Connection Error" that I do with the stock
> httpd that's supplied in 6.9. I am running Nextcloud Andriod client
> version 3.16 released May 5, 2021.
>
> Wordpress, Nextcloud, Piwigo (photo album) are all working in Chrome
> and Firefox.
>
>
> I extracted /usr/src/usr.sbin/httpd
>
> cd /usr/src/usr.sbin/httpd
> # I copied & pasted the few lines from the email into a file "p"
> patch < p
> make
> make install
> #sledgehammer used below :)
> rcctl restart httpd php74_fpm redis mysqld
>
> If there's anything I can do to assist, please let me know.
>
> Cheers,
> Steve W.
>
> On 19/05/2021 9:59 p.m., Steve Williams wrote:
>> Hi,
>>
>> I applied this patch to the base OpenBSD 6.9 httpd source tree,
>> recompiled & installed.
>>
>> Wordpress works in both Firefox and Chrome, Roundcubemail works in
>> both Firefox and Chrome.
>>
>> However, my Andriod Nextcloud client is now broken again. I get a
>> "Connection Error".
>>
>> Is there a way I can help you troubleshoot this?
>>
>> There is nothing significant when I run a httpd -d -v -v -v -v -v
>>
>> Thanks,
>> Steve Williams
>>
>>
>> On 19/05/2021 12:44 p.m., Florian Obser wrote:
>>> The whole point of using Transfer-Encoding: chunked for fastcgi was so
>>> that we do not need to provide a Content-Length header if upstream
>>> doesn't give us one. (We'd need to slurp in all the data ugh).
>>>
>>> Now turns out that if we disable chunked encoding for zero sized bodies
>>> some browsers are picky and want a Content-Length: 0 (Firefox, Safari)
>>> or they'll just sit there and wait for the connection to close.
>>>
>>> Problem reported by Matthias Pressfreund with wordpress.
>>> Debugged with the help of weerd@ who pointed out that the problem is
>>> actually browser dependent. From there it was pretty clear what the
>>> problem was.
>>>
>>> OK?
>>>
>>> diff --git server_fcgi.c server_fcgi.c
>>> index 31d7322e9f7..b9dc4f6fe04 100644
>>> --- server_fcgi.c
>>> +++ server_fcgi.c
>>> @@ -636,6 +636,13 @@ server_fcgi_header(struct client *clt,
>>> unsigned int code)
>>> if (kv_add(&resp->http_headers,
>>> "Transfer-Encoding", "chunked") == NULL)
>>> return (-1);
>>> + } else {
>>> + key.kv_key = "Content-Length";
>>> + if ((kv = kv_find(&resp->http_headers, &key)) == NULL) {
>>> + if (kv_add(&resp->http_headers,
>>> + "Content-Length", "0") == NULL)
>>> + return (-1);
>>> + }
>>> }
>>> /* Is it a persistent connection? */
>>>
>
--
I'm not entirely sure you are real.