on master help sign in
creating Imports module for warning free.
commitc7c77d0679061636c1fcc9ed4b00427ff6097032 authorKazu Yamamoto <kazu@iij.ad.jp> dateWed 22 Nov 2017, 17:35 (9 years ago) parentba9b28d
32 files changed+134−114
warp/Network/Wai/Handler/Warp.hs+4−4 warp/Network/Wai/Handler/Warp/Buffer.hs+3−1 warp/Network/Wai/Handler/Warp/Conduit.hs+2−3 warp/Network/Wai/Handler/Warp/Counter.hs+3−1 warp/Network/Wai/Handler/Warp/File.hs+3−4 warp/Network/Wai/Handler/Warp/FileInfoCache.hs+3−3 warp/Network/Wai/Handler/Warp/HTTP2.hs+2−2 warp/Network/Wai/Handler/Warp/HTTP2/EncodeFrame.hs+2−1 warp/Network/Wai/Handler/Warp/HTTP2/File.hs+4−6 warp/Network/Wai/Handler/Warp/HTTP2/HPACK.hs+2−2 warp/Network/Wai/Handler/Warp/HTTP2/Manager.hs+2−1 warp/Network/Wai/Handler/Warp/HTTP2/Receiver.hs+2−2 warp/Network/Wai/Handler/Warp/HTTP2/Request.hs+4−5 warp/Network/Wai/Handler/Warp/HTTP2/Sender.hs+10−12 warp/Network/Wai/Handler/Warp/HTTP2/Types.hs+5−6 warp/Network/Wai/Handler/Warp/HTTP2/Worker.hs+3−4 warp/Network/Wai/Handler/Warp/HashMap.hs+2−1 warp/Network/Wai/Handler/Warp/Header.hs+1 warp/Network/Wai/Handler/Warp/IO.hs+2−1 warp/Network/Wai/Handler/Warp/Imports.hs+27 warp/Network/Wai/Handler/Warp/PackInt.hs+3−3 warp/Network/Wai/Handler/Warp/ReadInt.hs+2−2 warp/Network/Wai/Handler/Warp/Recv.hs+3−3 warp/Network/Wai/Handler/Warp/Request.hs+9−9 warp/Network/Wai/Handler/Warp/RequestHeader.hs+3−3 warp/Network/Wai/Handler/Warp/Response.hs+5−8 warp/Network/Wai/Handler/Warp/ResponseHeader.hs+2−4 warp/Network/Wai/Handler/Warp/Run.hs+7−6 warp/Network/Wai/Handler/Warp/SendFile.hs+4−8 warp/Network/Wai/Handler/Warp/Settings.hs+5−5 warp/Network/Wai/Handler/Warp/Types.hs+3−3 warp/Network/Wai/Handler/Warp/Windows.hs+2−1
warp/Network/Wai/Handler/Warp.hs+4−4
@@ -119,20 +119,20 @@ module Network.Wai.Handler.Warp (
119119 ) where
120120
121121import Control.Exception (SomeException, throwIO)
122−import Data.ByteString (ByteString)
123−import Data.Maybe (fromMaybe)
124122import Data.Streaming.Network (HostPreference)
125123import qualified Data.Vault.Lazy as Vault
126124import qualified Network.HTTP.Types as H
127125import Network.Socket (SockAddr)
128126import Network.Wai (Request, Response, vault)
127+
129128import Network.Wai.Handler.Warp.FileInfoCache
129+import Network.Wai.Handler.Warp.HTTP2.Request (getHTTP2Data, setHTTP2Data, modifyHTTP2Data)
130+import Network.Wai.Handler.Warp.HTTP2.Types
131+import Network.Wai.Handler.Warp.Imports
130132import Network.Wai.Handler.Warp.Request
131133import Network.Wai.Handler.Warp.Response (warpVersion)
132134import Network.Wai.Handler.Warp.Run
133135import Network.Wai.Handler.Warp.Settings
134−import Network.Wai.Handler.Warp.HTTP2.Request (getHTTP2Data, setHTTP2Data, modifyHTTP2Data)
135−import Network.Wai.Handler.Warp.HTTP2.Types
136136import Network.Wai.Handler.Warp.Timeout
137137import Network.Wai.Handler.Warp.Types hiding (getFileInfo)
138138import Network.Wai.Handler.Warp.WithApplication
warp/Network/Wai/Handler/Warp/Buffer.hs+3−1
@@ -13,13 +13,15 @@ module Network.Wai.Handler.Warp.Buffer (
1313 ) where
1414
1515import qualified Data.ByteString as BS
16−import Data.ByteString.Internal (ByteString(..), memcpy)
16+import Data.ByteString.Internal (memcpy)
1717import Data.ByteString.Unsafe (unsafeTake, unsafeDrop)
1818import Data.IORef (newIORef, readIORef, writeIORef)
1919import qualified Data.Streaming.ByteString.Builder.Buffer as B (Buffer (..))
2020import Foreign.ForeignPtr
2121import Foreign.Marshal.Alloc (mallocBytes, free, finalizerFree)
2222import Foreign.Ptr (castPtr, plusPtr)
23+
24+import Network.Wai.Handler.Warp.Imports
2325import Network.Wai.Handler.Warp.Types
2426
2527----------------------------------------------------------------
warp/Network/Wai/Handler/Warp/Conduit.hs+2−3
@@ -3,11 +3,10 @@
33module Network.Wai.Handler.Warp.Conduit where
44
55import Control.Exception
6−import Control.Monad (when, unless)
7−import Data.ByteString (ByteString)
86import qualified Data.ByteString as S
97import qualified Data.IORef as I
10−import Data.Word (Word8)
8+
9+import Network.Wai.Handler.Warp.Imports
1110import Network.Wai.Handler.Warp.Types
1211
1312----------------------------------------------------------------
warp/Network/Wai/Handler/Warp/Counter.hs+3−1
@@ -9,7 +9,9 @@ module Network.Wai.Handler.Warp.Counter (
99 ) where
1010
1111import Control.Concurrent.STM
12−import Control.Monad (unless)
12+
13+import Network.Wai.Handler.Warp.Imports
14+
1315
1416newtype Counter = Counter (TVar Int)
1517
warp/Network/Wai/Handler/Warp/File.hs+3−4
@@ -9,19 +9,18 @@ module Network.Wai.Handler.Warp.File (
99 , H.parseByteRanges
1010 ) where
1111
12−import Control.Applicative ((<|>))
1312import Data.Array ((!))
1413import qualified Data.ByteString.Char8 as C8 (pack)
15−import Data.ByteString (ByteString)
16−import Data.Maybe (fromMaybe)
1714import Network.HTTP.Date
1815import qualified Network.HTTP.Types as H
1916import qualified Network.HTTP.Types.Header as H
2017import Network.Wai
18+
2119import qualified Network.Wai.Handler.Warp.FileInfoCache as I
2220import Network.Wai.Handler.Warp.Header
21+import Network.Wai.Handler.Warp.Imports
2322import Network.Wai.Handler.Warp.PackInt
24−import Numeric (showInt)
23+
2524
2625-- $setup
2726-- >>> import Test.QuickCheck
warp/Network/Wai/Handler/Warp/FileInfoCache.hs+3−3
@@ -8,13 +8,13 @@ module Network.Wai.Handler.Warp.FileInfoCache (
88 ) where
99
1010import Control.Exception as E
11−import Control.Monad (void)
1211import Control.Reaper
13−import Data.ByteString (ByteString)
1412import Network.HTTP.Date
13+import System.PosixCompat.Files
14+
1515import Network.Wai.Handler.Warp.HashMap (HashMap)
1616import qualified Network.Wai.Handler.Warp.HashMap as M
17−import System.PosixCompat.Files
17+import Network.Wai.Handler.Warp.Imports
1818
1919----------------------------------------------------------------
2020
warp/Network/Wai/Handler/Warp/HTTP2.hs+2−2
@@ -5,11 +5,10 @@ module Network.Wai.Handler.Warp.HTTP2 (isHTTP2, http2) where
55
66import Control.Concurrent (forkIO, killThread)
77import qualified Control.Exception as E
8−import Control.Monad (when, unless, replicateM_)
9−import Data.ByteString (ByteString)
108import Network.HTTP2
119import Network.Socket (SockAddr)
1210import Network.Wai
11+
1312import Network.Wai.Handler.Warp.HTTP2.EncodeFrame
1413import Network.Wai.Handler.Warp.HTTP2.Manager
1514import Network.Wai.Handler.Warp.HTTP2.Receiver
@@ -17,6 +16,7 @@ import Network.Wai.Handler.Warp.HTTP2.Request
1716import Network.Wai.Handler.Warp.HTTP2.Sender
1817import Network.Wai.Handler.Warp.HTTP2.Types
1918import Network.Wai.Handler.Warp.HTTP2.Worker
19+import Network.Wai.Handler.Warp.Imports
2020import qualified Network.Wai.Handler.Warp.Settings as S (Settings)
2121import Network.Wai.Handler.Warp.Types
2222
warp/Network/Wai/Handler/Warp/HTTP2/EncodeFrame.hs+2−1
@@ -1,8 +1,9 @@
11module Network.Wai.Handler.Warp.HTTP2.EncodeFrame where
22
3−import Data.ByteString (ByteString)
43import Network.HTTP2
54
5+import Network.Wai.Handler.Warp.Imports
6+
67----------------------------------------------------------------
78
89goawayFrame :: StreamId -> ErrorCodeId -> ByteString -> ByteString
warp/Network/Wai/Handler/Warp/HTTP2/File.hs+4−6
@@ -9,18 +9,16 @@ module Network.Wai.Handler.Warp.HTTP2.File (
99 , H.parseByteRanges
1010 ) where
1111
12−import Control.Applicative ((<|>))
1312import qualified Data.ByteString.Char8 as C8 (pack)
14−import Data.ByteString (ByteString)
15−import Data.Maybe (fromMaybe)
13+import Network.HPACK
14+import Network.HPACK.Token
1615import Network.HTTP.Date
1716import qualified Network.HTTP.Types as H
1817import Network.Wai
18+
1919import qualified Network.Wai.Handler.Warp.FileInfoCache as I
20+import Network.Wai.Handler.Warp.Imports
2021import Network.Wai.Handler.Warp.PackInt
21−import Numeric (showInt)
22−import Network.HPACK
23−import Network.HPACK.Token
2422
2523-- $setup
2624-- >>> import Test.QuickCheck
warp/Network/Wai/Handler/Warp/HTTP2/HPACK.hs+2−2
@@ -11,12 +11,12 @@ module Network.Wai.Handler.Warp.HTTP2.HPACK (
1111 ) where
1212
1313import qualified Control.Exception as E
14−import Control.Monad (unless)
15−import Data.ByteString (ByteString)
1614import Network.HPACK hiding (Buffer)
1715import Network.HPACK.Token
1816import Network.HTTP2
17+
1918import Network.Wai.Handler.Warp.HTTP2.Types
19+import Network.Wai.Handler.Warp.Imports
2020import Network.Wai.Handler.Warp.PackInt
2121import qualified Network.Wai.Handler.Warp.Settings as S
2222import Network.Wai.Handler.Warp.Types
warp/Network/Wai/Handler/Warp/HTTP2/Manager.hs+2−1
@@ -15,11 +15,12 @@ module Network.Wai.Handler.Warp.HTTP2.Manager (
1515
1616import Control.Concurrent
1717import Control.Concurrent.STM
18−import Control.Monad (void)
1918import Data.Foldable
2019import Data.IORef
2120import Data.Set (Set)
2221import qualified Data.Set as Set
22+
23+import Network.Wai.Handler.Warp.Imports
2324import Network.Wai.Handler.Warp.Settings
2425import qualified Network.Wai.Handler.Warp.Timeout as T
2526
warp/Network/Wai/Handler/Warp/HTTP2/Receiver.hs+2−2
@@ -9,18 +9,18 @@ module Network.Wai.Handler.Warp.HTTP2.Receiver (frameReceiver) where
99import Control.Concurrent
1010import Control.Concurrent.STM
1111import qualified Control.Exception as E
12−import Control.Monad (when, unless, void)
13−import Data.ByteString (ByteString)
1412import qualified Data.ByteString as BS
1513import Data.IORef
1614import Network.HPACK
1715import Network.HPACK.Token
1816import Network.HTTP2
1917import Network.HTTP2.Priority (toPrecedence, delete, prepare)
18+
2019import Network.Wai.Handler.Warp.HTTP2.EncodeFrame
2120import Network.Wai.Handler.Warp.HTTP2.HPACK
2221import Network.Wai.Handler.Warp.HTTP2.Request
2322import Network.Wai.Handler.Warp.HTTP2.Types
23+import Network.Wai.Handler.Warp.Imports hiding (delete, insert, readInt)
2424import Network.Wai.Handler.Warp.ReadInt
2525import Network.Wai.Handler.Warp.Types
2626
warp/Network/Wai/Handler/Warp/HTTP2/Request.hs+4−5
@@ -9,26 +9,25 @@ module Network.Wai.Handler.Warp.HTTP2.Request (
99 , modifyHTTP2Data
1010 ) where
1111
12−import Control.Applicative ((<|>))
1312import Control.Arrow (first)
14−import Data.ByteString (ByteString)
1513import qualified Data.ByteString.Char8 as C8
1614import Data.IORef
17−import Data.Maybe (fromJust)
1815import qualified Data.Vault.Lazy as Vault
1916import Network.HPACK
2017import Network.HPACK.Token
2118import qualified Network.HTTP.Types as H
2219import Network.Socket (SockAddr)
2320import Network.Wai
21+import Network.Wai.Internal (Request(..))
22+import System.IO.Unsafe (unsafePerformIO)
23+
2424import Network.Wai.Handler.Warp.HTTP2.Types
2525import Network.Wai.Handler.Warp.HashMap (hashByteString)
26+import Network.Wai.Handler.Warp.Imports
2627import Network.Wai.Handler.Warp.Request (pauseTimeoutKey, getFileInfoKey)
2728import qualified Network.Wai.Handler.Warp.Settings as S (Settings, settingsNoParsePath)
2829import qualified Network.Wai.Handler.Warp.Timeout as Timeout
2930import Network.Wai.Handler.Warp.Types
30−import Network.Wai.Internal (Request(..))
31−import System.IO.Unsafe (unsafePerformIO)
3231
3332type MkReq = (TokenHeaderList,ValueTable) -> (Maybe Int,IO ByteString) -> IO (Request,InternalInfo)
3433
warp/Network/Wai/Handler/Warp/HTTP2/Sender.hs+10−12
@@ -6,27 +6,16 @@ module Network.Wai.Handler.Warp.HTTP2.Sender (frameSender) where
66
77import Control.Concurrent.STM
88import qualified Control.Exception as E
9−import Control.Monad (void, when)
10−import Data.Bits
119import qualified Data.ByteString as BS
1210import Data.ByteString.Builder (Builder)
1311import qualified Data.ByteString.Builder.Extra as B
1412import Data.IORef
15−import Data.Maybe (isNothing)
16−import Data.Word (Word8, Word32)
1713import Foreign.Ptr (Ptr, plusPtr)
1814import Foreign.Storable (poke)
1915import Network.HPACK (setLimitForEncoding, toHeaderTable)
2016import Network.HTTP2
2117import Network.HTTP2.Priority (isEmptySTM, dequeueSTM, Precedence)
2218import Network.Wai
23−import Network.Wai.Handler.Warp.Buffer
24−import Network.Wai.Handler.Warp.HTTP2.EncodeFrame
25−import Network.Wai.Handler.Warp.HTTP2.HPACK
26−import Network.Wai.Handler.Warp.HTTP2.Manager (Manager)
27−import Network.Wai.Handler.Warp.HTTP2.Types
28−import qualified Network.Wai.Handler.Warp.Settings as S
29−import Network.Wai.Handler.Warp.Types
3019
3120#ifdef WINDOWS
3221import qualified System.IO as IO
@@ -36,11 +25,20 @@ import Network.Wai.Handler.Warp.SendFile (positionRead)
3625import qualified Network.Wai.Handler.Warp.Timeout as T
3726#endif
3827
28+import Network.Wai.Handler.Warp.Buffer
29+import Network.Wai.Handler.Warp.HTTP2.EncodeFrame
30+import Network.Wai.Handler.Warp.HTTP2.HPACK
31+import Network.Wai.Handler.Warp.HTTP2.Manager (Manager)
32+import Network.Wai.Handler.Warp.HTTP2.Types
33+import Network.Wai.Handler.Warp.Imports hiding (readInt)
34+import qualified Network.Wai.Handler.Warp.Settings as S
35+import Network.Wai.Handler.Warp.Types
36+
3937----------------------------------------------------------------
4038
4139data Leftover = LZero
4240 | LOne B.BufferWriter
43− | LTwo BS.ByteString B.BufferWriter
41+ | LTwo ByteString B.BufferWriter
4442
4543----------------------------------------------------------------
4644
warp/Network/Wai/Handler/Warp/HTTP2/Types.hs+5−6
@@ -7,22 +7,21 @@ module Network.Wai.Handler.Warp.HTTP2.Types where
77import Control.Concurrent (forkIO)
88import Control.Concurrent.STM
99import Control.Exception (SomeException, bracket)
10−import Control.Monad (void, forM_)
11−import Data.ByteString (ByteString)
1210import qualified Data.ByteString as BS
1311import Data.ByteString.Builder (Builder)
1412import Data.IORef
1513import Data.IntMap.Strict (IntMap, IntMap)
1614import qualified Data.IntMap.Strict as M
15+import Network.HPACK hiding (Buffer)
1716import qualified Network.HTTP.Types as H
17+import Network.HTTP2
18+import Network.HTTP2.Priority
1819import Network.Wai (Request, FilePart)
20+
1921import Network.Wai.Handler.Warp.HTTP2.Manager
22+import Network.Wai.Handler.Warp.Imports
2023import Network.Wai.Handler.Warp.Types
2124
22−import Network.HTTP2
23−import Network.HTTP2.Priority
24−import Network.HPACK hiding (Buffer)
25−
2625----------------------------------------------------------------
2726
2827http2ver :: H.HttpVersion
warp/Network/Wai/Handler/Warp/HTTP2/Worker.hs+3−4
@@ -11,31 +11,30 @@ module Network.Wai.Handler.Warp.HTTP2.Worker (
1111 , worker
1212 ) where
1313
14−import Control.Applicative ((<|>))
1514import Control.Concurrent.STM
1615import Control.Exception (SomeException(..), AsyncException(..))
1716import qualified Control.Exception as E
18−import Control.Monad (when)
1917import Data.ByteString.Builder (byteString)
2018import Data.IORef
21−import Data.Maybe (fromJust)
2219import Network.HPACK
2320import Network.HPACK.Token
2421import qualified Network.HTTP.Types as H
2522import Network.HTTP2
2623import Network.HTTP2.Priority
2724import Network.Wai
25+import Network.Wai.Internal (Response(..), ResponseReceived(..), ResponseReceived(..))
26+
2827import Network.Wai.Handler.Warp.FileInfoCache
2928import Network.Wai.Handler.Warp.HTTP2.EncodeFrame
3029import Network.Wai.Handler.Warp.HTTP2.File
3130import Network.Wai.Handler.Warp.HTTP2.Manager
3231import Network.Wai.Handler.Warp.HTTP2.Request
3332import Network.Wai.Handler.Warp.HTTP2.Types
33+import Network.Wai.Handler.Warp.Imports hiding (insert)
3434import qualified Network.Wai.Handler.Warp.Response as R
3535import qualified Network.Wai.Handler.Warp.Settings as S
3636import qualified Network.Wai.Handler.Warp.Timeout as T
3737import Network.Wai.Handler.Warp.Types
38−import Network.Wai.Internal (Response(..), ResponseReceived(..), ResponseReceived(..))
3938
4039----------------------------------------------------------------
4140
warp/Network/Wai/Handler/Warp/HashMap.hs+2−1
@@ -1,6 +1,5 @@
11module Network.Wai.Handler.Warp.HashMap where
22
3−import Data.ByteString (ByteString)
43import Data.Hashable (hash)
54import Data.IntMap.Strict (IntMap)
65import qualified Data.IntMap.Strict as I
@@ -8,6 +7,8 @@ import Data.Map.Strict (Map)
87import qualified Data.Map.Strict as M
98import Prelude hiding (lookup)
109
10+import Network.Wai.Handler.Warp.Imports hiding (insert, lookup)
11+
1112type Hash = Int
1213newtype HashMap k v = HashMap (IntMap (Map k v))
1314
warp/Network/Wai/Handler/Warp/Header.hs+1
@@ -7,6 +7,7 @@ import Data.Array.ST
77import qualified Data.ByteString as BS
88import Data.CaseInsensitive (foldedCase)
99import Network.HTTP.Types
10+
1011import Network.Wai.Handler.Warp.Types
1112
1213----------------------------------------------------------------
warp/Network/Wai/Handler/Warp/IO.hs+2−1
@@ -3,10 +3,11 @@
33
44module Network.Wai.Handler.Warp.IO where
55
6−import Data.ByteString (ByteString)
76import Data.ByteString.Builder (Builder)
87import Data.ByteString.Builder.Extra (runBuilder, Next(Done, More, Chunk))
8+
99import Network.Wai.Handler.Warp.Buffer
10+import Network.Wai.Handler.Warp.Imports
1011import Network.Wai.Handler.Warp.Types
1112
1213toBufIOWith :: Buffer -> BufSize -> (ByteString -> IO ()) -> Builder -> IO ()
warp/Network/Wai/Handler/Warp/Imports.hsnew file+27
@@ -0,0 +1,27 @@
1+module Network.Wai.Handler.Warp.Imports (
2+ ByteString(..)
3+ , NonEmpty(..)
4+ , module Control.Applicative
5+ , module Control.Monad
6+ , module Data.Bits
7+ , module Data.List
8+ , module Data.Int
9+ , module Data.Monoid
10+ , module Data.Ord
11+ , module Data.Word
12+ , module Data.Maybe
13+ , module Numeric
14+ ) where
15+
16+import Control.Applicative
17+import Control.Monad
18+import Data.Bits
19+import Data.ByteString.Internal (ByteString(..))
20+import Data.Int
21+import Data.List
22+import Data.List.NonEmpty (NonEmpty(..))
23+import Data.Maybe
24+import Data.Monoid
25+import Data.Ord
26+import Data.Word
27+import Numeric
warp/Network/Wai/Handler/Warp/PackInt.hs+3−3
@@ -2,13 +2,13 @@
22
33module Network.Wai.Handler.Warp.PackInt where
44
5−import Control.Monad (when)
6−import Data.ByteString.Internal (ByteString(..), unsafeCreate)
7−import Data.Word8 (Word8)
5+import Data.ByteString.Internal (unsafeCreate)
86import Foreign.Ptr (Ptr, plusPtr)
97import Foreign.Storable (poke)
108import qualified Network.HTTP.Types as H
119
10+import Network.Wai.Handler.Warp.Imports
11+
1212-- $setup
1313-- >>> import Data.ByteString.Char8 as C8
1414-- >>> import Test.QuickCheck (Large(..))
warp/Network/Wai/Handler/Warp/ReadInt.hs+2−2
@@ -13,13 +13,13 @@ module Network.Wai.Handler.Warp.ReadInt (
1313-- This function lives in its own file because the MagicHash pragma interacts
1414-- poorly with the CPP pragma.
1515
16−import Data.ByteString (ByteString)
1716import qualified Data.ByteString as S
18−import Data.Int (Int64)
1917import GHC.Prim
2018import GHC.Types
2119import GHC.Word
2220
21+import Network.Wai.Handler.Warp.Imports hiding (readInt)
22+
2323{-# INLINE readInt #-}
2424readInt :: Integral a => ByteString -> a
2525readInt bs = fromIntegral $ readInt64 bs
warp/Network/Wai/Handler/Warp/Recv.hs+3−3
@@ -11,18 +11,18 @@ module Network.Wai.Handler.Warp.Recv (
1111
1212import qualified Control.Exception as E
1313import qualified Data.ByteString as BS
14−import Data.ByteString.Internal (ByteString(..))
1514import Data.IORef
16−import Data.Word (Word8)
1715import Foreign.C.Error (eAGAIN, getErrno, throwErrno)
1816import Foreign.C.Types
1917import Foreign.ForeignPtr (withForeignPtr)
2018import Foreign.Ptr (Ptr, castPtr, plusPtr)
2119import GHC.Conc (threadWaitRead)
2220import Network.Socket (Socket, fdSocket)
21+import System.Posix.Types (Fd(..))
22+
2323import Network.Wai.Handler.Warp.Buffer
24+import Network.Wai.Handler.Warp.Imports
2425import Network.Wai.Handler.Warp.Types
25−import System.Posix.Types (Fd(..))
2626
2727#ifdef mingw32_HOST_OS
2828import GHC.IO.FD (FD(..), readRawBufferPtr)
warp/Network/Wai/Handler/Warp/Request.hs+9−9
@@ -15,29 +15,29 @@ module Network.Wai.Handler.Warp.Request (
1515import qualified Control.Concurrent as Conc (yield)
1616import Control.Exception (throwIO, Exception)
1717import Data.Array ((!))
18−import Data.ByteString (ByteString)
19−import Data.Typeable (Typeable)
2018import qualified Data.ByteString as S
2119import qualified Data.ByteString.Unsafe as SU
2220import qualified Data.CaseInsensitive as CI
2321import qualified Data.IORef as I
22+import Data.Typeable (Typeable)
23+import qualified Data.Vault.Lazy as Vault
2424import qualified Network.HTTP.Types as H
2525import Network.Socket (SockAddr)
2626import Network.Wai
27+import qualified Network.Wai.Handler.Warp.Timeout as Timeout
28+import Network.Wai.Handler.Warp.Types
29+import Network.Wai.Internal
30+import Prelude hiding (lines)
31+import System.IO.Unsafe (unsafePerformIO)
32+
2733import Network.Wai.Handler.Warp.Conduit
2834import Network.Wai.Handler.Warp.FileInfoCache
2935import Network.Wai.Handler.Warp.HashMap (hashByteString)
3036import Network.Wai.Handler.Warp.Header
37+import Network.Wai.Handler.Warp.Imports hiding (readInt, lines)
3138import Network.Wai.Handler.Warp.ReadInt
3239import Network.Wai.Handler.Warp.RequestHeader
3340import Network.Wai.Handler.Warp.Settings (Settings, settingsNoParsePath)
34−import qualified Network.Wai.Handler.Warp.Timeout as Timeout
35−import Network.Wai.Handler.Warp.Types
36−import Network.Wai.Internal
37−import Prelude hiding (lines)
38−import Control.Monad (when)
39−import qualified Data.Vault.Lazy as Vault
40−import System.IO.Unsafe (unsafePerformIO)
4141
4242----------------------------------------------------------------
4343
warp/Network/Wai/Handler/Warp/RequestHeader.hs+3−3
@@ -5,16 +5,16 @@ module Network.Wai.Handler.Warp.RequestHeader (
55 ) where
66
77import Control.Exception (throwIO)
8−import Control.Monad (when)
98import qualified Data.ByteString as S
109import qualified Data.ByteString.Char8 as C8 (unpack)
11−import Data.ByteString.Internal (ByteString(..), memchr)
10+import Data.ByteString.Internal (memchr)
1211import qualified Data.CaseInsensitive as CI
13−import Data.Word (Word8)
1412import Foreign.ForeignPtr (withForeignPtr)
1513import Foreign.Ptr (Ptr, plusPtr, minusPtr, nullPtr)
1614import Foreign.Storable (peek)
1715import qualified Network.HTTP.Types as H
16+
17+import Network.Wai.Handler.Warp.Imports
1818import Network.Wai.Handler.Warp.Types
1919
2020-- $setup
warp/Network/Wai/Handler/Warp/Response.hs+5−8
@@ -15,35 +15,32 @@ module Network.Wai.Handler.Warp.Response (
1515
1616import Blaze.ByteString.Builder.HTTP (chunkedTransferEncoding, chunkedTransferTerminator)
1717import qualified Control.Exception as E
18−import Control.Monad (unless, when)
1918import Data.Array ((!))
20−import Data.ByteString (ByteString)
2119import qualified Data.ByteString as S
22−import qualified Data.ByteString.Char8 as C8
2320import Data.ByteString.Builder (byteString, Builder)
2421import Data.ByteString.Builder.Extra (flush)
22+import qualified Data.ByteString.Char8 as C8
2523import qualified Data.CaseInsensitive as CI
2624import Data.Function (on)
27−import Data.List (deleteBy)
28−import Data.Maybe
29−import Data.Monoid ((<>))
3025import Data.Streaming.Blaze (newBlazeRecv, reuseBufferStrategy)
3126import Data.Version (showVersion)
3227import Data.Word8 (_cr, _lf)
3328import qualified Network.HTTP.Types as H
3429import qualified Network.HTTP.Types.Header as H
3530import Network.Wai
31+import Network.Wai.Internal
32+import qualified Paths_warp
33+
3634import Network.Wai.Handler.Warp.Buffer (toBuilderBuffer)
3735import qualified Network.Wai.Handler.Warp.Date as D
3836import Network.Wai.Handler.Warp.File
3937import Network.Wai.Handler.Warp.Header
4038import Network.Wai.Handler.Warp.IO (toBufIOWith)
39+import Network.Wai.Handler.Warp.Imports
4140import Network.Wai.Handler.Warp.ResponseHeader
4241import Network.Wai.Handler.Warp.Settings
4342import qualified Network.Wai.Handler.Warp.Timeout as T
4443import Network.Wai.Handler.Warp.Types
45−import Network.Wai.Internal
46−import qualified Paths_warp
4744
4845-- $setup
4946-- >>> :set -XOverloadedStrings
warp/Network/Wai/Handler/Warp/ResponseHeader.hs+2−4
@@ -3,17 +3,15 @@
33
44module Network.Wai.Handler.Warp.ResponseHeader (composeHeader) where
55
6−import Control.Monad
7−import Data.ByteString (ByteString)
86import qualified Data.ByteString as S
97import Data.ByteString.Internal (create)
108import qualified Data.CaseInsensitive as CI
11−import Data.List (foldl')
12−import Data.Word (Word8)
139import Foreign.Ptr
1410import GHC.Storable
1511import qualified Network.HTTP.Types as H
12+
1613import Network.Wai.Handler.Warp.Buffer (copy)
14+import Network.Wai.Handler.Warp.Imports
1715
1816----------------------------------------------------------------
1917
warp/Network/Wai/Handler/Warp/Run.hs+7−6
@@ -9,14 +9,12 @@
99
1010module Network.Wai.Handler.Warp.Run where
1111
12+import "iproute" Data.IP (toHostAddress, toHostAddress6)
1213import Control.Arrow (first)
1314import qualified Control.Concurrent as Conc (yield)
1415import Control.Exception as E
15−import Control.Monad (when, unless, void)
16−import Data.ByteString (ByteString)
1716import qualified Data.ByteString as S
1817import Data.Char (chr)
19−import "iproute" Data.IP (toHostAddress, toHostAddress6)
2018import Data.IORef (IORef, newIORef, readIORef, writeIORef, atomicModifyIORef')
2119import Data.Streaming.Network (bindPortTCP)
2220import Foreign.C.Error (Errno(..), eCONNABORTED)
@@ -25,6 +23,10 @@ import Network (Socket)
2523import Network.Socket (close, accept, withSocketsDo, SockAddr(SockAddrInet, SockAddrInet6), setSocketOption, SocketOption(..))
2624import qualified Network.Socket.ByteString as Sock
2725import Network.Wai
26+import Network.Wai.Internal (ResponseReceived (ResponseReceived))
27+import System.Environment (getEnvironment)
28+import System.Timeout (timeout)
29+
2830import Network.Wai.Handler.Warp.Buffer
2931import Network.Wai.Handler.Warp.Counter
3032import qualified Network.Wai.Handler.Warp.Date as D
@@ -32,6 +34,7 @@ import qualified Network.Wai.Handler.Warp.FdCache as F
3234import qualified Network.Wai.Handler.Warp.FileInfoCache as I
3335import Network.Wai.Handler.Warp.HTTP2 (http2, isHTTP2)
3436import Network.Wai.Handler.Warp.Header
37+import Network.Wai.Handler.Warp.Imports hiding (readInt)
3538import Network.Wai.Handler.Warp.ReadInt
3639import Network.Wai.Handler.Warp.Recv
3740import Network.Wai.Handler.Warp.Request
@@ -40,9 +43,7 @@ import Network.Wai.Handler.Warp.SendFile
4043import Network.Wai.Handler.Warp.Settings
4144import qualified Network.Wai.Handler.Warp.Timeout as T
4245import Network.Wai.Handler.Warp.Types
43−import Network.Wai.Internal (ResponseReceived (ResponseReceived))
44−import System.Environment (getEnvironment)
45−import System.Timeout (timeout)
46+
4647
4748#if WINDOWS
4849import Network.Wai.Handler.Warp.Windows
warp/Network/Wai/Handler/Warp/SendFile.hs+4−8
@@ -9,22 +9,14 @@ module Network.Wai.Handler.Warp.SendFile (
99#endif
1010 ) where
1111
12−import Control.Monad (void, when)
13−import Data.ByteString (ByteString)
1412import qualified Data.ByteString as BS
1513import Network.Socket (Socket)
16−import Network.Wai.Handler.Warp.Buffer
17−import Network.Wai.Handler.Warp.Types
1814
1915#ifdef WINDOWS
20−import Data.ByteString.Internal (ByteString(..))
2116import Foreign.ForeignPtr (newForeignPtr_)
2217import Foreign.Ptr (plusPtr)
2318import qualified System.IO as IO
2419#else
25−# if __GLASGOW_HASKELL__ < 709
26−import Control.Applicative ((<$>))
27−# endif
2820import Control.Exception
2921import Foreign.C.Error (throwErrno)
3022import Foreign.C.Types
@@ -34,6 +26,10 @@ import Network.Wai.Handler.Warp.FdCache (openFile, closeFile)
3426import System.Posix.Types
3527#endif
3628
29+import Network.Wai.Handler.Warp.Buffer
30+import Network.Wai.Handler.Warp.Imports
31+import Network.Wai.Handler.Warp.Types
32+
3733----------------------------------------------------------------
3834
3935-- | Function to send a file based on sendfile() for Linux\/Mac\/FreeBSD.
warp/Network/Wai/Handler/Warp/Settings.hs+5−5
@@ -6,10 +6,8 @@ module Network.Wai.Handler.Warp.Settings where
66
77import Control.Concurrent (forkIOWithUnmask)
88import Control.Exception
9−import Control.Monad (when, void)
10−import Data.ByteString (ByteString)
11−import qualified Data.ByteString.Char8 as C8
129import Data.ByteString.Builder (byteString)
10+import qualified Data.ByteString.Char8 as C8
1311import Data.Streaming.Network (HostPreference)
1412import qualified Data.Text as T
1513import qualified Data.Text.IO as TIO
@@ -18,12 +16,14 @@ import GHC.IO.Exception (IOErrorType(..))
1816import qualified Network.HTTP.Types as H
1917import Network.Socket (SockAddr)
2018import Network.Wai
21−import Network.Wai.Handler.Warp.Timeout
22−import Network.Wai.Handler.Warp.Types
2319import qualified Paths_warp
2420import System.IO (stderr)
2521import System.IO.Error (ioeGetErrorType)
2622
23+import Network.Wai.Handler.Warp.Imports
24+import Network.Wai.Handler.Warp.Timeout
25+import Network.Wai.Handler.Warp.Types
26+
2727-- | Various Warp server settings. This is purposely kept as an abstract data
2828-- type so that new settings can be added without breaking backwards
2929-- compatibility. In order to create a 'Settings' value, use 'defaultSettings'
warp/Network/Wai/Handler/Warp/Types.hs+3−3
@@ -5,17 +5,17 @@
55module Network.Wai.Handler.Warp.Types where
66
77import Control.Exception
8−import Data.ByteString (ByteString)
98import qualified Data.ByteString as S
109import Data.IORef (IORef, readIORef, writeIORef, newIORef)
1110import Data.Typeable (Typeable)
12−import Data.Word (Word16, Word8)
1311import Foreign.Ptr (Ptr)
12+import System.Posix.Types (Fd)
13+
1414import qualified Network.Wai.Handler.Warp.Date as D
1515import qualified Network.Wai.Handler.Warp.FdCache as F
1616import qualified Network.Wai.Handler.Warp.FileInfoCache as I
17+import Network.Wai.Handler.Warp.Imports
1718import qualified Network.Wai.Handler.Warp.Timeout as T
18−import System.Posix.Types (Fd)
1919
2020----------------------------------------------------------------
2121
warp/Network/Wai/Handler/Warp/Windows.hs+2−1
@@ -7,7 +7,8 @@ module Network.Wai.Handler.Warp.Windows
77import Control.Exception
88import Control.Concurrent.MVar
99import Control.Concurrent
10−import Control.Monad
10+
11+import Network.Wai.Handler.Warp.Imports
1112
1213windowsThreadBlockHack :: IO a -> IO a
1314windowsThreadBlockHack act = do