network 3.1.2.8 → 3.1.2.9
raw patch · 8 files changed
+209/−193 lines, 8 filesdep −doctestdep ~base
Dependencies removed: doctest
Dependency ranges changed: base
Files
- CHANGELOG.md +5/−0
- Network/Socket/Options.hsc +4/−6
- Network/Socket/Types.hsc +4/−2
- configure +12/−10
- configure.ac +4/−2
- include/HsNet.h +3/−1
- network.cabal +177/−157
- tests/doctests.hs +0/−15
CHANGELOG.md view
@@ -1,3 +1,8 @@+## Version 3.1.2.9++* Resolving the runtime linker problem on Windows.+ [#552](https://github.com/haskell/network/issues/552)+ ## Version 3.1.2.8 * Ignoring error from shutdown in gracefulClose
Network/Socket/Options.hsc view
@@ -353,8 +353,7 @@ | isSupportedSocketOption s = action >> return () | otherwise = return () --- | Set a socket option that expects an Int value.--- There is currently no API to set e.g. the timeval socket options+-- | Set a socket option that expects an 'Int' value. setSocketOption :: Socket -> SocketOption -- Option Name -> Int -- Option Value@@ -379,8 +378,7 @@ throwSocketErrorIfMinus1_ "Network.Socket.setSockOpt" $ c_setsockopt fd level opt ptr sz --- | Get a socket option that gives an Int value.--- There is currently no API to get e.g. the timeval socket options+-- | Get a socket option that gives an 'Int' value. getSocketOption :: Socket -> SocketOption -- Option Name -> IO Int -- Option Value@@ -396,8 +394,8 @@ -- | Get a socket option. getSockOpt :: forall a . Storable a => Socket- -> SocketOption -- Option Name- -> IO a -- Option Value+ -> SocketOption -- Option Name+ -> IO a -- Option Value getSockOpt s (SockOpt level opt) = do alloca $ \ptr -> do let sz = fromIntegral $ sizeOf (undefined :: a)
Network/Socket/Types.hsc view
@@ -1151,7 +1151,9 @@ pokeSockAddr :: Ptr a -> SockAddr -> IO () #if defined(DOMAIN_SOCKET_SUPPORT) pokeSockAddr p sa@(SockAddrUnix path) = do- when (length path > unixPathMax) $ error "pokeSockAddr: path is too long"+ when (length path > unixPathMax) $ error+ $ "pokeSockAddr: path is too long in SockAddrUnix " <> show path+ <> ", length " <> show (length path) <> ", unixPathMax " <> show unixPathMax zeroMemory p $ fromIntegral $ sizeOfSockAddr sa # if defined(HAVE_STRUCT_SOCKADDR_SA_LEN) (#poke struct sockaddr_un, sun_len) p ((#const sizeof(struct sockaddr_un)) :: Word8)@@ -1318,7 +1320,7 @@ socktypeBijection = [ (UnsupportedSocketType, "UnsupportedSocketType") , (Stream, "Stream")- , (Datagram, "Datagram") + , (Datagram, "Datagram") , (Raw, "Raw") , (RDM, "RDM") , (SeqPacket, "SeqPacket")
configure view
@@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles.-# Generated by GNU Autoconf 2.69 for Haskell network package 3.1.2.8.+# Generated by GNU Autoconf 2.69 for Haskell network package 3.1.2.9. # # Report bugs to <libraries@haskell.org>. #@@ -580,8 +580,8 @@ # Identity of this package. PACKAGE_NAME='Haskell network package' PACKAGE_TARNAME='network'-PACKAGE_VERSION='3.1.2.8'-PACKAGE_STRING='Haskell network package 3.1.2.8'+PACKAGE_VERSION='3.1.2.9'+PACKAGE_STRING='Haskell network package 3.1.2.9' PACKAGE_BUGREPORT='libraries@haskell.org' PACKAGE_URL='' @@ -1234,7 +1234,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF-\`configure' configures Haskell network package 3.1.2.8 to adapt to many kinds of systems.+\`configure' configures Haskell network package 3.1.2.9 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1299,7 +1299,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in- short | recursive ) echo "Configuration of Haskell network package 3.1.2.8:";;+ short | recursive ) echo "Configuration of Haskell network package 3.1.2.9:";; esac cat <<\_ACEOF @@ -1384,7 +1384,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF-Haskell network package configure 3.1.2.8+Haskell network package configure 3.1.2.9 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc.@@ -1910,7 +1910,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Haskell network package $as_me 3.1.2.8, which was+It was created by Haskell network package $as_me 3.1.2.9, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@@@ -2259,7 +2259,9 @@ -ac_includes_default="#define _GNU_SOURCE 1 /* for struct ucred on Linux */+ac_includes_default="#ifndef _WIN32+# define _GNU_SOURCE 1 /* for struct ucred on Linux */+#endif $ac_includes_default #ifdef _WIN32@@ -4417,7 +4419,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log="-This file was extended by Haskell network package $as_me 3.1.2.8, which was+This file was extended by Haskell network package $as_me 3.1.2.9, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES@@ -4470,7 +4472,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\-Haskell network package config.status 3.1.2.8+Haskell network package config.status 3.1.2.9 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\"
configure.ac view
@@ -1,10 +1,12 @@ AC_INIT([Haskell network package],- [3.1.2.8],+ [3.1.2.9], [libraries@haskell.org], [network]) dnl See also HsNet.h-ac_includes_default="#define _GNU_SOURCE 1 /* for struct ucred on Linux */+ac_includes_default="#ifndef _WIN32+# define _GNU_SOURCE 1 /* for struct ucred on Linux */+#endif $ac_includes_default #ifdef _WIN32
include/HsNet.h view
@@ -19,7 +19,9 @@ # endif #endif -#define _GNU_SOURCE 1 /* for struct ucred on Linux */+#ifndef _WIN32+# define _GNU_SOURCE 1 /* for struct ucred on Linux */+#endif #define __APPLE_USE_RFC_3542 1 /* for IPV6_RECVPKTINFO */ #ifdef _WIN32
network.cabal view
@@ -1,174 +1,194 @@-cabal-version: 1.18-name: network-version: 3.1.2.8-license: BSD3-license-file: LICENSE-maintainer: Kazu Yamamoto, Evan Borden-synopsis: Low-level networking interface+cabal-version: 1.18+name: network+version: 3.1.2.9+license: BSD3+license-file: LICENSE+maintainer: Kazu Yamamoto, Evan Borden++tested-with:+ GHC == 9.6.1+ GHC == 9.4.4+ GHC == 9.2.7+ GHC == 9.0.2+ GHC == 8.10.7+ GHC == 8.8.4+ GHC == 8.6.5+ GHC == 8.4.4+ GHC == 8.2.2+ GHC == 8.0.2++homepage: https://github.com/haskell/network+bug-reports: https://github.com/haskell/network/issues+synopsis: Low-level networking interface description:- This package provides a low-level networking interface.- .- === High-Level Packages- Other packages provide higher level interfaces:- .- * connection- * hookup- * network-simple- .- === Extended Packages- @network@ seeks to provide a cross-platform core for networking. As such some- APIs live in extended libraries. Packages in the @network@ ecosystem are- often prefixed with @network-@.- .- ==== @network-bsd@- In @network-3.0.0.0@ the @Network.BSD@ module was split off into its own- package, @network-bsd-3.0.0.0@.- .- ==== @network-uri@- In @network-2.6@ the @Network.URI@ module was split off into its own package,- @network-uri-2.6@. If you're using the @Network.URI@ module you can- automatically get it from the right package by adding this to your @.cabal@- file:- .- > library- > build-depends: network-uri-flag-category: Network-build-type: Configure-extra-tmp-files:- config.log config.status autom4te.cache network.buildinfo- include/HsNetworkConfig.h+ This package provides a low-level networking interface.+ .+ === High-Level Packages+ Other packages provide higher level interfaces:+ .+ * connection+ * hookup+ * network-simple+ .+ === Extended Packages+ @network@ seeks to provide a cross-platform core for networking. As such some+ APIs live in extended libraries. Packages in the @network@ ecosystem are+ often prefixed with @network-@.+ .+ ==== @network-bsd@+ In @network-3.0.0.0@ the @Network.BSD@ module was split off into its own+ package, @network-bsd-3.0.0.0@.+ .+ ==== @network-uri@+ In @network-2.6@ the @Network.URI@ module was split off into its own package,+ @network-uri-2.6@. If you're using the @Network.URI@ module you can+ automatically get it from the right package by adding this to your @.cabal@+ file:+ .+ > library+ > build-depends: network-uri-flag++category: Network+build-type: Configure++extra-doc-files:+ README.md+ CHANGELOG.md+ extra-source-files:- README.md CHANGELOG.md- examples/*.hs tests/*.hs config.guess config.sub install-sh- configure.ac configure- include/HsNetworkConfig.h.in include/HsNet.h include/HsNetDef.h- -- C sources only used on some systems- cbits/asyncAccept.c cbits/initWinSock.c- cbits/winSockErr.c cbits/cmsg.c-homepage: https://github.com/haskell/network-bug-reports: https://github.com/haskell/network/issues-tested-with: GHC == 8.0.2- , GHC == 8.2.2- , GHC == 8.4.4- , GHC == 8.6.5- , GHC == 8.8.3- , GHC == 8.10.1+ examples/*.hs+ tests/*.hs+ config.guess+ config.sub+ install-sh+ configure.ac+ configure+ include/HsNetworkConfig.h.in+ include/HsNet.h+ include/HsNetDef.h+ cbits/asyncAccept.c+ cbits/initWinSock.c+ cbits/winSockErr.c+ cbits/cmsg.c +extra-tmp-files:+ config.log+ config.status+ autom4te.cache+ network.buildinfo+ include/HsNetworkConfig.h++source-repository head+ type: git+ location: https://github.com/haskell/network.git+ flag devel- description: using tests for developers- default: False+ description: using tests for developers+ default: False library- default-language: Haskell2010- exposed-modules:- Network.Socket- Network.Socket.Address- Network.Socket.ByteString- Network.Socket.ByteString.Lazy- Network.Socket.Internal- other-modules:- Network.Socket.Buffer- Network.Socket.ByteString.IO- Network.Socket.ByteString.Internal- Network.Socket.Cbits- Network.Socket.Fcntl- Network.Socket.Flag- Network.Socket.Handle- Network.Socket.If- Network.Socket.Imports- Network.Socket.Info- Network.Socket.Name- Network.Socket.Options- Network.Socket.ReadShow- Network.Socket.Shutdown- Network.Socket.SockAddr- Network.Socket.Syscall- Network.Socket.Types- Network.Socket.Unix+ exposed-modules:+ Network.Socket+ Network.Socket.Address+ Network.Socket.ByteString+ Network.Socket.ByteString.Lazy+ Network.Socket.Internal - build-depends:- base >= 4.9 && < 5,- bytestring >= 0.10 && < 0.12,- deepseq,- directory+ build-tools: hsc2hs >=0+ c-sources:+ cbits/HsNet.c+ cbits/cmsg.c - include-dirs: include- includes: HsNet.h HsNetDef.h alignment.h win32defs.h- install-includes: HsNet.h HsNetDef.h alignment.h win32defs.h- c-sources: cbits/HsNet.c cbits/cmsg.c- ghc-options: -Wall -fwarn-tabs- build-tools: hsc2hs+ other-modules:+ Network.Socket.Buffer+ Network.Socket.ByteString.IO+ Network.Socket.ByteString.Internal+ Network.Socket.Cbits+ Network.Socket.Fcntl+ Network.Socket.Flag+ Network.Socket.Handle+ Network.Socket.If+ Network.Socket.Imports+ Network.Socket.Info+ Network.Socket.Name+ Network.Socket.Options+ Network.Socket.ReadShow+ Network.Socket.Shutdown+ Network.Socket.SockAddr+ Network.Socket.Syscall+ Network.Socket.Types+ Network.Socket.Unix + default-language: Haskell2010+ include-dirs: include+ includes: HsNet.h HsNetDef.h alignment.h win32defs.h+ install-includes: HsNet.h HsNetDef.h alignment.h win32defs.h+ ghc-options: -Wall -fwarn-tabs+ build-depends:+ base >=4.9 && <5,+ bytestring >=0.10 && <0.12,+ deepseq,+ directory - -- Add some platform specific stuff- if !os(windows)- other-modules:- Network.Socket.ByteString.Lazy.Posix- Network.Socket.Posix.Cmsg- Network.Socket.Posix.CmsgHdr- Network.Socket.Posix.IOVec- Network.Socket.Posix.MsgHdr+ if !os(windows)+ other-modules:+ Network.Socket.ByteString.Lazy.Posix+ Network.Socket.Posix.Cmsg+ Network.Socket.Posix.CmsgHdr+ Network.Socket.Posix.IOVec+ Network.Socket.Posix.MsgHdr - if os(solaris)- extra-libraries: nsl, socket- cpp-options: -D__EXTENSIONS__ -D_XOPEN_SOURCE=500- cc-options: -D__EXTENSIONS__ -D_XOPEN_SOURCE=500+ if os(solaris)+ cpp-options: -D__EXTENSIONS__ -D_XOPEN_SOURCE=500+ cc-options: -D__EXTENSIONS__ -D_XOPEN_SOURCE=500+ extra-libraries:+ nsl+ socket - if os(windows)- other-modules:- Network.Socket.ByteString.Lazy.Windows- Network.Socket.Win32.Cmsg- Network.Socket.Win32.CmsgHdr- Network.Socket.Win32.WSABuf- Network.Socket.Win32.MsgHdr- c-sources: cbits/initWinSock.c, cbits/winSockErr.c, cbits/asyncAccept.c- extra-libraries: ws2_32, iphlpapi, mswsock- -- See https://github.com/haskell/network/pull/362- if impl(ghc >= 7.10)- cpp-options: -D_WIN32_WINNT=0x0600- cc-options: -D_WIN32_WINNT=0x0600+ if os(windows)+ c-sources:+ cbits/initWinSock.c+ cbits/winSockErr.c+ cbits/asyncAccept.c -test-suite spec- default-language: Haskell2010- hs-source-dirs: tests- main-is: Spec.hs- if flag(devel)- cpp-options: -DDEVELOPMENT- other-modules:- Network.Test.Common- Network.SocketSpec- Network.Socket.ByteStringSpec- Network.Socket.ByteString.LazySpec- type: exitcode-stdio-1.0- ghc-options: -Wall -threaded- -- NB: make sure to versions of hspec and hspec-discover- -- that work together; easiest way is to constraint- -- both packages to a small enough version range.- build-tools: hspec-discover >= 2.6- build-depends:- base >= 4.9 && < 5,- bytestring,- directory,- HUnit,- network,- temporary,- hspec >= 2.6,- QuickCheck+ other-modules:+ Network.Socket.ByteString.Lazy.Windows+ Network.Socket.Win32.Cmsg+ Network.Socket.Win32.CmsgHdr+ Network.Socket.Win32.WSABuf+ Network.Socket.Win32.MsgHdr -test-suite doctests- buildable: False- default-language: Haskell2010- hs-source-dirs: tests- main-is: doctests.hs- type: exitcode-stdio-1.0+ extra-libraries:+ ws2_32+ iphlpapi+ mswsock - build-depends:- base >= 4.9 && < 5,- doctest >= 0.10.1,- network+ if impl(ghc >=7.10)+ cpp-options: -D_WIN32_WINNT=0x0600+ cc-options: -D_WIN32_WINNT=0x0600 - ghc-options: -Wall+test-suite spec+ type: exitcode-stdio-1.0+ main-is: Spec.hs+ build-tools: hspec-discover >=2.6+ hs-source-dirs: tests+ other-modules:+ Network.Test.Common+ Network.SocketSpec+ Network.Socket.ByteStringSpec+ Network.Socket.ByteString.LazySpec -source-repository head- type: git- location: git://github.com/haskell/network.git+ default-language: Haskell2010+ ghc-options: -Wall -threaded+ build-depends:+ base >=4.9 && <5,+ bytestring,+ directory,+ HUnit,+ network,+ temporary,+ hspec >=2.6,+ QuickCheck++ if flag(devel)+ cpp-options: -DDEVELOPMENT
− tests/doctests.hs
@@ -1,15 +0,0 @@-module Main where--import Build_doctests (flags, pkgs, module_sources)-import Data.Foldable (traverse_)-import Data.List (isSuffixOf, isPrefixOf)-import Test.DocTest (doctest)--main :: IO ()-main = do- traverse_ putStrLn args- doctest args- where- builddir = filter ("build" `isSuffixOf`) $ filter ("-i" `isPrefixOf`) flags- addinc path = "-I" ++ drop 2 path ++ "/include"- args = map addinc builddir ++ flags ++ pkgs ++ module_sources