]> gitweb @ CieloNegro.org - Lucu.git/blobdiff - Network/HTTP/Lucu/Interaction.hs
The library compiles again.
[Lucu.git] / Network / HTTP / Lucu / Interaction.hs
index 4d153d14e579df2a5d8bc9e410b0e53054f8db0e..20b4bc27ec956fffb6b959be6dae9c6359182694 100644 (file)
@@ -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