packages feed

network-fancy 0.1.4 → 0.1.5

raw patch · 2 files changed

+24/−11 lines, 2 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Network.Fancy: dgramServer :: (StringLike packet) => ServerSpec -> (packet -> Address -> IO [packet]) -> IO [ThreadId]
+ Network.Fancy: dgramServer :: StringLike packet => ServerSpec -> (packet -> Address -> IO [packet]) -> IO [ThreadId]
- Network.Fancy: recv :: (StringLike string) => Socket -> Int -> IO string
+ Network.Fancy: recv :: StringLike string => Socket -> Int -> IO string
- Network.Fancy: send :: (StringLike string) => Socket -> string -> IO ()
+ Network.Fancy: send :: StringLike string => Socket -> string -> IO ()

Files

Network/Fancy.hsc view
@@ -28,11 +28,12 @@ import Numeric(showHex) import System.IO(Handle, hClose, IOMode(ReadWriteMode)) import System.IO.Unsafe(unsafeInterleaveIO)-import GHC.Handle(fdToHandle')-#if __GLASGOW_HASKELL__ <= 610 import System.Posix.Internals hiding(c_close)-#else+#if __GLASGOW_HASKELL__ > 610 import GHC.IO.Device+import GHC.IO.Handle.FD(fdToHandle')+#else+import GHC.Handle(fdToHandle') #endif #ifdef WINDOWS import GHC.Conc(asyncDoProc)@@ -70,6 +71,14 @@  #endif /* WINDOWS */ +setNonBlockingFD' :: FD -> IO ()+setNonBlockingFD' =+#if __GLASGOW_HASKELL__ < 611+    System.Posix.Internals.setNonBlockingFD+#else+    flip System.Posix.Internals.setNonBlockingFD True+#endif+ type HostName = String  data Address = IP   HostName Int -- ^ Host name and port, either IPv4 or IPv6.@@ -175,7 +184,7 @@ connect stype (SA sa len) = do   fam <- getFamily (SA sa len)   s   <- throwErrnoIfMinus1 "socket" $ c_socket fam stype 0-  setNonBlockingFD s+  setNonBlockingFD' s   let loop = do r   <- withForeignPtr sa $ \ptr -> c_connect s ptr (fromIntegral len) 	       	err <- getErrno        	        case r of@@ -280,7 +289,7 @@                     return ((SA sa sal):rest)       getAI :: IO (Ptr AddrInfoT)       getAI = allocaBytes (#size struct addrinfo) $ \hints -> do-              B.memset hints 0 (#size struct addrinfo)+              _ <- B.memset hints 0 (#size struct addrinfo)               (#poke struct addrinfo, ai_flags)    hints flags               (#poke struct addrinfo, ai_family)   hints fam               (#poke struct addrinfo, ai_socktype) hints typ@@ -381,12 +390,12 @@   forM sas $ \sa -> do      fam  <- getFamily sa      sock <- throwErrnoIfMinus1 "socket" $ c_socket fam sockStream 0-     setNonBlockingFD sock+     setNonBlockingFD' sock      let socket = Socket sock      let on :: CInt          on = 1          os = fromIntegral $ sizeOf on-     with on $ \onptr -> c_setsockopt sock (#const SOL_SOCKET) (#const SO_REUSEADDR) onptr os+     _ <- with on $ \onptr -> c_setsockopt sock (#const SOL_SOCKET) (#const SO_REUSEADDR) onptr os      bind socket sa      listen socket 128      let loop = do (s,psa) <- accept socket sa@@ -430,7 +439,7 @@                            (#peek struct network_fancy_aaccept, s) ptr                             #endif-  setNonBlockingFD s+  setNonBlockingFD' s   return (Socket s,SA sa len)  foreign import CALLCONV SAFE_ON_WIN "accept"  c_accept  :: CInt -> Ptr () -> Ptr (SLen) -> IO CInt@@ -449,12 +458,12 @@   forM sas $ \sa -> do      fam  <- getFamily sa      sock <- throwErrnoIfMinus1 "socket" $ c_socket fam sockDgram 0-     setNonBlockingFD sock+     setNonBlockingFD' sock      let socket = Socket sock      let on :: CInt          on = 1          os = fromIntegral $ sizeOf on-     with on $ \onptr -> c_setsockopt sock (#const SOL_SOCKET) (#const SO_REUSEADDR) onptr os+     _ <- with on $ \onptr -> c_setsockopt sock (#const SOL_SOCKET) (#const SO_REUSEADDR) onptr os      bind socket sa      let loop = do (str,psa) <- recvFrom socket (recvSize ss) sa                    a <- unsafeInterleaveIO $ case reverseAddress ss of
network-fancy.cabal view
@@ -1,5 +1,5 @@ Name:                network-fancy-Version:             0.1.4+Version:             0.1.5 Synopsis:            Networking support with a cleaner API Description:         Networking support with a cleaner API License:             BSD3@@ -10,6 +10,10 @@ Maintainer:          taruti@taruti.net Build-Type:          Simple Cabal-version:       >= 1.6+Homepage:	     http://github.com/taruti/network-fancy+Source-repository head+  type:     git+  location: http://github.com/taruti/network-fancy  Library     Build-Depends:       base == 4.*, bytestring