On Wed, May 19, 2021 at 08:56:48PM +0200, Paul de Weerd wrote: > For the record: I tested this on a WordPress instance and it fixed the > problem for me. It was also visible in roundcubemail and wikimedia > (firefox and safari showed the issue, chrome on the company laptop > did not). > > Thanks Florian! > > Paul > > On Wed, May 19, 2021 at 08:44:47PM +0200, 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?
Working fine here. 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. > | > > -- > >++++++++[<++++++++++>-]<+++++++.>+++[<------>-]<.>+++[<+ > +++++++++++>-]<.>++[<------------>-]<+.--------------.[-] > http://www.weirdnet.nl/ -- Tracey Emery