Commit Graph

206 Commits

Author SHA1 Message Date
Shreyas Zare
20ccce2093 AuthZone: added app zone support. 2021-02-27 19:24:43 +05:30
Shreyas Zare
21263a883f added ApplicationSubDomainZone 2021-02-27 19:23:40 +05:30
Shreyas Zare
4a876557b7 added ApplicationZone 2021-02-27 19:22:30 +05:30
Shreyas Zare
85ac382d07 CacheZoneManager: implemented filterSpecialCacheRecords option in calls to prevent internal cache records from leaking. 2021-02-27 18:27:26 +05:30
Shreyas Zare
7a04792397 CacheZone: added filterSpecialCacheRecords option to FilterExpiredRecords to allow filtering special records that cache zone stores. 2021-02-27 18:26:13 +05:30
Shreyas Zare
a49697e5f9 StatsManager: implemented custom date range stats and top stats methods. code refactoring done to reuse same methods. 2021-02-14 15:18:54 +05:30
Shreyas Zare
e286331008 CacheZoneManager: updated CacheRecords() to read glue records from base class and set it again on the record as per DNS server method. Implemented glue record resolution in ResolveAdditionalRecords(). 2021-01-26 15:51:04 +05:30
Shreyas Zare
eeb19f051a ZoneTree: fixed bug in ListSubDomains() that listed corrupt sub domain names for non existent domain. 2021-01-17 18:29:51 +05:30
Shreyas Zare
08c2d859a7 StatsManager: made max stat file days as configurable setting. Removed loadQueryStats option to avoid file loading errors. 2021-01-17 17:50:24 +05:30
Shreyas Zare
ca32ccd715 DnsServer: Updated prefetch sampling initial interval to 5 sec and refresh timer initial interval to 10 sec to allow cache auto prefetch quickly after server restarts using stored query stats data. Reimplemented prefetch sampling for eligible queries in CachePrefetchSamplingTimerCallback() to correctly handle all cases. Enabling cache prefetch and auto prefetch only when recursion is enabled. 2021-01-16 18:06:13 +05:30
Shreyas Zare
4be8336e80 StatsManager: updated StatCounter to store query stats data. Updated implementation to load query stats only for last hour data. 2021-01-16 18:01:58 +05:30
Shreyas Zare
57e856a92e ResolverDnsCache: prefering auth response when there is a tie with cache. 2021-01-16 15:53:02 +05:30
Shreyas Zare
59f8daab1d PrimaryZone: fixed issue when creating primary zone for root ".". 2021-01-10 16:12:58 +05:30
Shreyas Zare
b4a9db7c5e ZoneTree: fixed issue in ListSubDomains(). 2021-01-03 15:57:11 +05:30
Shreyas Zare
fe8e9c1947 DomainTree: returning null in ConvertKeyToLabel() when domain length is less than 1. 2021-01-03 15:56:44 +05:30
Shreyas Zare
6242559c4e DnsServer: using default buffer size for tcp sockets. 2020-12-27 16:02:25 +05:30
Shreyas Zare
09fc300508 ignoring ObjectDisposedException when server stops. 2020-12-25 19:49:44 +05:30
Shreyas Zare
4180bc4fbc minor refactoring 2020-12-25 19:27:48 +05:30
Shreyas Zare
1bf2e43ec4 StatsManager: implemented top stats feature. 2020-12-25 18:29:21 +05:30
Shreyas Zare
d50fb087fb DnsServer: made changes to handle gracefull shutdown and restarting the DNS server. 2020-12-25 18:27:04 +05:30
Shreyas Zare
f0dd31ae6d AllowedZoneManager & BlockedZoneManager: Using AuthZoneManager's TotalZones. 2020-12-25 18:25:40 +05:30
Shreyas Zare
8df4c4c0f8 AuthZoneManager: implemented TotalZones for stats usage. 2020-12-25 18:24:28 +05:30
Shreyas Zare
7d75e2f430 StatsManager: added ReloadStats() method. 2020-12-20 16:58:12 +05:30
Shreyas Zare
b79274b26a AuthZoneManager: flushing zone before load to allow reloading. 2020-12-20 16:57:25 +05:30
Shreyas Zare
1e7c156594 BlockListZoneManager: flushing zone before load to allow reloading. 2020-12-20 16:57:01 +05:30
Shreyas Zare
ecfbfa1781 BlockedZoneManager: flushing zone before load to allow reloading. 2020-12-20 16:56:34 +05:30
Shreyas Zare
958f13a200 AllowedZoneManager: flushing zone before load to allow reloading. 2020-12-20 16:56:18 +05:30
Shreyas Zare
e7b42d64a3 StatsManager: implemented cleanup timer to automatically remove old stats files from disk. Added DeleteAllStats() to allow deleting all stats files and clearing in memory stats data. 2020-12-19 12:38:13 +05:30
Shreyas Zare
32243d30e1 DnsServer: added option to control serve stale feature. 2020-12-19 12:36:58 +05:30
Shreyas Zare
e5ec73c7c3 CacheZoneManager: updated serve stale default TTL to 3 days. 2020-12-19 12:35:57 +05:30
Shreyas Zare
9b653fd3a9 BlockListZoneManager: added support for automatic decompression when downloading block list. 2020-12-19 12:35:19 +05:30
Shreyas Zare
d92464e3ab DnsServer: updated code to use Task instead of threads for socket request listeners for all protocols since ReceiveFrom() would not work with SendToAsync due to bug in .NET 5. This change also improves performance significantly. 2020-12-13 19:10:05 +05:30
Shreyas Zare
d18a480dd2 DomainTree: throwing InvalidDomainNameException instead of DnsServerException to allow returning format error response. 2020-12-12 16:40:54 +05:30
Shreyas Zare
849df07c73 DnsServer: returning format error response when domain name is invalid. Setting recursion available flag in response for auth zone when recursion is desired since dns clients like nslookup and dig complain about it otherwise. 2020-12-12 16:40:06 +05:30
Shreyas Zare
31eee972e0 removed workaround code due to issue: https://github.com/dotnet/runtime/issues/37873 2020-12-06 18:08:41 +05:30
Shreyas Zare
bf6f92b542 minor code refactoring done. 2020-12-06 17:00:05 +05:30
Shreyas Zare
143ad95c93 DnsServer: Fixed issue in cache prefetch refresh feature that didnt take into account the Stub and Forwarder zones causing the DNS server to do usual recursive resolution to refresh cache instead of using the zone specified name servers or conditional forwarders. 2020-12-05 19:07:38 +05:30
Shreyas Zare
135c22ebe8 StubZone: updated stub zone to not allow adding records since this will create inconsistency issues when resursive resolvers query the stub zone. Removed stub sub domain zone too. 2020-11-14 16:49:50 +05:30
Shreyas Zare
885c832000 CacheZoneManager: updated code to do additional section processing for NS, MX and SRV queries. 2020-10-31 13:18:50 +05:30
Shreyas Zare
601d1066f8 AuthZoneManager: updated code to do additional section processing for NS, MX and SRV queries. 2020-10-31 13:18:23 +05:30
Shreyas Zare
fdc3f2367f DnsServer: removed constructor that uses machine name as server domain. Updated ProcessCNAME() and ProcessRecursiveQueryAsync() to return additional records for NS, MX and SRV queries. 2020-10-31 13:17:36 +05:30
Shreyas Zare
3781afcd8d CacheZoneManager: fixed issue which caused the cache manager to respond with RCODE refused instead of returning available closest name servers. 2020-10-11 16:15:02 +05:30
Shreyas Zare
09568eadc0 DnsServer: implemented RandomizeName option. 2020-10-04 20:34:19 +05:30
Shreyas Zare
e4bb8c15eb minor change 2020-10-04 14:50:08 +05:30
Shreyas Zare
92e5aa38e1 minor edit 2020-09-12 13:07:02 +05:30
Shreyas Zare
e7ba3ef3b0 DnsServer: implemented DoH wwwroot feature to support certbot webroot cert renewals. Code refactoring done. 2020-09-06 16:51:08 +05:30
Shreyas Zare
4d6ed9f424 AuthZone: added NS record shuffling. 2020-09-05 16:08:41 +05:30
Shreyas Zare
a9bc0e1e7f DnsServer: removed resolver task stuck optimization. Code refactoring done. 2020-09-05 16:08:09 +05:30
Shreyas Zare
e8ed7bd966 fixed issue of allowed and blocked zone not being marked as internal. 2020-08-30 19:05:10 +05:30
Shreyas Zare
c762a4800e DnsServer: setting udp socket buffers to 64kB to improve performance. 2020-08-29 16:50:21 +05:30