packages feed

network-multicast 0.0.7 → 0.0.8

raw patch · 2 files changed

+16/−11 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

network-multicast.cabal view
@@ -1,5 +1,5 @@ name:               network-multicast-version:            0.0.7+version:            0.0.8 copyright:          2008-2012 Audrey Tang license:            PublicDomain license-file:       LICENSE
src/Network/Multicast.hsc view
@@ -30,6 +30,7 @@ import Foreign.Storable import Foreign.Marshal import Foreign.Ptr+import Control.Exception (bracketOnError)  type TimeToLive = Int type LoopbackMode = Bool@@ -72,18 +73,22 @@ -- >         print (msg, addr) in loop -- multicastReceiver :: HostName -> PortNumber -> IO Socket-multicastReceiver host port = do-    proto <- getProtocolNumber "udp"-    sock  <- socket AF_INET Datagram proto-#ifdef SO_REUSEPORT-    setSocketOption sock ReusePort 1+multicastReceiver host port = bracketOnError get close setup+  where+    get = do+      proto <- getProtocolNumber "udp"+      sock  <- socket AF_INET Datagram proto+#if defined(SO_REUSEPORT) && ! defined (__linux__)+      setSocketOption sock ReusePort 1 #else-    setSocketOption sock ReuseAddr 1+      setSocketOption sock ReuseAddr 1+      return sock #endif-    (addrInfo:_) <- getAddrInfo Nothing (Just host) (Just $ show port)-    bindSocket sock $ addrAddress addrInfo-    addMembership sock host-    return sock+    setup sock = do+      (addrInfo:_) <- getAddrInfo Nothing (Just host) (Just $ show port)+      bindSocket sock $ addrAddress addrInfo+      addMembership sock host+      return sock  doSetSocketOption :: Storable a => CInt -> Socket -> a -> IO CInt doSetSocketOption ip_multicast_option (MkSocket s _ _ _ _) x = alloca $ \ptr -> do