X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=Lucu.git;a=blobdiff_plain;f=Network%2FHTTP%2FLucu%2FResource.hs;h=08fb6f19ce50b434457d42f0deef09710f6c31f1;hp=ec5818c1e9cbbe877ad9106397abc5ee4a30c6e1;hb=37b2602949bdb71894852304753f3aab34de191b;hpb=73ddbe92c23aec1d4e06cb9dce1b2b088643f5c2 diff --git a/Network/HTTP/Lucu/Resource.hs b/Network/HTTP/Lucu/Resource.hs index ec5818c..08fb6f1 100644 --- a/Network/HTTP/Lucu/Resource.hs +++ b/Network/HTTP/Lucu/Resource.hs @@ -146,6 +146,7 @@ import Data.Char import Data.List import Data.Maybe import Data.Time +import qualified Data.Time.HTTP as HTTP import Network.HTTP.Lucu.Abortion import Network.HTTP.Lucu.Authorization import Network.HTTP.Lucu.Config @@ -158,7 +159,6 @@ import Network.HTTP.Lucu.Interaction import Network.HTTP.Lucu.MultipartForm import Network.HTTP.Lucu.Parser import Network.HTTP.Lucu.Postprocess -import Network.HTTP.Lucu.RFC1123DateTime import Network.HTTP.Lucu.Request import Network.HTTP.Lucu.Response import Network.HTTP.Lucu.MIMEType @@ -425,7 +425,7 @@ foundEntity tag timeStamp method <- getMethod when (method == GET || method == HEAD) - $ setHeader' (C8.pack "Last-Modified") (C8.pack $ formatHTTPDateTime timeStamp) + $ setHeader' (C8.pack "Last-Modified") (C8.pack $ HTTP.format timeStamp) when (method == POST) $ abort InternalServerError [] (Just "Illegal computation of foundEntity for POST request.") @@ -507,7 +507,7 @@ foundTimeStamp timeStamp method <- getMethod when (method == GET || method == HEAD) - $ setHeader' (C8.pack "Last-Modified") (C8.pack $ formatHTTPDateTime timeStamp) + $ setHeader' (C8.pack "Last-Modified") (C8.pack $ HTTP.format timeStamp) when (method == POST) $ abort InternalServerError [] (Just "Illegal computation of foundTimeStamp for POST request.") @@ -520,7 +520,7 @@ foundTimeStamp timeStamp -- If-Modified-Since があればそれを見る。 ifModSince <- getHeader (C8.pack "If-Modified-Since") case ifModSince of - Just str -> case parseHTTPDateTime (L8.fromChunks [str]) of + Just str -> case HTTP.parse (C8.unpack str) of Just lastTime -> when (timeStamp <= lastTime) $ abort statusForIfModSince [] @@ -532,7 +532,7 @@ foundTimeStamp timeStamp -- If-Unmodified-Since があればそれを見る。 ifUnmodSince <- getHeader (C8.pack "If-Unmodified-Since") case ifUnmodSince of - Just str -> case parseHTTPDateTime (L8.fromChunks [str]) of + Just str -> case HTTP.parse (C8.unpack str) of Just lastTime -> when (timeStamp > lastTime) $ abort PreconditionFailed []