Changelog for socket-0.6.0.0
0.6.0.0 Lars Petersen info@lars-petersen.net 2016-03-26
- Improved and adapted documentation.
- Merged
GetSocketOptionandSetSocketOptionto one single type classSocketOption. getNameInfonow returnsNameInfoinstead of a tuple.- Added all theoretically possible
SocketExceptions. - The type class
GetNameInfohas been renamed toHasNameInfo. - The type class
GetAddressInfohas been renamed toHasAddressInfo. - Removed operation
withConnectedSocketwithout replacement. It should not be part of this minimal library. Its code can be retrieved from the repository if needed. - The operations
sendAllandreceiveAllare now exported throughSystem.Socket.Type.Streamand no longer trough the main module. They are very specific, solely stream-oriented and just wrappers around the basic operations. Such operations shouldn't pollute the main module. - Issue #10: Ben Gamari reported that the associated type
SocketAddressis not injective which would lead to compilation failure on GHC 8.* . This is fixed by using a data family instead.
0.5.3.0 Lars Petersen info@lars-petersen.net 2015-08-09
- Added a test for
eOperationNotSupported(try to listen on a UDP socket). - Niklas Hambüchen added
eOperationNotSupported.
0.5.2.0 Lars Petersen info@lars-petersen.net 2015-07-08
- Don't set
msgNoSignalautomatically withsendandsendTo. This implicit behaviour is a bad design decision. The implications of this change are rather limited. The behaviour/correctness of an application is only affected if it hooked SIGPIPE. GHC's RTS by default ignores SIGPIPE since #1619. You're still advised to adapt your applications to usemsgNoSignalexplicitly when writing on stream oriented sockets. Otherwise the RTS gets unnecessarily interrupted. This is harmless, but annoying and not desired when developing high-performance applications. - Define
msgNoSignalas 0 if not available and documented this behaviour. - Added new exception value
ePipe.
0.5.1.0 Lars Petersen info@lars-petersen.net 2015-06-22
- Exposed
unsafeGetSocketOptionandunsafeSetSocketOption. - Exposed
socketWaitReadandsocketWaitWritethroughSystem.Socket.Unsafe.
0.5.0.0 Lars Petersen info@lars-petersen.net 2015-06-19
- Introduced newtypes
Port,FlowInfoandScopeIdin Inet6 family. - Renamed nearly everything in response to very constructive criticism by Bryan O'Sullivan. This is a breaking change (sorry about that). I felt this was the last chance to get this straight before the library gets widely adopted. Additional kudos to @ignorantone and @whatsthepoint.
- Issue #7: Typo in documentation of inaddrNONE and inaddrBROADCAST. Kudos to Michael Fox.
0.4.0.1 Lars Petersen info@lars-petersen.net 2015-06-17
- tar-ball did not contain relevant source files.
0.4.0.0 Lars Petersen info@lars-petersen.net 2015-06-16
- Changed semantics of
connectoperation. It now blocks until a connection has either has been established or failed. - Added
SO_ERRORsocket option. - Added
eALREADYexception constant. - Added
eISCONNexception constant. - Added
eNOTCONNexception constant. - Added convenience operation
withConnectedSocket. - Added
eNETUNREACHexception constant. - Added new operation
recvAlland changedsendAllto lazyByteString. - Added new socket option IPV6_V6ONLY.
- Removed untested socket option SO_ACCEPTCONN.
- Correctly defining AI_ flags on Windows (MinGW doesn't although they are all well support on Vista or higher).
- Got all tests passing on Windows 7.
0.3.0.1 Lars Petersen info@lars-petersen.net 2015-06-07
- Fixed documentation of eaiNONAME.
- Fixed typo in .cabal file in reference to cbits file.
0.3.0.0 Lars Petersen info@lars-petersen.net 2015-06-07
AddrInfoFlagsandNameInfoFlagsare now instances ofBits.- Dropped all sendmsg/recvmsg related operations (harden the core first!)
- Dropped support for UNIX socket (will be separate package
socket-unix) - Renamed type function
AddresstoSockAddr. - Added GetAddrInfo and GetNameInfo classes.
- Dropped support for SCTP (will be separate package
socket-sctp) - Added support for RAW sockets.
- Started to support Windows (still unfinished).
- New operation
recvRecord. - ReceiveMsg now returns a strict
ByteString. - New operations
sendV,sendToV. - Restricted getAddrInfo and getNameInfo and added
getAddrInfo6andgetNameInfo6 - Added address family types INET, INET6 and UNIX (API breaking change)
- Hide
SockAddrIn6address constructor - Hide
SockAddrInaddress constructor - Added
recvMsgoperation - Fixed unsafeSend, unsafeSendTo and unsafeSendMsg (they were waiting for a read event instead of waiting for writing)
- Use
aiStrErrorvalues in Show instance - Added
aiStrErrorfunction - Added constants for AddrInfoException
- Changed definitin of AddrInfoException
- Added
sendAllMsgoperation - Added
sendMsgoperation (+ some types and internals)
0.2.0.0 Lars Petersen info@lars-petersen.net 2015-05-29
- Added a sendAll operation
- Exposed the Socket constructor
- Added
getNameInfooperation - Added msgWAITALL and fixed serious bug regarding all other MsgFlags
- Nicer Show instances for SockAddrIn and SockAddrIn6
- Hiding internal modules
- Added
getAddrInfooperation
0.1.0.1 Lars Petersen info@lars-petersen.net 2015-05-28
- Added CHANGELOG.md
- Removed
threadWaitReadMVarandthreadWaitWriteMVar - Import
Data.MonoidinSystem.Socket.Unsafeto support older Preludes
0.1.0.0 Lars Petersen info@lars-petersen.net 2015-05-28
- Initial release