packages feed

Network-NineP 0.4.6 → 0.4.7

raw patch · 3 files changed

+13/−51 lines, 3 filesdep +network-bsddep ~networkPVP ok

version bump matches the API change (PVP)

Dependencies added: network-bsd

Dependency ranges changed: network

API changes (from Hackage documentation)

Files

Network-NineP.cabal view
@@ -1,5 +1,5 @@ Name:                Network-NineP-Version:             0.4.6+Version:             0.4.7 Description:         A library providing one with a somewhat higher level interface to 9P2000 protocol than existing implementations. Designed to facilitate rapid development of synthetic filesystems. Synopsis:            High-level abstraction over 9P protocol Maintainer:          Sergey Alirzaev <zl29ah@gmail.com>@@ -7,7 +7,7 @@ Category:            Network License-file:        LICENSE Build-Type:          Simple-Cabal-Version:       >= 1.6+Cabal-Version:       >= 1.10 Stability:           Experimental Tested-With:         GHC == 8.6.5 @@ -18,7 +18,7 @@ Source-repository this   type:              git   location:          https://github.com/l29ah/Network-NineP.git-  tag:               0.4.6+  tag:               0.4.7  Library   Build-Depends:@@ -26,7 +26,8 @@     bytestring >= 0.9.2.1 && < 0.11,     containers >= 0.4.2.1 && < 0.7,     NineP >= 0.0.2 && < 0.1,-    network >= 2.3.0.14 && < 2.9,+    network >= 3.0 && < 3.1,+    network-bsd >= 2.8 && < 2.9,     binary >= 0.5.1.0 && < 0.9,     mtl >= 2.1.2 && < 2.3,     monad-loops >= 0.3.3.0 && < 0.5,@@ -50,17 +51,5 @@     Network.NineP.Internal.File     Network.NineP.Internal.Msg     Network.NineP.Internal.State-  ghc-options: -fno-warn-tabs--Executable test-  Main-is: Test.hs-  Other-modules:-    Control.Monad.EmbedIO-    Network.NineP-    Network.NineP.Error-    Network.NineP.File-    Network.NineP.Internal.File-    Network.NineP.Internal.Msg-    Network.NineP.Internal.State-    Network.NineP.Server+  default-language:    Haskell2010   ghc-options: -fno-warn-tabs
Network/NineP/Server.hs view
@@ -30,7 +30,6 @@ import Data.Maybe import Data.NineP import Data.Word-import Network hiding (accept) import Network.BSD import Network.Socket hiding (send, sendTo, recv, recvFrom) import System.IO@@ -45,6 +44,12 @@ maybeRead :: Read a => String -> Maybe a maybeRead = fmap fst . listToMaybe . reads +listenOn addr = do+	sock <- socket AF_UNIX Stream defaultProtocol+	bind sock addr+	listen sock 5+	return sock+ connection :: String -> IO Socket connection s = let	pat = "tcp!(.*)!([0-9]*)|unix!(.*)" :: ByteString 			wrongAddr = ioError $ userError $ "wrong 9p connection address: " ++ s@@ -53,7 +58,7 @@ 		then wrongAddr 		else case grps of 			[addr, port, ""] -> listen' addr $ toEnum $ (fromMaybe 2358 $ maybeRead port :: Int)-			["", "", addr]  -> listenOn $ UnixSocket addr+			["", "", addr]  -> listenOn $ SockAddrUnix addr 			_ -> wrongAddr  listen' :: HostName -> PortNumber -> IO Socket
− Test.hs
@@ -1,32 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}--import Control.Exception-import Control.Monad.Trans-import qualified Data.ByteString.Lazy.Char8 as B-import Data.Word-import System.Log.Logger--import Network.NineP as N-import Network.NineP.Error-import Network.NineP.File----cfg = Config $ boringDir "/" [("boring", boringFile "boring"),("nyak", boringFile "nyak")]-spamwr :: Word64 -> B.ByteString -> IO Word32-spamwr _ d = do-	B.putStr d-	return $ fromIntegral $ B.length d--boringwr _ c = return $ B.take (fromIntegral c) "i am so very boring"--main = do-	updateGlobalLogger "Network.NineP" $ setLevel DEBUG-	memd <- memoryDirectory "/" :: IO (NineFile IO)-	run9PServer $ Config {-			-- TODO Data.Default?-			root = boringDir "/" [-				("lol", (boringFile "lol") { write = spamwr }),-				("memd", memd),-				("exception", (boringFile "exception") { N.read = \_ _ -> throw $ AssertionFailed "lol" })],-			addr = "unix!/tmp/h9pt",-			monadState = undefined-		}