Changelog of @hackage/network 3.2.1.0

Version 3.2.1.0

  • Trying to release with the latest autoreconf. Packing "network" in the local directory instead of CI.
  • Remove includes from .cabal-file #583
  • making gracefulClose more graceful #580
  • Update config.guess, config.sub to their latest versions #579

Version 3.2.0.0

  • Breaking change: Using Strict and StrictData.
  • Breaking change: Allow a control message to contain multiple file descriptors #567
  • Breaking change: CmsgIdFd -> CmsgIdFds #575
  • SocketTypes: use UnsupportedSocketType instead of -1. #560
  • Expose NullSockAddr, add send-with-fds functions. #562
  • Allow bytestring-0.12 and replace deprecated memcpy by copyBytes. #564
  • Close file descriptor in accept when exception happens #569
  • Bump CI to GHC 9.8 and latest versions of actions #573

Version 3.1.5.0

  • #541
    • Export Network.Socket.Internal.NullSockAddr
    • Add Network.Socket.ByteString.sendManyWithFds
    • Add Network.Socket.ByteString.Lazy.sendWithFds

Version 3.1.4.0

  • Install and use afunix_compat.h header. #556
  • Supporting SO_SNDTIMEO and SO_RCVTIMEO. #555
  • Emulating socketPair on Windows. #554

Version 3.1.3.0

  • Supporting AF_UNIX on Windows #553

Version 3.1.2.9

  • Resolving the runtime linker problem on Windows. #552

Version 3.1.2.8

  • Ignoring error from shutdown in gracefulClose
  • Fix bitsize of some msghdr and cmsghdr fields on Linux #535
  • Add SO_ACCEPTCONN SocketOption #524

Version 3.1.2.7

  • No change from 3.1.2.6 but to take a right procedure to upload "network" to Hackage for Windows.

Version 3.1.2.6

  • Making IPv4PktInfo on Win the same as that on Posix #522
  • Add support for nix/ghcjs #517

Version 3.1.2.5

  • Regenerate configure script with autoconf-2.69 to temporarily fix broken cabal-3.4.0.0 on Windows. Note that the old one was generated with autoconf-2.71. #513

Version 3.1.2.3

  • Supporting M1 Mac #510
  • Workaround for autoconf on Windows #508
  • Fixing building failure on SmartOS #507
  • HsNet.h: remove unused fn hsnet_inet_ntoa definition #504
  • Use a working define for OpenBSD detection #503

Version 3.1.2.2

  • Allow bytestring 0.11 #490
  • Export StructLinger #491
  • Fix a couple of broken tests on OpenBSD #498

Version 3.1.2.1

  • Increasing base lower bound to 4.9. #473
  • Suppressing errors from removeFile in UNIX bind. #478
  • Restoring UNIX stub functions on Windows. #489

Version 3.1.2.0

Version 3.1.1.1

  • Fix for GHCJS. #431

Version 3.1.1.0

  • A new API: gracefulClose. #417
  • touchSocket, unsafeFdSocket: Allow direct access to a socket's file descriptor while providing tools to prevent it from being garbage collected. This also deprecated fdSocket in favor of unsafeFdSocket and withFdSocket. #423
  • socketToFd: Duplicates a socket as a file desriptor and closes the source socket. #424

Version 3.1.0.1

  • getAddrInfo: raise exception if no AddrInfo returned. #410
  • Avoid catching SomeException. #411

Version 3.1.0.0

  • Making GC of socket safer. #399
  • Deprecating fdSocket. Use withFdSocket instead to ensure that sockets are GCed in proper time. #399

Version 3.0.1.1

  • Fix blocking if_nametoindex errors on Windows #391

Version 3.0.1.0

  • Added getSocketType :: Socket -> IO SocketType. #372
  • Correcting manual and brushing up test cases #375
  • Fixed longstanded bug in getContents on mac #375
  • Fixing regression: set correct sockaddr length for abstract addresses for Linux. #374

Version 3.0.0.1

  • Fixed a bug in connect where exceptions were not thrown #368

Version 3.0.0.0

  • Breaking change: the Network and Network.BSD are removed. Network.BSD is provided a new package: network-bsd.
  • Breaking change: the signatures are changed:
old fdSocket :: Socket -> CInt
new fdSocket :: Socket -> IO CInt

old mkSocket :: CInt -> Family -> SocketType -> ProtocolNumber -> SocketStatus -> IO Socket
new mkSocket :: CInt -> IO Socket
  • Breaking change: the deprecated APIs are removed: send, sendTo, recv, recvFrom, recvLen, htonl, ntohl, inet_addr, int_ntoa, bindSocket, sClose, SocketStatus, isConnected, isBound, isListening, isReadable, isWritable, sIsConnected, sIsBound, sIsListening, sIsReadable, sIsWritable, aNY_PORT, iNADDR_ANY, iN6ADDR_ANY, sOMAXCONN, sOL_SOCKET, sCM_RIGHTS, packSocketType, getPeerCred.
  • Breaking change: SockAddrCan is removed from SockAddr.
  • Socket addresses are extendable with Network.Socket.Address.
  • "socket" is now asynchronous-exception-safe. #336
  • "recvFrom" returns (0, addr) instead of throwing an error on EOF. #360
  • All APIs are available on any platforms.
  • Build system is simplified.
  • Bug fixes.

Version 2.8.0.1

  • Eensuring that accept returns a correct sockaddr for unix domain. #400
  • Avoid out of bounds writes in pokeSockAddr. #400

Version 2.8.0.0

  • Breaking change: PortNumber originally contained Word16 in network byte order and used "deriving Ord". This results in strange behavior on the Ord instance. Now PortNumber holds Word16 in host byte order. #347
  • Breaking change: stopping the export of the PortNum constructor in PortNumber.
  • Use bytestring == 0.10.* only.
  • Use base >= 4.7 && < 5.

Version 2.7.0.2

  • Removing withMVar to avoid the deadlock between "accept" and "close" #330
  • "close" does not throw exceptions. A new API: "close'" throws exceptions when necessary. #337
  • Fixing the hang of lazy sendAll. #340
  • Installing NetDef.h (#334) #334

Version 2.7.0.1

  • A new API: socketPortSafe. #319
  • Fixing a drain bug of sendAll. #320
  • Porting the new CALLCONV convention from master. #313
  • Withdrawing the deprecations of packFamily and unpackFamily. #324

Version 2.7.0.0

  • Obsoleting the Network module.
  • Obsoleting the Network.BSD module.
  • Obsoleting APIs: MkSocket, htonl, ntohl, getPeerCred, getPeerEid, send, sendTo, recv, recvFrom, recvLen, inet_addr, inet_ntoa, isConnected, isBound, isListening, isReadable, isWritable, aNY_PORT, iNADDR_ANY, iN6ADDR_ANY, sOMAXCONN, sOL_SOCKET, sCM_RIGHTS, packFamily, unpackFamily, packSocketType
  • Breaking change: do not closeFd within sendFd. #271
  • Exporting ifNameToIndex and ifIndexToName from Network.Socket.
  • New APIs: setCloseOnExecIfNeeded, getCloseOnExec and getNonBlock
  • New APIs: isUnixDomainSocketAvailable and getPeerCredential
  • socketPair, sendFd and recvFd are exported even on Windows.

Version 2.6.3.5

  • Reverting "Do not closeFd within sendFd" #271

Version 2.6.3.4

  • Don't touch IPv6Only when running on OpenBSD #227
  • Do not closeFd within sendFd #271
  • Updating examples and docs.

Version 2.6.3.3

  • Adds a function to show the defaultHints without reading their undefined fields #291
  • Improve exception error messages for getAddrInfo and getNameInfo #289

Version 2.6.3.2

  • Zero memory of sockaddr_un if abstract socket #220

  • Improving error messages #232

  • Allow non-blocking file descriptors via setNonBlockIfNeeded #242

  • Update config.{guess,sub} to latest version #244

  • Rename my_inet_ntoa to avoid symbol conflicts #228

  • Test infrastructure improvements #219 #217 #218

  • House keeping and cleanup #238 #237

Version 2.6.3.1

  • Reverse breaking exception change in Network.Socket.ByteString.recv #215

Version 2.6.3.0

  • New maintainers: Evan Borden (@eborden) and Kazu Yamamoto (@kazu-yamamoto). The maintainer for a long period, Johan Tibell (@tibbe) stepped down. Thank you, Johan, for your hard work for a long time.

  • New APIs: ntohl, htonl,hostAddressToTuple{,6} and tupleToHostAddress{,6}. #210

  • Added a Read instance for PortNumber. #145

  • We only set the IPV6_V6ONLY flag to 0 for stream and datagram socket types, as opposed to all of them. This makes it possible to use ICMPv6. #180 #181

  • Work around GHC bug #12020. Socket errors no longer cause segfaults or hangs on Windows. #192

  • Various documentation improvements and the deprecated pragmas. #186 #201 #205 #206 #211

  • Various internal improvements. #193 #200

Version 2.6.2.1

  • Regenerate configure and HsNetworkConfig.h.in.

  • Better detection of CAN sockets.

Version 2.6.2.0

  • Add support for TCP_USER_TIMEOUT.

  • Don't conditionally export the SockAddr constructors.

  • Add isSupportSockAddr to allow checking for supported address types at runtime.