network-multicast 0.0.3 → 0.0.4
raw patch · 3 files changed
+8/−11 lines, 3 filesdep ~basePVP ok
version bump matches the API change (PVP)
Dependency ranges changed: base
API changes (from Hackage documentation)
Files
- examples/sender.hs +0/−2
- network-multicast.cabal +2/−2
- src/Network/Multicast.hsc +6/−7
examples/sender.hs view
@@ -7,8 +7,6 @@ main :: IO () main = withSocketsDo $ do (sock, addr) <- multicastSender "224.0.0.99" 9999- setTimeToLive sock 10- setInterface sock "192.168.2.1" let loop = do msg <- fmap show getClockTime sendTo sock msg addr
network-multicast.cabal view
@@ -1,5 +1,5 @@ name: network-multicast-version: 0.0.3+version: 0.0.4 copyright: 2008 Audrey Tang license: BSD3 license-file: LICENSE@@ -17,7 +17,7 @@ library extensions: ForeignFunctionInterface, CPP exposed-modules: Network.Multicast- build-depends: base, network+ build-depends: base >= 2 && < 4, network hs-source-dirs: src if os(win32) extra-libraries: ws2_32
src/Network/Multicast.hsc view
@@ -82,30 +82,29 @@ addMembership sock host return sock -doSetSocketOption :: Storable a => Socket -> a -> IO CInt-doSetSocketOption (MkSocket s _ _ _ _) x = alloca $ \ptr -> do+doSetSocketOption :: Storable a => CInt -> Socket -> a -> IO CInt+doSetSocketOption ip_multicast_option (MkSocket s _ _ _ _) x = alloca $ \ptr -> do poke ptr x- c_setsockopt s _IPPROTO_IP _IP_MULTICAST_LOOP (castPtr ptr) (toEnum $ sizeOf x)+ c_setsockopt s _IPPROTO_IP ip_multicast_option (castPtr ptr) (toEnum $ sizeOf x) -- | Enable or disable the loopback mode on a socket created by 'multicastSender'. -- Loopback is enabled by default; disabling it may improve performance a little bit. setLoopbackMode :: Socket -> LoopbackMode -> IO () setLoopbackMode sock mode = maybeIOError "setLoopbackMode" $ do let loop = if mode then 1 else 0 :: CUChar- doSetSocketOption sock loop- where+ doSetSocketOption _IP_MULTICAST_LOOP sock loop -- | Set the Time-to-Live of the multicast. setTimeToLive :: Socket -> TimeToLive -> IO () setTimeToLive sock ttl = maybeIOError "setTimeToLive" $ do let val = toEnum ttl :: CInt- doSetSocketOption sock val+ doSetSocketOption _IP_MULTICAST_TTL sock val -- | Set the outgoing interface address of the multicast. setInterface :: Socket -> HostName -> IO () setInterface sock host = maybeIOError "setInterface" $ do addr <- inet_addr host- doSetSocketOption sock addr+ doSetSocketOption _IP_MULTICAST_IF sock addr -- | Make the socket listen on multicast datagrams sent by the specified 'HostName'. addMembership :: Socket -> HostName -> IO ()