1## Version 3.1.2.1 2 3* Increasing base lower bound to 4.9. 4 [#473](https://github.com/haskell/network/pull/473) 5* Suppressing errors from removeFile in UNIX bind. 6 [#478](https://github.com/haskell/network/pull/478) 7* Restoring UNIX stub functions on Windows. 8 [#489](https://github.com/haskell/network/pull/489) 9 10## Version 3.1.2.0 11 12* Added `-f devel` for test cases that are known to fail. 13 [#471](https://github.com/haskell/network/pull/471) 14* Improved precedence-compliant Read/Show instances. Verified via QuickCheck. 15 [#465](https://github.com/haskell/network/pull/465) 16 [#466](https://github.com/haskell/network/pull/466) 17* Removed the racing graceful close implementation to avoid issues with `CLOSE_WAIT`. 18 [#460](https://github.com/haskell/network/pull/438) 19* Gracefully handle binding of UNIX domain sockets. 20 [#460](https://github.com/haskell/network/pull/460) 21* Replace Socket type and family with extensible `CInt` pattern and synonyms. 22 [#459](https://github.com/haskell/network/pull/459) 23* Fixed race conditions in tests. 24 [#458](https://github.com/haskell/network/pull/458) 25* Removed many legacy uses of `undefined`. 26 [#456](https://github.com/haskell/network/pull/456) 27* Defined extensible `CustomSockOpt` via `ViewPatterns`. 28 [#455](https://github.com/haskell/network/pull/455) 29* Defined `openSocket` in terms of `AddrInfo`. 30 [5b0987197fe2ed7beddd7b2096522d624e71151e](https://github.com/haskell/network/commit/5b0987197fe2ed7beddd7b2096522d624e71151e) 31* Improved FreeBSD portability for Control Messages and tests 32 [#452](https://github.com/haskell/network/pull/452) 33* Support `sendMsg` and `recvMsg` 34 [#433](https://github.com/haskell/network/pull/433) 35 [#445](https://github.com/haskell/network/pull/445) 36 [#451](https://github.com/haskell/network/pull/451) 37 * Added `sendMsg` and `recvMsg` APIs 38 * Redefined `SocketOption` as pattern synonym 39* Implement total Show functions for SockAddr 40 [#441](https://github.com/haskell/network/pull/441) 41* Improve portability changing `u_int32_t` to `uint32_t`. 42 [#442](https://github.com/haskell/network/pull/442) 43* Removed obsolete CPP statements. 44 [d1f4ee60ce6a4a85abb79532f64d4a4e71e2b1ce](https://github.com/haskell/network/commit/d1f4ee60ce6a4a85abb79532f64d4a4e71e2b1ce) 45* Loads of improved test coverage. 46 [cbd67cc50a37770432eb978ac8b8eb6da3664817](https://github.com/haskell/network/commit/cbd67cc50a37770432eb978ac8b8eb6da3664817) 47 [fcc2d86d53a6bec793f6a979a9e8fdf7fe3f4c22](https://github.com/haskell/network/commit/fcc2d86d53a6bec793f6a979a9e8fdf7fe3f4c22) 48 [6db96969b3e8974abbfd50a7f073baa57376fd5e](https://github.com/haskell/network/commit/6db96969b3e8974abbfd50a7f073baa57376fd5e) 49 50## Version 3.1.1.1 51 52* Fix for GHCJS. 53 [#431](https://github.com/haskell/network/pull/431) 54 55## Version 3.1.1.0 56 57* A new API: `gracefulClose`. 58 [#417](https://github.com/haskell/network/pull/417) 59* `touchSocket`, `unsafeFdSocket`: Allow direct access to a socket's file 60 descriptor while providing tools to prevent it from being garbage collected. 61 This also deprecated `fdSocket` in favor of `unsafeFdSocket` and 62 `withFdSocket`. 63 [#423](https://github.com/haskell/network/pull/423) 64* `socketToFd`: Duplicates a socket as a file desriptor and closes the source 65 socket. 66 [#424](https://github.com/haskell/network/pull/424) 67 68## Version 3.1.0.1 69 70* getAddrInfo: raise exception if no AddrInfo returned. 71 [#410](https://github.com/haskell/network/pull/410) 72* Avoid catching SomeException. 73 [#411](https://github.com/haskell/network/pull/411) 74 75## Version 3.1.0.0 76 77* Making GC of socket safer. 78 [#399](https://github.com/haskell/network/pull/399) 79* Deprecating fdSocket. Use withFdSocket instead to ensure 80 that sockets are GCed in proper time. 81 [#399](https://github.com/haskell/network/pull/399) 82 83## Version 3.0.1.1 84 85* Fix blocking `if_nametoindex` errors on Windows 86 [#391](https://github.com/haskell/network/pull/391) 87 88## Version 3.0.1.0 89 90* Added `getSocketType :: Socket -> IO SocketType`. 91 [#372](https://github.com/haskell/network/pull/372) 92* Correcting manual and brushing up test cases 93 [#375](https://github.com/haskell/network/pull/375) 94* Fixed longstanded bug in `getContents` on mac 95 [#375](https://github.com/haskell/network/pull/375) 96* Fixing regression: set correct sockaddr length for abstract addresses 97 for Linux. 98 [#374](https://github.com/haskell/network/pull/374) 99 100## Version 3.0.0.1 101 102* Fixed a bug in `connect` where exceptions were not thrown 103 [#368](https://github.com/haskell/network/pull/368) 104 105## Version 3.0.0.0 106 107* Breaking change: the Network and Network.BSD are removed. 108 Network.BSD is provided a new package: network-bsd. 109* Breaking change: the signatures are changed: 110``` 111old fdSocket :: Socket -> CInt 112new fdSocket :: Socket -> IO CInt 113 114old mkSocket :: CInt -> Family -> SocketType -> ProtocolNumber -> SocketStatus -> IO Socket 115new mkSocket :: CInt -> IO Socket 116``` 117* 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. 118* Breaking change: SockAddrCan is removed from SockAddr. 119* Socket addresses are extendable with Network.Socket.Address. 120* "socket" is now asynchronous-exception-safe. 121 [#336](https://github.com/haskell/network/pull/336) 122* "recvFrom" returns (0, addr) instead of throwing an error on EOF. 123 [#360](https://github.com/haskell/network/pull/360) 124* All APIs are available on any platforms. 125* Build system is simplified. 126* Bug fixes. 127 128## Version 2.8.0.1 129 130* Eensuring that accept returns a correct sockaddr for unix domain. 131 [#400](https://github.com/haskell/network/pull/400) 132* Avoid out of bounds writes in pokeSockAddr. 133 [#400](https://github.com/haskell/network/pull/400) 134 135## Version 2.8.0.0 136 137* Breaking change: PortNumber originally contained Word16 in network 138 byte order and used "deriving Ord". This results in strange behavior 139 on the Ord instance. Now PortNumber holds Word16 in host byte order. 140 [#347](https://github.com/haskell/network/pull/347) 141* Breaking change: stopping the export of the PortNum constructor in 142 PortNumber. 143* Use bytestring == 0.10.* only. 144* Use base >= 4.7 && < 5. 145 146## Version 2.7.0.2 147 148* Removing withMVar to avoid the deadlock between "accept" and "close" 149 [#330](https://github.com/haskell/network/pull/330) 150* "close" does not throw exceptions. A new API: "close'" throws 151 exceptions when necessary. 152 [#337](https://github.com/haskell/network/pull/337) 153* Fixing the hang of lazy sendAll. 154 [#340](https://github.com/haskell/network/pull/340) 155* Installing NetDef.h (#334) 156 [#334](https://github.com/haskell/network/pull/334) 157 158## Version 2.7.0.1 159 160 * A new API: socketPortSafe. 161 [#319](https://github.com/haskell/network/pull/319) 162 * Fixing a drain bug of sendAll. 163 [#320](https://github.com/haskell/network/pull/320) 164 * Porting the new CALLCONV convention from master. 165 [#313](https://github.com/haskell/network/pull/313) 166 * Withdrawing the deprecations of packFamily and unpackFamily. 167 [#324](https://github.com/haskell/network/pull/324) 168 169## Version 2.7.0.0 170 171 * Obsoleting the Network module. 172 * Obsoleting the Network.BSD module. 173 * Obsoleting APIs: MkSocket, htonl, ntohl, 174 getPeerCred, getPeerEid, 175 send, sendTo, recv, recvFrom, recvLen, 176 inet_addr, inet_ntoa, 177 isConnected, isBound, isListening, isReadable, isWritable, 178 aNY_PORT, iNADDR_ANY, iN6ADDR_ANY, sOMAXCONN, 179 sOL_SOCKET, sCM_RIGHTS, 180 packFamily, unpackFamily, packSocketType 181 * Breaking change: do not closeFd within sendFd. 182 [#271](https://github.com/haskell/network/pull/271) 183 * Exporting ifNameToIndex and ifIndexToName from Network.Socket. 184 * New APIs: setCloseOnExecIfNeeded, getCloseOnExec and getNonBlock 185 * New APIs: isUnixDomainSocketAvailable and getPeerCredential 186 * socketPair, sendFd and recvFd are exported even on Windows. 187 188## Version 2.6.3.5 189 190 * Reverting "Do not closeFd within sendFd" 191 [#271](https://github.com/haskell/network/pull/271) 192 193## Version 2.6.3.4 194 195 * Don't touch IPv6Only when running on OpenBSD 196 [#227](https://github.com/haskell/network/pull/227) 197 * Do not closeFd within sendFd 198 [#271](https://github.com/haskell/network/pull/271) 199 * Updating examples and docs. 200 201## Version 2.6.3.3 202 203 * Adds a function to show the defaultHints without reading their undefined fields 204 [#291](https://github.com/haskell/network/pull/292) 205 * Improve exception error messages for getAddrInfo and getNameInfo 206 [#289](https://github.com/haskell/network/pull/289) 207 208## Version 2.6.3.2 209 210 * Zero memory of `sockaddr_un` if abstract socket 211 [#220](https://github.com/haskell/network/pull/220) 212 213 * Improving error messages 214 [#232](https://github.com/haskell/network/pull/232) 215 216 * Allow non-blocking file descriptors via `setNonBlockIfNeeded` 217 [#242](https://github.com/haskell/network/pull/242) 218 219 * Update config.{guess,sub} to latest version 220 [#244](https://github.com/haskell/network/pull/244) 221 222 * Rename `my_inet_ntoa` to avoid symbol conflicts 223 [#228](https://github.com/haskell/network/pull/228) 224 225 * Test infrastructure improvements 226 [#219](https://github.com/haskell/network/pull/219) 227 [#217](https://github.com/haskell/network/pull/217) 228 [#218](https://github.com/haskell/network/pull/218) 229 230 * House keeping and cleanup 231 [#238](https://github.com/haskell/network/pull/238) 232 [#237](https://github.com/haskell/network/pull/237) 233 234## Version 2.6.3.1 235 236 * Reverse breaking exception change in `Network.Socket.ByteString.recv` 237 [#215](https://github.com/haskell/network/issues/215) 238 239## Version 2.6.3.0 240 241 * New maintainers: Evan Borden (@eborden) and Kazu Yamamoto (@kazu-yamamoto). 242 The maintainer for a long period, Johan Tibell (@tibbe) stepped down. 243 Thank you, Johan, for your hard work for a long time. 244 245 * New APIs: ntohl, htonl,hostAddressToTuple{,6} and tupleToHostAddress{,6}. 246 [#210](https://github.com/haskell/network/pull/210) 247 248 * Added a Read instance for PortNumber. [#145](https://github.com/haskell/network/pull/145) 249 250 * We only set the IPV6_V6ONLY flag to 0 for stream and datagram socket types, 251 as opposed to all of them. This makes it possible to use ICMPv6. 252 [#180](https://github.com/haskell/network/pull/180) 253 [#181](https://github.com/haskell/network/pull/181) 254 255 * Work around GHC bug #12020. Socket errors no longer cause segfaults or 256 hangs on Windows. [#192](https://github.com/haskell/network/pull/192) 257 258 * Various documentation improvements and the deprecated pragmas. 259 [#186](https://github.com/haskell/network/pull/186) 260 [#201](https://github.com/haskell/network/issues/201) 261 [#205](https://github.com/haskell/network/pull/205) 262 [#206](https://github.com/haskell/network/pull/206) 263 [#211](https://github.com/haskell/network/issues/211) 264 265 * Various internal improvements. 266 [#193](https://github.com/haskell/network/pull/193) 267 [#200](https://github.com/haskell/network/pull/200) 268 269## Version 2.6.2.1 270 271 * Regenerate configure and `HsNetworkConfig.h.in`. 272 273 * Better detection of CAN sockets. 274 275## Version 2.6.2.0 276 277 * Add support for `TCP_USER_TIMEOUT`. 278 279 * Don't conditionally export the `SockAddr` constructors. 280 281 * Add `isSupportSockAddr` to allow checking for supported address types 282 at runtime. 283