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 +6/−17
- Network/NineP/Server.hs +7/−2
- Test.hs +0/−32
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- }