X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=Network%2FHTTP%2FLucu%2FDefaultPage.hs;h=70d4a6a278b29c6aa6f3e70ba31b3d2920565e1f;hb=1789cee;hp=b530455f6ce99d686843f343aa4d4ba7042baab7;hpb=6126eb9cbe5b38c300d855d96d2238831e59b5dd;p=Lucu.git diff --git a/Network/HTTP/Lucu/DefaultPage.hs b/Network/HTTP/Lucu/DefaultPage.hs index b530455..70d4a6a 100644 --- a/Network/HTTP/Lucu/DefaultPage.hs +++ b/Network/HTTP/Lucu/DefaultPage.hs @@ -1,28 +1,24 @@ {-# LANGUAGE OverloadedStrings - , RecordWildCards , UnicodeSyntax #-} module Network.HTTP.Lucu.DefaultPage ( getDefaultPage - , writeDefaultPage + , defaultPageContentType , mkDefaultPage ) where -import qualified Blaze.ByteString.Builder.Char.Utf8 as BB import Control.Arrow import Control.Arrow.ArrowList import Control.Arrow.ListArrow import Control.Arrow.Unicode -import Control.Concurrent.STM -import Control.Monad +import Data.Ascii (Ascii) import qualified Data.Ascii as A import Data.Maybe import qualified Data.Text as T import qualified Data.Text.Lazy as Lazy import Network.HTTP.Lucu.Config import Network.HTTP.Lucu.Headers -import Network.HTTP.Lucu.Interaction import Network.HTTP.Lucu.Request import Network.HTTP.Lucu.Response import Network.URI hiding (path) @@ -43,13 +39,9 @@ getDefaultPage conf req res in Lazy.pack xmlStr -writeDefaultPage ∷ Interaction → STM () -writeDefaultPage (Interaction {..}) - -- Content-Type が正しくなければ補完できない。 - = do res ← readTVar itrResponse - when (getHeader "Content-Type" res ≡ Just defaultPageContentType) - $ do let page = getDefaultPage itrConfig itrRequest res - putTMVar itrBodyToSend (BB.fromLazyText page) +defaultPageContentType ∷ Ascii +{-# INLINE defaultPageContentType #-} +defaultPageContentType = "application/xhtml+xml" mkDefaultPage ∷ (ArrowXml a) ⇒ Config → StatusCode → a b XmlTree → a b XmlTree {-# INLINEABLE mkDefaultPage #-}