A thread-safe DNS library for both clients and servers written in pure Haskell.
- The version introduces some breaking changes internally. But upper layer APIs in the
Lookupmodule remain the same.
- Breaking change:
ResourceRecordis not a sum type anymore. It holds only normal RRs. For EDNS0, a new scheme is implemented. #63
- Breaking change: the
Decodemodules use strict ByteString instead of lazy one. #59
- Default DNS servers are detected automatically on Windows if
RCFilePathis used. Use vanilla
defaultResolvConfon Windows! #83
- Multiple DNS servers can be used. You can choose either sequential lookup or concurrent lookup. See
- EDNS0 queries are used by default. #95
lookupSOAis defined. #93
- Cache mechanism is provided. See
- Some constructors such as ANY are added in the
- Some bug fixes and code clean-up.
- Testing with AppVeyor.
- Detecting a default DNS server on Windows.
- Fixing sendAll on Windows #72
Fixing Windows build again
- Fixing the StateBinary.get32 parser #57
- Removing bytestring-builder dependency #61
- Fixing Windows build #62
Cleaning up the code. #47
Implemented TCP fallback after a truncated UDP response. #46
Better handling of encoding and decoding the "root" domain ".". #45
Add length checks for A and AAAA records. #43
- Supporting DNS-SEC AD (authenticated data). #38
- Removing the dependency to blaze-builder.
Renaming a variable to fix preprocessor conflicts #37
Handle invalid opcodes gracefully. #36
Providing a new API: decodeMany.
- DNSMessage is now monomorphic
- RDATA is now monomorphic
- Removed traversal instance for DNSMessage
- EDNS0 encoding/decoding is now supported
- Removed dnsMapWithType and dnsTraverseWithType functions
- responseA and responseAAAA now take lists of IP addresses as their arguments
- DNSHeader type no longer has qdCount, anCount, nsCount, and arCount fields