packages feed

happstack-server 7.1.3 → 7.1.4

raw patch · 2 files changed

+40/−39 lines, 2 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Happstack.Server.Internal.Socket: sockAddrToHostName :: SockAddr -> HostName
+ Happstack.Server.Internal.Socket: sockAddrToPeer :: SockAddr -> (HostName, PortNumber)

Files

happstack-server.cabal view
@@ -1,5 +1,5 @@ Name:                happstack-server-Version:             7.1.3+Version:             7.1.4 Synopsis:            Web related tools and services. Description:         Happstack Server provides an HTTP server and a rich set of functions for routing requests, handling query parameters, generating responses, working with cookies, serving files, and more. For in-depth documentation see the Happstack Crash Course <http://happstack.com/docs/crashcourse/index.html> License:             BSD3
src/Happstack/Server/Internal/Socket.hs view
@@ -4,7 +4,7 @@ #endif module Happstack.Server.Internal.Socket     ( acceptLite-    , sockAddrToHostName+    , sockAddrToPeer     ) where  import Data.List (intersperse)@@ -14,10 +14,6 @@ import Language.Haskell.TH.Syntax #endif -import qualified Network as N-  ( PortID(PortNumber)-  , socketPort-  ) import qualified Network.Socket as S   ( Socket(..)   , PortNumber()@@ -56,44 +52,49 @@ acceptLite :: S.Socket -> IO (S.Socket, S.HostName, S.PortNumber) acceptLite sock = do   (sock', addr) <- S.accept sock-  let port = getPort addr-  let peer = sockAddrToHostName addr+  let (peer, port) = sockAddrToPeer addr   return (sock', peer, port) -getPort :: S.SockAddr -> S.PortNumber-getPort addr =-    case addr of-        (S.SockAddrInet p _) -> p-        (S.SockAddrInet6 p _ _ _ ) -> p-        _ -> error "Unsupported socket"--sockAddrToHostName ::  S.SockAddr -> S.HostName-sockAddrToHostName addr =+sockAddrToPeer ::  S.SockAddr -> (S.HostName, S.PortNumber)+sockAddrToPeer addr = #ifdef TEMPLATE_HASKELL     $(if supportsIPv6-                 then-                 return $ CaseE (VarE (mkName "addr"))-                            [Match-                             (ConP (mkName "S.SockAddrInet")-                              [WildP,VarP (mkName "ha")])-                             (NormalB (AppE (VarE (mkName "showHostAddress"))-                                       (VarE (mkName "ha")))) []-                            ,Match (ConP (mkName "S.SockAddrInet6") [WildP,WildP,VarP (mkName "ha"),WildP])-                             (NormalB (AppE (VarE (mkName "showHostAddress6")) (VarE (mkName "ha")))) []-                            ,Match WildP (NormalB (AppE (VarE (mkName "error")) (LitE (StringL "Unsupported socket")))) []]-                 -- the above mess is the equivalent of this:-                 {-[| case addr of-                       (S.SockAddrInet _ ha)      -> showHostAddress ha-                       (S.SockAddrInet6 _ _ ha _) -> showHostAddress6 ha-                       _                          -> error "Unsupported socket"-                   |]-}-                 else-                 [| case addr of-                      (S.SockAddrInet _ ha)      -> showHostAddress ha-                      _                          -> error "Unsupported socket"-                 |])+         then+         return $ CaseE (VarE (mkName "addr"))+                    [ Match+                         (ConP (mkName "S.SockAddrInet")+                          [VarP (mkName "p"),VarP (mkName "ha")])+                         (NormalB+                            (TupE+                                [(AppE (VarE (mkName "showHostAddress"))+                                    (VarE (mkName "ha")))+                                , VarE (mkName "p")+                                ])) []+                    , Match (ConP (mkName "S.SockAddrInet6")+                            [VarP (mkName "p"),WildP,VarP (mkName "ha"),WildP])+                         (NormalB+                            (TupE+                                [ (AppE+                                    (VarE (mkName "showHostAddress6"))+                                         (VarE (mkName "ha")))+                                , VarE (mkName "p")+                                ])) []+                    , Match WildP+                        (NormalB (AppE (VarE (mkName "error"))+                            (LitE (StringL "Unsupported socket")))) []]+         -- the above mess is the equivalent of this:+         {-[| case addr of+               (S.SockAddrInet p ha)        -> (showHostAddress  ha, p)+               (S.SockAddrInet6 p _ ha _ )  -> (showHostAddress6 ha, p)+               _                            -> error "Unsupported socket"+           |]-}+         else+         [| case addr of+              (S.SockAddrInet p ha)      -> (showHostAddress ha, p)+              _                          -> error "Unsupported socket"+         |]) #else     case addr of-        (S.SockAddrInet _ ha)      -> showHostAddress ha+        (S.SockAddrInet p ha)      -> (showHostAddress ha, p)         _                          -> error "Unsupported socket" #endif