( Interaction(..)
, InteractionState(..)
, InteractionQueue
- , GetBodyRequest(..)
+ , ReceiveBodyRequest(..)
, newInteractionQueue
, newInteraction
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
, 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)
-- 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)
, resHeaders = (∅)
}
- getBodyRequest ← newEmptyTMVarIO
- gotBody ← newEmptyTMVarIO
+ receiveBodyReq ← newEmptyTMVarIO
+ receivedBody ← newEmptyTMVarIO
+ sendContinue ← newEmptyTMVarIO
response ← newTVarIO res
willChunkBody ← newTVarIO False
willDiscardBody ← newTVarIO (arWillDiscardBody ar)
, itrExpectedContinue = arExpectedContinue ar
, itrReqBodyLength = arReqBodyLength ar
- , itrGetBodyRequest = getBodyRequest
- , itrGotBody = gotBody
+ , itrReceiveBodyReq = receiveBodyReq
+ , itrReceivedBody = receivedBody
+ , itrSendContinue = sendContinue
, itrResponse = response
, itrWillChunkBody = willChunkBody
, itrWillDiscardBody = willDiscardBody