Commit Graph

311 Commits

Author SHA1 Message Date
Shreyas Zare
8aaa9d5c96 DnsServer: implemented queries per minute limit feature. Updated ProcessZoneTransferQueryAsync() code to implemented new zone transfer options. 2021-05-23 18:05:17 +05:30
Shreyas Zare
dec9f19d5c StatsManager: implemented GetClientStats() method to return per client query count stats for QPM limit feature. 2021-05-23 17:56:20 +05:30
Shreyas Zare
d129c81031 AuthZoneManager: code refactoring done. Updated LoadZoneFrom() to trigger notify for secondary zone. 2021-05-23 17:55:26 +05:30
Shreyas Zare
e6f374b6c5 ForwarderZone: code refactoring done. implemented zone transfer and notify properties. 2021-05-23 17:52:01 +05:30
Shreyas Zare
b000f8e4b3 StubZone: code refactoring done. implemented zone transfer and notify properties. 2021-05-23 17:51:21 +05:30
Shreyas Zare
dddb9c6114 SecondaryZone: implemented notify feature. 2021-05-23 17:49:10 +05:30
Shreyas Zare
fa1e20442f minor code refactoring 2021-05-23 17:47:12 +05:30
Shreyas Zare
3f095df4a8 PrimaryZone: updated code for zone transfer and notify options. 2021-05-23 17:46:53 +05:30
Shreyas Zare
7015194877 minor refactoring done 2021-05-23 17:04:07 +05:30
Shreyas Zare
a1df69dbd8 AuthZoneInfo: updated code to add support for configurable zone transfer and notify options. 2021-05-23 16:54:27 +05:30
Shreyas Zare
d3dc1b8802 AuthZone: implemented AuthZoneTransfer and AuthZoneNotify to support feature to allow configurable options for zone transfer and notify. Added new constructor to assign variables directly from AuthZoneInfo. 2021-05-23 16:51:55 +05:30
Shreyas Zare
d5332e49cd minor refactoring. 2021-05-23 16:49:40 +05:30
Shreyas Zare
3c15e96ec7 DnsServer: Implemented IDnsClient interface for direct querying. Implemented recursion ACL options. 2021-05-16 16:52:46 +05:30
Shreyas Zare
53fc761903 DnsServer: returning ServerFailure when ANAME record fails to resolve any address. 2021-05-09 18:38:21 +05:30
Shreyas Zare
1d838af920 minor code refactoring done. 2021-05-08 16:28:02 +05:30
Shreyas Zare
776b77a165 DnsServer: updated QueryCache() method with correct condition checks for cache response. Removed reset expiry code for stale records since it was moved to cache zone manager. 2021-05-08 16:18:34 +05:30
Shreyas Zare
73094fb692 ResolverPrefetchDnsCache: code refactoring done. 2021-05-08 16:16:54 +05:30
Shreyas Zare
889ee022e7 ResolverDnsCache: updated Query() method with correct check conditions for auth and cache response. 2021-05-08 16:15:19 +05:30
Shreyas Zare
87738f5c65 CacheZoneManager: updated Query() method with serveStaleAndResetExpiry parameter to handle resetting stale records in one place. 2021-05-08 16:12:17 +05:30
Shreyas Zare
486981e7e0 DnsApplicationManager: updated UpdateApplicationAsync() method to avoid overwriting dns app config file while updating the app. 2021-05-08 15:49:43 +05:30
Shreyas Zare
3658007c77 StubZone: updated SetRecords() to support comments for SOA record. 2021-05-08 15:45:08 +05:30
Shreyas Zare
68fa1685f8 SecondaryZone: updated SetRecords() to support comments for SOA record. 2021-05-08 15:44:49 +05:30
Shreyas Zare
96aedcd8d8 PrimaryZone: updated SetRecords() to support comments for SOA record. 2021-05-08 15:44:27 +05:30
Shreyas Zare
e73af2841f DnsResourceRecordExtension: added GetComments() and SetComments() extension methods. 2021-05-08 15:39:26 +05:30
Shreyas Zare
089d0e2dc6 DnsResourceRecordInfo: added comments property to resource records. 2021-05-08 15:38:03 +05:30
Shreyas Zare
55abc83841 StatsManager: updated module to truncate the daily stats file to top 1000 records to prevent loading large amount of data in memory. Updated code to return top 10 query type stats. 2021-05-01 13:56:34 +05:30
Shreyas Zare
eaa16f93d9 DnsServer: added missing response type tags to reflect correctly in stats. Forcing recursive resolution for delegation. Code refactoring done. 2021-04-24 13:19:29 +05:30
Shreyas Zare
270db959f2 ResolverPrefetchDnsCache: updated code to check for null. 2021-04-24 12:47:53 +05:30
Shreyas Zare
b917bc4518 ResolverDnsCache: updated code to check for null. 2021-04-24 12:47:29 +05:30
Shreyas Zare
f006ffb887 CacheZoneManager: added checks to prevent returning root name servers from cache. Code refactoring done. 2021-04-24 12:14:36 +05:30
Shreyas Zare
1d48f1a268 AuthZoneManager: code refactoring done. 2021-04-24 12:12:32 +05:30
Shreyas Zare
d2c5243ecf BlockListZoneManager: code refactoring done. 2021-04-24 12:11:35 +05:30
Shreyas Zare
72ff0edfc7 AuthZoneInfo: code refactoring done. 2021-04-24 12:10:30 +05:30
Shreyas Zare
8825f08e76 DnsServer: updated code for resetting expiry for stale records and moved it into QueryCache() method to allow reseting to occur when the first client's request expires to quickly serve stale for other clients even before the background recursive resolution process completed. 2021-04-17 14:22:09 +05:30
Shreyas Zare
519c9a7145 AuthZoneManager: implemented ResolveCNAME() to resolve CNAME from auth zones in one go for optimization. Using TryGet() method directly in ResolveAdditionalRecords() for optimization. Fixed issue with condition check sequence when returning delegation NS records in QueryClosestDelegation(). 2021-04-17 14:19:09 +05:30
Shreyas Zare
5d1b8ba887 CacheZoneManager: implemented ResolveCNAME() method to resolve CNAME from cache in one go for optimization. Updated ResolveAdditionalRecords() to use direct TryGet() method which costs less. Fixed issue with code condition check sequence when returning delegation NS records in QueryClosestDelegation() and Query() methods. 2021-04-17 14:16:52 +05:30
Shreyas Zare
53873094ff CacheZone: fixed bug in ContainsNameServerRecords() that caused returning true when the NS record contains special cache record. Code updated to use DnsResourceRecord.IsExpired() method to check if record is expired. Minor code refactoring done. 2021-04-17 14:13:20 +05:30
Shreyas Zare
eb1005697e DnsServer: fixed bug in ProcessBlockedQuery() caused by missing else condition check which would cause the server to return Refused response when block zone is not empty and block list zone is empty. 2021-04-11 20:43:34 +05:30
Shreyas Zare
eeac4ec5a6 DnsServer: implemented UseNxDomainForBlocking option. 2021-04-11 17:42:05 +05:30
Shreyas Zare
8e4cfacbb0 BlockListZoneManager: implemented UseNxDomainForBlocking option. 2021-04-11 17:41:05 +05:30
Shreyas Zare
ba7b053bf0 refactored NameError to NxDomain 2021-04-11 17:40:23 +05:30
Shreyas Zare
f5da78c579 DnsServer: reusing memory stream in ReadUdpRequestAsync(). Updated ProcessAPPAsync() to return server failure when app or class path is not found. Updated CachePrefetchRefreshTimerCallback() and RefreshCacheAsync() to prevent double refresh attempts. Updated CachePrefetchRefreshTimerCallback() to use threadpool tasks for better concurrency. Updated CacheMaintenanceTimerCallback() to reset due time in finally for next interval callback and using sync lock. Fixed bug in UpdateThisServer() logic. 2021-04-10 13:58:48 +05:30
Shreyas Zare
be9ff3ea75 AuthZoneManager: minor code refactoring. 2021-04-10 13:44:54 +05:30
Shreyas Zare
fdb1ec8cc8 BlockListZoneManager: using SocketsHttpHandler. 2021-04-10 13:44:12 +05:30
Shreyas Zare
4dfba23dcf CacheZoneManager: using specific capacity in CacheRecords(). 2021-04-10 13:43:35 +05:30
Shreyas Zare
265d436dec AuthZone: minor code refactoring. 2021-04-10 13:42:46 +05:30
Shreyas Zare
8268bfdb30 CacheZone: using specific capacity for memory optimization. minor code refactoring done. 2021-04-10 13:38:57 +05:30
Shreyas Zare
ac7c95eedf Zone: memory optimization done by using specific capacity for concurrent dictionary. 2021-04-10 13:37:57 +05:30
Shreyas Zare
6df2d0ae37 ZoneTree: code refactoring done. 2021-04-10 13:36:54 +05:30
Shreyas Zare
4f52a2723b DnsApplicationManager: code refactoring done. 2021-04-10 13:36:27 +05:30