webapp: Work around bug in Warp's slowloris attack prevention code, that caused regular browsers to stall when they reuse a connection after leaving it idle for 30 seconds. (See https://github.com/yesodweb/wai/issues/146)
This commit is contained in:
parent
0155f1effa
commit
3e32bb41f6
3 changed files with 12 additions and 1 deletions
|
@ -56,9 +56,14 @@ browserCommand = "xdg-open"
|
|||
runWebApp :: Wai.Application -> (SockAddr -> IO ()) -> IO ()
|
||||
runWebApp app observer = do
|
||||
sock <- localSocket
|
||||
void $ forkIO $ runSettingsSocket defaultSettings sock app
|
||||
void $ forkIO $ runSettingsSocket webAppSettings sock app
|
||||
observer =<< getSocketName sock
|
||||
|
||||
webAppSettings = defaultSettings
|
||||
-- disable buggy sloworis attack prevention code
|
||||
{ settingsTimeout = 30 * 60
|
||||
}
|
||||
|
||||
{- Binds to a local socket, selecting any free port.
|
||||
-
|
||||
- Prefers to bind to the ipv4 address rather than the ipv6 address
|
||||
|
|
4
debian/changelog
vendored
4
debian/changelog
vendored
|
@ -36,6 +36,10 @@ git-annex (4.20130228) UNRELEASED; urgency=low
|
|||
* assistant: Sync with all git remotes on startup.
|
||||
* Switch from using regex-compat to regex-tdfa, as the C regex library
|
||||
is rather buggy.
|
||||
* webapp: Work around bug in Warp's slowloris attack prevention code,
|
||||
that caused regular browsers to stall when they reuse a connection
|
||||
after leaving it idle for 30 seconds.
|
||||
(See https://github.com/yesodweb/wai/issues/146)
|
||||
|
||||
-- Joey Hess <joeyh@debian.org> Wed, 27 Feb 2013 23:20:40 -0400
|
||||
|
||||
|
|
|
@ -32,6 +32,8 @@ Hypotheses:
|
|||
|
||||
**Verified** Bug filed upstream: <https://github.com/yesodweb/wai/issues/146>
|
||||
|
||||
** workaround in place **
|
||||
|
||||
* Something deep in git-annex, such as the inotidy code, could be
|
||||
preventing a web server thread from running. But then why do other
|
||||
tabs and other web browsers work while it's stuck?
|
||||
|
|
Loading…
Add table
Reference in a new issue