X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=Lucu.git;a=blobdiff_plain;f=Network%2FHTTP%2FLucu%2FResource%2FTree.hs;h=11d5b2b471c8fa6435dd3e8692c0896e5df010d6;hp=8fbe2bf2d6b529aa1b00ad4fc4c6b17b943b64b8;hb=895341e;hpb=05f8f795a483f672b7cafc7ba9d444dc84b937a8 diff --git a/Network/HTTP/Lucu/Resource/Tree.hs b/Network/HTTP/Lucu/Resource/Tree.hs index 8fbe2bf..11d5b2b 100644 --- a/Network/HTTP/Lucu/Resource/Tree.hs +++ b/Network/HTTP/Lucu/Resource/Tree.hs @@ -144,6 +144,9 @@ data ResNode = ResNode (Maybe ResourceDef) ResSubtree -- , ([\"unistd\"], 'Network.HTTP.Lucu.StaticFile.staticFile' \"\/usr\/include\/unistd.h\") -- \/unistd -- ] -- @ +-- +-- Note that the request path in an incoming HTTP request is always +-- treated as an URI-encoded UTF-8 string. mkResTree ∷ [ ([Text], ResourceDef) ] → ResTree mkResTree = processRoot ∘ map (first canonicalisePath) where @@ -292,6 +295,7 @@ runResource (ResourceDef {..}) itr@(Interaction {..}) mapM_ (uncurry setHeader) $ fromHeaders $ aboHeaders abo output $ LT.encodeUtf8 $ abortPage itrConfig itrRequest res abo else - when (cnfDumpTooLateAbortionToStderr itrConfig) - $ hPutStrLn stderr $ show abo + do when (cnfDumpTooLateAbortionToStderr itrConfig) + $ hPutStrLn stderr $ show abo + atomically $ writeTVar itrWillClose True runRes (driftTo Done) itr