X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=Network%2FHTTP%2FLucu%2FInteraction.hs;h=20b4bc27ec956fffb6b959be6dae9c6359182694;hb=8225cc52ffe4c3d900ae1f79573089be230b80bd;hp=4d153d14e579df2a5d8bc9e410b0e53054f8db0e;hpb=1f0a19cbad7c4b64a773d7f1c1ae9180448624e6;p=Lucu.git diff --git a/Network/HTTP/Lucu/Interaction.hs b/Network/HTTP/Lucu/Interaction.hs index 4d153d1..20b4bc2 100644 --- a/Network/HTTP/Lucu/Interaction.hs +++ b/Network/HTTP/Lucu/Interaction.hs @@ -7,7 +7,7 @@ module Network.HTTP.Lucu.Interaction ( Interaction(..) , InteractionState(..) , InteractionQueue - , GetBodyRequest(..) + , ReceiveBodyRequest(..) , newInteractionQueue , newInteraction @@ -20,7 +20,6 @@ import qualified Data.ByteString as Strict import Data.Monoid.Unicode import Data.Sequence (Seq) import qualified Data.Sequence as S -import Data.Text (Text) import Network.Socket import Network.HTTP.Lucu.Config import Network.HTTP.Lucu.HttpVersion @@ -34,15 +33,16 @@ data Interaction = Interaction { , itrLocalPort ∷ !PortNumber , itrRemoteAddr ∷ !SockAddr , itrRemoteCert ∷ !(Maybe X509) - , itrResourcePath ∷ !(Maybe [Text]) + , itrResourcePath ∷ !(Maybe [Strict.ByteString]) , itrRequest ∷ !(Maybe Request) , itrExpectedContinue ∷ !(Maybe Bool) , itrReqBodyLength ∷ !(Maybe RequestBodyLength) - , itrGetBodyRequest ∷ !(TMVar GetBodyRequest) - , itrGotBody ∷ !(TMVar Strict.ByteString) + , itrReceiveBodyReq ∷ !(TMVar ReceiveBodyRequest) + , itrReceivedBody ∷ !(TMVar Strict.ByteString) + , itrSendContinue ∷ !(TMVar Bool) , itrResponse ∷ !(TVar Response) , itrWillChunkBody ∷ !(TVar Bool) , itrWillDiscardBody ∷ !(TVar Bool) @@ -57,16 +57,16 @@ data Interaction = Interaction { -- initial state. data InteractionState = ExaminingRequest - | GettingBody + | ReceivingBody | DecidingHeader - | DecidingBody + | SendingBody | Done deriving (Show, Eq, Ord, Enum) type InteractionQueue = TVar (Seq Interaction) -data GetBodyRequest - = GetBody !Int -- ^ Maximum number of bytes. +data ReceiveBodyRequest + = ReceiveBody !Int -- ^ Maximum number of octets to receive. | WasteAll deriving (Show, Eq) @@ -87,9 +87,10 @@ newInteraction conf@(Config {..}) port addr cert request , resHeaders = (∅) } - getBodyRequest ← newEmptyTMVarIO - gotBody ← newEmptyTMVarIO + receiveBodyReq ← newEmptyTMVarIO + receivedBody ← newEmptyTMVarIO + sendContinue ← newEmptyTMVarIO response ← newTVarIO res willChunkBody ← newTVarIO False willDiscardBody ← newTVarIO (arWillDiscardBody ar) @@ -110,9 +111,10 @@ newInteraction conf@(Config {..}) port addr cert request , itrExpectedContinue = arExpectedContinue ar , itrReqBodyLength = arReqBodyLength ar - , itrGetBodyRequest = getBodyRequest - , itrGotBody = gotBody + , itrReceiveBodyReq = receiveBodyReq + , itrReceivedBody = receivedBody + , itrSendContinue = sendContinue , itrResponse = response , itrWillChunkBody = willChunkBody , itrWillDiscardBody = willDiscardBody