You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Improved Error and EDNS handling (#62), ContinueOnEmptyResponse (#64)
* changed how opt records are created and used. Added configuration to disable EDNS and to set the requested buffer size and DnsSec
* Changes the behavior in case of bad responses which were truncated by some middleman proxy or router - fixes#52
* Changing default unknown record handling to preserve the original data so that users can work with those records.
* Reworking error handling see #60
* Adding new setting ContinueOnEmptyResponse #64
Get it via NuGet https://www.nuget.org/packages/DnsClient/
29
-
30
-
Get beta builds from [MyGet](https://www.myget.org/feed/dnsclient/package/nuget/DnsClient).
31
-
32
24
## Features
33
25
34
26
### General
35
27
36
-
* Full Async API
37
-
* UDP and TCP lookup, configurable if TCP should be used as fallback in case UDP result is truncated (default=true).
28
+
* Sync & Async API
29
+
* UDP and TCP lookup, configurable if TCP should be used as fallback in case the UDP result is truncated (default=true).
30
+
* Configurable EDNS support to change the default UDP buffer size and request security relevant records
38
31
* Caching
39
32
* Query result cache based on provided TTL
40
33
* Minimum TTL setting to overrule the result's TTL and always cache the responses for at least that time. (Even very low value, like a few milliseconds, do make a huge difference if used in high traffic low latency scenarios)
41
-
*Cache can be disabled altogether
42
-
* Supports multiple DNS endpoints to be configured
43
-
*Configurable retry over configured DNS servers if one or more returned a server error
44
-
* Configurable retry logic in case of timeouts and other exceptions
34
+
*Maximum TTL to limit cache duration
35
+
* Cache can be disabled
36
+
*Multiple DNS endpoints can be configured. DnsClient will use them in random or sequential order (configurable), with re-tries.
37
+
* Configurable retry of queries
45
38
* Optional audit trail of each response and exception
46
39
* Configurable error handling. Throwing DNS errors, like `NotExistentDomain` is turned off by default
* SRV For service discovery. `LookupClient` has some extensions to help with that.
53
-
* OPT (currently only for reading the supported UDP buffer size, EDNS version)
46
+
* SRV for service discovery. `LookupClient` has some extensions to help with that.
54
47
* AXFR zone transfer (as per spec, LookupClient has to be set to TCP mode only for this type. Also, the result depends on if the DNS server trusts your current connection)
55
48
56
49
## Build from Source
57
50
58
-
The solution requires a .NET Core 2.x SDK and the [.NET 4.7.1 Dev Pack](https://www.microsoft.com/net/download/dotnet-framework/net471) being installed.
51
+
The solution requires a .NET Core 3.x SDK and the [.NET 4.7.1 Dev Pack](https://www.microsoft.com/net/download/dotnet-framework/net471) being installed.
59
52
60
-
Just clone the repository and open the solution in Visual Studio 2017.
61
-
Or use the dotnet client via command line.
53
+
Just clone the repository and open the solution in Visual Studio 2017/2019.
62
54
63
55
The unit tests don't require any additional setup right now.
64
56
@@ -70,18 +62,11 @@ Now, you can use **samples/MiniDig** to query the local DNS server.
70
62
The following should return many different resource records:
71
63
72
64
```cmd
73
-
dotnet run -s localhost micha.mcnet.com any
74
-
```
75
-
76
-
To test some random domain names, run MiniDig with the `random` sub command (works without setting up Bind, too).
77
-
78
-
```cmd
79
-
dotnet run random -s localhost
65
+
dotnet run -s localhost mcnet.com any
80
66
```
81
67
82
68
## Examples
83
69
84
-
* The [Samples](https://github.com/MichaCo/DnsClient.NET.Samples) repository will have some solutions to showcase the usage and also to test some functionality.
85
-
86
-
*[MiniDig](https://github.com/MichaCo/DnsClient.NET/tree/dev/samples/MiniDig) (See the readme over there)
87
-
70
+
* More docuemntation and a simple query window on http://dnsclient.michaco.net
71
+
* The [Samples](https://github.com/MichaCo/DnsClient.NET.Samples) repository (there might be more in the future).
0 commit comments