it* gopherproxy-c customized Err codevoid.de 70 i Err codevoid.de 70 hgit clone git://git.codevoid.de/gopherproxy-c-sdk URL:git://git.codevoid.de/gopherproxy-c-sdk codevoid.de 70 1Log /git/gopherproxy-c-sdk/log.gph codevoid.de 70 1Files /git/gopherproxy-c-sdk/files.gph codevoid.de 70 1Refs /git/gopherproxy-c-sdk/refs.gph codevoid.de 70 1README /git/gopherproxy-c-sdk/file/README.gph codevoid.de 70 1LICENSE /git/gopherproxy-c-sdk/file/LICENSE.gph codevoid.de 70 i--- Err codevoid.de 70 1commit 63d1799106c7f186d008b3085f1d6059c99b2681 /git/gopherproxy-c-sdk/commit/63d1799106c7f186d008b3085f1d6059c99b2681.gph codevoid.de 70 1parent 2922b5f38556aacf5dd1c6928b34be60a07cec7b /git/gopherproxy-c-sdk/commit/2922b5f38556aacf5dd1c6928b34be60a07cec7b.gph codevoid.de 70 hAuthor: Hiltjo Posthuma URL:mailto:hiltjo@codemadness.org codevoid.de 70 iDate: Fri, 17 Aug 2018 15:58:26 +0200 Err codevoid.de 70 i Err codevoid.de 70 iREADME: update and document workaround for a bug with nginx 1.12 Err codevoid.de 70 i Err codevoid.de 70 iDiffstat: Err codevoid.de 70 i M README | 60 +++++++++++++++++++++++++++++-- Err codevoid.de 70 i Err codevoid.de 70 i1 file changed, 57 insertions(+), 3 deletions(-) Err codevoid.de 70 i--- Err codevoid.de 70 1diff --git a/README b/README /git/gopherproxy-c-sdk/file/README.gph codevoid.de 70 it@@ -1,17 +1,71 @@ Err codevoid.de 70 i gopherproxy Err codevoid.de 70 i =========== Err codevoid.de 70 i Err codevoid.de 70 i-Build dependencies: Err codevoid.de 70 i+Build dependencies Err codevoid.de 70 i+------------------ Err codevoid.de 70 i+ Err codevoid.de 70 i - C compiler. Err codevoid.de 70 i - libc + some BSD extensions (dprintf). Err codevoid.de 70 i - POSIX system. Err codevoid.de 70 i - make (optional). Err codevoid.de 70 i Err codevoid.de 70 i Err codevoid.de 70 i-Features: Err codevoid.de 70 i+Features Err codevoid.de 70 i+-------- Err codevoid.de 70 i+ Err codevoid.de 70 i - Works in older browsers such as links, lynx, w3m, dillo, etc. Err codevoid.de 70 i - No Javascript or CSS required. Err codevoid.de 70 i Err codevoid.de 70 i Err codevoid.de 70 i-Cons: Err codevoid.de 70 i+Cons Err codevoid.de 70 i+---- Err codevoid.de 70 i+ Err codevoid.de 70 i - Not all gopher types are supported. Err codevoid.de 70 i+ Err codevoid.de 70 i+ Err codevoid.de 70 i+Notes Err codevoid.de 70 i+----- Err codevoid.de 70 i+ Err codevoid.de 70 i+When using nginx 1.12+ with OpenBSD slowcgi there may be buffering issues. This Err codevoid.de 70 i+is a bug in nginx. This bug is fixed in newer nginx versions (see patch below). Err codevoid.de 70 i+ Err codevoid.de 70 i+Workaround: Err codevoid.de 70 i+ # workaround fastcgi buffering bug in nginx (fixed in 1.14). Err codevoid.de 70 i+ fastcgi_buffering off; Err codevoid.de 70 i+ Err codevoid.de 70 i+Patch: Err codevoid.de 70 i+ Err codevoid.de 70 i+commit cfc8c28259b3fd59f2517ac4830a08e8a9925148 Err codevoid.de 70 i+Author: Maxim Dounin Err codevoid.de 70 i+Date: Thu Nov 9 15:35:20 2017 +0300 Err codevoid.de 70 i+ Err codevoid.de 70 i+ FastCGI: adjust buffer position when parsing incomplete records. Err codevoid.de 70 i+ Err codevoid.de 70 i+ Previously, nginx failed to move buffer position when parsing an incomplete Err codevoid.de 70 i+ record header, and due to this wasn't be able to continue parsing once Err codevoid.de 70 i+ remaining bytes of the record header were received. Err codevoid.de 70 i+ Err codevoid.de 70 i+ This can affect response header parsing, potentially generating spurious errors Err codevoid.de 70 i+ like "upstream sent unexpected FastCGI request id high byte: 1 while reading Err codevoid.de 70 i+ response header from upstream". While this is very unlikely, since usually Err codevoid.de 70 i+ record headers are written in a single buffer, this still can happen in real Err codevoid.de 70 i+ life, for example, if a record header will be split across two TCP packets Err codevoid.de 70 i+ and the second packet will be delayed. Err codevoid.de 70 i+ Err codevoid.de 70 i+ This does not affect non-buffered response body proxying, due to "buf->pos = Err codevoid.de 70 i+ buf->last;" at the start of the ngx_http_fastcgi_non_buffered_filter() Err codevoid.de 70 i+ function. Also this does not affect buffered response body proxying, as Err codevoid.de 70 i+ each input buffer is only passed to the filter once. Err codevoid.de 70 i+ Err codevoid.de 70 i+diff --git a/src/http/modules/ngx_http_fastcgi_module.c b/src/http/modules/ngx_http_fastcgi_module.c Err codevoid.de 70 i+index ea16ecae..b4bb1d0a 100644 Err codevoid.de 70 i+--- a/src/http/modules/ngx_http_fastcgi_module.c Err codevoid.de 70 i++++ b/src/http/modules/ngx_http_fastcgi_module.c Err codevoid.de 70 i+@@ -2646,6 +2646,7 @@ ngx_http_fastcgi_process_record(ngx_http_request_t *r, Err codevoid.de 70 i+ } Err codevoid.de 70 i+ } Err codevoid.de 70 i+ Err codevoid.de 70 i++ f->pos = p; Err codevoid.de 70 i+ f->state = state; Err codevoid.de 70 i+ Err codevoid.de 70 i+ return NGX_AGAIN; Err codevoid.de 70 .