pcap 0.4 → 0.4.1
raw patch · 3 files changed
+40/−11 lines, 3 filesdep +bytestringdep ~base
Dependencies added: bytestring
Dependency ranges changed: base
Files
- Network/Pcap.hs +8/−2
- Network/Pcap/Base.hsc +4/−0
- pcap.cabal +28/−9
Network/Pcap.hs view
@@ -105,7 +105,13 @@ , snapshotLen -- :: PcapHandle -> IO Int ) where +#ifdef BYTESTRING_IN_BASE import qualified Data.ByteString.Base as B+import qualified Data.ByteString.Base as BU+#else+import qualified Data.ByteString.Internal as B+import qualified Data.ByteString.Unsafe as BU+#endif import Data.Int (Int64) import Data.Time.Clock (DiffTime, picosecondsToDiffTime) import Data.Word (Word8, Word32)@@ -313,7 +319,7 @@ sendPacketBS :: PcapHandle -> B.ByteString -- ^ packet data (including link-level header) -> IO ()-sendPacketBS pch s = B.unsafeUseAsCStringLen s $ \(buf, len) ->+sendPacketBS pch s = BU.unsafeUseAsCStringLen s $ \(buf, len) -> sendPacket pch (castPtr buf) len -- | Represent a captured packet as a 'B.ByteString'. Suitable for@@ -348,7 +354,7 @@ -> IO () dumpBS dh hdr s = withDump dh $ \hdl ->- B.unsafeUseAsCString s $ \buf -> P.dump hdl hdr (castPtr buf)+ BU.unsafeUseAsCString s $ \buf -> P.dump hdl hdr (castPtr buf) -- -- Datalink manipulation
Network/Pcap/Base.hsc view
@@ -114,7 +114,11 @@ import Control.Monad (when) import Data.Maybe (isNothing, fromJust ) import Data.ByteString ()+#ifdef BYTESTRING_IN_BASE import qualified Data.ByteString.Base as B+#else+import qualified Data.ByteString.Internal as B+#endif import Data.Word (Word8, Word32) import Foreign.Ptr (Ptr, plusPtr, nullPtr, FunPtr, freeHaskellFunPtr) import Foreign.C.String (CString, peekCString, withCString)
pcap.cabal view
@@ -1,5 +1,5 @@ name: pcap-version: 0.4+version: 0.4.1 license: BSD4 license-file: LICENSE synopsis: A system-independent interface for user-level packet capture@@ -7,14 +7,33 @@ maintainer: Bryan O'Sullivan <bos@serpentine.com> author: Bryan O'Sullivan, Nick Burlett, Dominic Steinitz, Gregory Wright (original author) category: Network-exposed-modules: Network.Pcap.Base- Network.Pcap-build-depends: base >= 2.0, haskell98, network, time-extensions: ForeignFunctionInterface-ghc-options: -W -O -funbox-strict-fields-include-dirs: include-includes: pcapconfig.h pcap.h-install-includes: pcapconfig.h+cabal-version: >= 1.2.1 extra-source-files: configure.ac configure include/pcapconfig.h.in pcap.buildinfo.in+extra-tmp-files: config.log config.status++flag bytestring-in-base+ description: bytestring was part of the base library in ghc-6.6+ days. The bytestring low level interface is in+ Data.ByteString.Internal and Data.Bytestring.Unsafe not+ Data.ByteString.Base+++library+ if flag(bytestring-in-base)+ -- bytestring was in base-2.0 and 2.1.1+ build-depends: base >= 2.0 && < 2.2+ cpp-options: -DBYTESTRING_IN_BASE+ else+ build-depends: base < 2.0 || >= 2.2, bytestring >= 0.9 ++ build-depends: haskell98, network, time+ exposed-modules: Network.Pcap.Base+ Network.Pcap+ extensions: ForeignFunctionInterface, CPP+ ghc-options: -W -O -funbox-strict-fields++ include-dirs: include+ includes: pcapconfig.h pcap.h+ install-includes: pcapconfig.h