LukeEmmet / duckling-proxy

Duckling proxy 🦆 is a Gemini proxy to access the Small Web
MIT License
36 stars 5 forks source link

Crash if download limit is exceeded #3

Closed LukeEmmet closed 4 years ago

LukeEmmet commented 4 years ago

(based on bug report from M Bays)

It seems duckling crashes if the download limit is exceeded:

Info: Retrieve: https://n-o-d-e.net/zine/
Info: Content-Type: text/html
Info: Retrieve: https://n-o-d-e.live/zine/NODE_VOL_02.pdf
panic: net/http: request canceled (Client.Timeout exceeded while reading body)

goroutine 30 [running]:
main.check(...)
        /home/user/go/pkg/mod/github.com/!luke!emmet/duckling-proxy@v0.0.0-20200902070449-0dda58548024/duckling-proxy.go:57
main.WebPipeHandler.Handle(0xa3ff5c0, 0x0)
        /home/user/go/pkg/mod/github.com/!luke!emmet/duckling-proxy@v0.0.0-20200902070449-0dda58548024/duckling-proxy.go:151 +0xf87
github.com/makeworld-the-better-one/go-gemini.handleConnection(0xa6a7f0d8, 0xa09ea00, 0x836c610, 0x853f580)
        /home/user/go/pkg/mod/github.com/makeworld-the-better-one/go-gemini@v0.8.5/server.go:97 +0xbd
created by github.com/makeworld-the-better-one/go-gemini.serve
        /home/user/go/pkg/mod/github.com/makeworld-the-better-one/go-gemini@v0.8.5/server.go:82 +0x71

It would be good if it could abort in some nice way instead.

Even better would be if it could stream the download, and leave it to the gemini client to abort the request if it's taking too long.

LukeEmmet commented 4 years ago

fixed in https://github.com/LukeEmmet/duckling-proxy/commit/2e366acf58768e519d8f259841031ded8fab9565