on master help sign in
Merge pull request #724 from kazu-yamamoto/network-3

Network 3

commite600e1139d60471572cb892531688ec4bd249970 authorMichael Snoyman <michael@snoyman.com> dateMon 21 Jan 2019, 10:32 (8 years ago) parentd11d63fe61556a
6 files changed+33−11
wai-extra/ChangeLog.md+4 wai-extra/Network/Wai/Middleware/RequestLogger/JSON.hs+3 wai-extra/wai-extra.cabal+1−1 warp/Network/Wai/Handler/Warp/Recv.hs+17−8 warp/Network/Wai/Handler/Warp/Run.hs+7−1 warp/warp.cabal+1−1
wai-extra/ChangeLog.md+4
@@ -1,5 +1,9 @@
11# Changelog for wai-extra
22
3+## 3.0.25
4+
5+* Supporting `network` version 3.0.
6+
37## 3.0.24.3
48
59* Drop unnecessary `lifted-base` dependency
wai-extra/Network/Wai/Middleware/RequestLogger/JSON.hs+3
@@ -1,4 +1,5 @@
11{-# LANGUAGE RecordWildCards #-}
2+{-# LANGUAGE CPP #-}
23
34module Network.Wai.Middleware.RequestLogger.JSON (formatAsJSON) where
45
@@ -75,8 +76,10 @@ sockToJSON (SockAddrInet6 pn _ ha _) =
7576 ]
7677sockToJSON (SockAddrUnix sock) =
7778 object [ "unix" .= sock ]
79+#if !MIN_VERSION_network(3,0,0)
7880sockToJSON (SockAddrCan i) =
7981 object [ "can" .= i ]
82+#endif
8083
8184queryItemToJSON :: QueryItem -> Value
8285queryItemToJSON (name, mValue) = toJSON (decodeUtf8With lenientDecode name, fmap (decodeUtf8With lenientDecode) mValue)
wai-extra/wai-extra.cabal+1−1
@@ -1,5 +1,5 @@
11Name: wai-extra
2−Version: 3.0.24.3
2+Version: 3.0.25
33Synopsis: Provides some basic WAI handlers and middleware.
44description:
55 Provides basic WAI handler and middleware functionality:
warp/Network/Wai/Handler/Warp/Recv.hs+17−8
@@ -91,22 +91,31 @@ spell init0 siz0 recv recvBuf
9191
9292receive :: Socket -> BufferPool -> Recv
9393receive sock pool = withBufferPool pool $ \ (ptr, size) -> do
94− let sock' = fdSocket sock
95− size' = fromIntegral size
96− fromIntegral <$> receiveloop sock' ptr size'
94+#if MIN_VERSION_network(3,0,0)
95+ fd <- fdSocket sock
96+#else
97+ let fd = fdSocket sock
98+#endif
99+ let size' = fromIntegral size
100+ fromIntegral <$> receiveloop fd ptr size'
97101
98102receiveBuf :: Socket -> RecvBuf
99−receiveBuf sock buf0 siz0 = loop buf0 siz0
103+receiveBuf sock buf0 siz0 = do
104+#if MIN_VERSION_network(3,0,0)
105+ fd <- fdSocket sock
106+#else
107+ let fd = fdSocket sock
108+#endif
109+ loop fd buf0 siz0
100110 where
101− loop _ 0 = return True
102− loop buf siz = do
111+ loop _ _ 0 = return True
112+ loop fd buf siz = do
103113 n <- fromIntegral <$> receiveloop fd buf (fromIntegral siz)
104114 -- fixme: what should we do in the case of n == 0
105115 if n == 0 then
106116 return False
107117 else
108− loop (buf `plusPtr` n) (siz - n)
109− fd = fdSocket sock
118+ loop fd (buf `plusPtr` n) (siz - n)
110119
111120receiveloop :: CInt -> Ptr Word8 -> CSize -> IO CInt
112121receiveloop sock ptr size = do
warp/Network/Wai/Handler/Warp/Run.hs+7−1
@@ -536,7 +536,13 @@ setSocketCloseOnExec :: Socket -> IO ()
536536#if WINDOWS
537537setSocketCloseOnExec _ = return ()
538538#else
539−setSocketCloseOnExec socket = F.setFileCloseOnExec $ fromIntegral $ fdSocket socket
539+setSocketCloseOnExec socket = do
540+#if MIN_VERSION_network(3,0,0)
541+ fd <- fdSocket socket
542+#else
543+ let fd = fdSocket socket
544+#endif
545+ F.setFileCloseOnExec $ fromIntegral fd
540546#endif
541547
542548gracefulShutdown :: Settings -> Counter -> IO ()
warp/warp.cabal+1−1
@@ -1,5 +1,5 @@
11Name: warp
2−Version: 3.2.25
2+Version: 3.2.26
33Synopsis: A fast, light-weight web server for WAI applications.
44License: MIT
55License-file: LICENSE