io-streams-haproxy 1.0.0.2 → 1.0.1.0
raw patch · 3 files changed
+32/−8 lines, 3 filesdep ~attoparsecdep ~basedep ~bytestringnew-uploaderPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: attoparsec, base, bytestring, network, transformers
API changes (from Hackage documentation)
- System.IO.Streams.Network.HAProxy: decodeHAProxyHeaders :: ProxyInfo -> (InputStream ByteString) -> IO ProxyInfo
+ System.IO.Streams.Network.HAProxy: decodeHAProxyHeaders :: ProxyInfo -> InputStream ByteString -> IO ProxyInfo
Files
- io-streams-haproxy.cabal +4/−4
- src/System/IO/Streams/Network/HAProxy.hs +14/−2
- test/System/IO/Streams/Network/HAProxy/Tests.hs +14/−2
io-streams-haproxy.cabal view
@@ -1,5 +1,5 @@ name: io-streams-haproxy-version: 1.0.0.2+version: 1.0.1.0 synopsis: HAProxy protocol 1.5 support for io-streams description: HAProxy protocol version 1.5 support (see@@ -23,7 +23,7 @@ cabal-version: >=1.10 Bug-Reports: https://github.com/snapframework/io-streams-haproxy/issues Tested-With: GHC == 7.4.2, GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.3,- GHC == 8.0.1+ GHC == 8.0.1, GHC == 8.2.1, GHC == 8.4.3, GHC == 8.6.1 source-repository head type: git@@ -35,11 +35,11 @@ other-modules: System.IO.Streams.Network.Internal.Address c-sources: cbits/byteorder.c - build-depends: base >= 4.5 && < 4.11,+ build-depends: base >= 4.5 && < 4.13, attoparsec >= 0.7 && < 0.14, bytestring >= 0.9 && < 0.11, io-streams >= 1.3 && < 1.6,- network >= 2.3 && < 2.7,+ network >= 2.3 && < 3.1, transformers >= 0.3 && < 0.6 default-language: Haskell2010
src/System/IO/Streams/Network/HAProxy.hs view
@@ -69,9 +69,21 @@ socketToProxyInfo :: N.Socket -> N.SockAddr -> IO ProxyInfo socketToProxyInfo s sa = do da <- N.getSocketName s- let (N.MkSocket _ _ !sty _ _) = s+ !sty <- getSockType return $! makeProxyInfo sa da (addrFamily sa) sty-+ where+#if MIN_VERSION_network(2,7,0)+ getSockType = do+ c <- N.getSocketOption s N.Type+ -- This is a kludge until network has better support for returning+ -- SocketType+ case c of+ 1 -> return N.Stream+ 2 -> return N.Datagram+ _ -> error ("bad socket type: " ++ show c)+#else+ getSockType = let (N.MkSocket _ _ sty _ _) = s in return sty+#endif ------------------------------------------------------------------------------ -- | Parses the proxy headers emitted by HAProxy and runs a user action with
test/System/IO/Streams/Network/HAProxy/Tests.hs view
@@ -103,12 +103,24 @@ startServer :: Chan Bool -> IO (ThreadId, Int) startServer = E.bracketOnError getSock N.close . forkServer + getBindAddr = do+#if MIN_VERSION_network(2,7,0)+ getSockAddr (fromIntegral N.defaultPort) "127.0.0.1"+#else+ getSockAddr (fromIntegral N.aNY_PORT) "127.0.0.1"+#endif+ getSock = do- (family, addr) <- getSockAddr (fromIntegral N.aNY_PORT) "127.0.0.1"+ (family, addr) <- getBindAddr sock <- N.socket family N.Stream 0 N.setSocketOption sock N.ReuseAddr 1 N.setSocketOption sock N.NoDelay 1++#if MIN_VERSION_network(2,7,0)+ N.bind sock addr+#else N.bindSocket sock addr+#endif N.listen sock 150 return $! sock @@ -579,7 +591,7 @@ ------------------------------------------------------------------------------ localhost :: Int -> IO (N.SockAddr)-localhost p = N.SockAddrInet (fromIntegral p) <$> N.inet_addr "127.0.0.1"+localhost p = snd <$> getSockAddr p "127.0.0.1" ------------------------------------------------------------------------------