summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Utility/WebApp.hs7
-rw-r--r--debian/changelog4
-rw-r--r--doc/bugs/webapp_hang.mdwn2
3 files changed, 12 insertions, 1 deletions
diff --git a/Utility/WebApp.hs b/Utility/WebApp.hs
index c6aae9db5..0623d4a48 100644
--- a/Utility/WebApp.hs
+++ b/Utility/WebApp.hs
@@ -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
diff --git a/debian/changelog b/debian/changelog
index 3f2907af9..59208eb5b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -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
diff --git a/doc/bugs/webapp_hang.mdwn b/doc/bugs/webapp_hang.mdwn
index 0f9af5b28..73fcbbe99 100644
--- a/doc/bugs/webapp_hang.mdwn
+++ b/doc/bugs/webapp_hang.mdwn
@@ -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?