Commit Graph

555 Commits

Author SHA1 Message Date
Shreyas Zare
816eba7545 AuthZoneInfo: added GetPrimaryNameServerAddresses() and GetSecondaryNameServerAddresses(). 2020-06-28 19:39:09 +05:30
Shreyas Zare
02c8ae8400 AuthZone: added checks in GetNameServerAddresses() to prevent exceptions. Made GetPrimaryNameServerAddresses() public, used GetRecords() for getting NS records and updated implementation to use addresses from NS record and from glue records. Made GetSecondaryNameServerAddresses() public and used GetRecords() for getting NS records. Updated GetRecords() to return empty array if no records are found. Optimized ContainsNameServerRecords() code. 2020-06-28 19:38:34 +05:30
Shreyas Zare
f326110514 CacheZone: optimized code in ContainsNameServerRecords(). 2020-06-28 19:32:44 +05:30
Shreyas Zare
a6b8c66a19 DnsResourceRecordExtension: added SetGlueRecords() and refactored old method to SyncGlueRecords(). 2020-06-28 19:31:17 +05:30
Shreyas Zare
f98a451180 AuthZoneManager: fixed issue in QueryZoneTransferRecords() which caused extra SOA record. Removed special case in SyncRecords(). Updated delegation check sequence back to original in Query(). 2020-06-28 16:38:59 +05:30
Shreyas Zare
c0fe15cf63 webapp: fixed issue with updateRecordState() causing NS records to lose glue addresses. 2020-06-28 16:37:04 +05:30
Shreyas Zare
ee0847d316 timeout values updated as per DnsClient implementation changes. 2020-06-28 15:52:47 +05:30
Shreyas Zare
d9862308af SecondaryZone: updated AXFR timeout to 5 mins per retry to allow waiting for longer time to refresh zone. Updated initial soa refresh and retry values for quick retries. Updated RefreshZone() to use all name servers to do zone transfer. 2020-06-27 17:40:32 +05:30
Shreyas Zare
03ea47fd8e StubZone: updated initial soa refresh and retry values for quick retries. Updated RefreshZone() to use same name servers to do zone sync. 2020-06-27 17:39:01 +05:30
Shreyas Zare
21eb4dd7d3 DnsServer: replaced ConcurrentDictionary with DomainTree to manage resolver query handles to have a complete lock less lookup code. 2020-06-27 15:38:42 +05:30
Shreyas Zare
b24963425e ZoneTree: implemented DomainTree and ByteTree TryRemove() changes. 2020-06-27 15:36:49 +05:30
Shreyas Zare
2db9337d36 DomainTree: implemented independent class to traverse domain name to be reuseable. 2020-06-27 15:35:35 +05:30
Shreyas Zare
7301c2ea65 WebService: using new DnsCache property in ResolveQuery(). Minor refactoring changes done. 2020-06-27 12:05:03 +05:30
Shreyas Zare
3abb76fe8d DnsServer: implemented ResolverDnsCache for recursive resolution. Updated ProcessQuery() to change the sequence of checking for blocked zones to allow blocking correctly in case of stub zone or forwarder zone being used. Fixed implementation changes in ProcessAuthoritativeQuery(), ProcessCNAME(), ProcessANAME() and ProcessRecursiveQuery(). RecursiveResolveAsync() stopped caching failure record in case of exception due to undesirable side effects for clients. CachePrefetchSamplingAsync() added zone type checks. Code refactoring done. 2020-06-27 12:03:54 +05:30
Shreyas Zare
fe8da4e5c8 ResolverPrefetchDnsCache: updated class to inherit ResolverDnsCache and allow using auth zone for recursive resolution. 2020-06-27 11:58:37 +05:30
Shreyas Zare
c74acc6540 ResolverDnsCache: added class to allow recursive resolver to be able to query auth zone too. 2020-06-27 11:57:52 +05:30
Shreyas Zare
920200c505 AuthZoneManager: removed code that added glue records from SOA for zone transfer output in QueryZoneTransferRecords(). Updated SyncRecords() to allow root zone to respond for A or AAAA records for *.root-servers.net records and fixed name comparison issue. UpdateRecord() removed code for updating glue records for NS since secondary and stub NS records must not be changed. Query() updated the sequence of checking for delegation. Updated LoadZoneFrom() to delete zone if it fails to load. 2020-06-27 11:56:40 +05:30
Shreyas Zare
6c25e9498e ForwarderZone: added SetRecords() and AddRecord() methods with validation checks. 2020-06-27 11:51:43 +05:30
Shreyas Zare
c29424f9c3 StubZone: using GetPrimaryNameServerAddresses() in RefreshTimerCallback(). Code refactoring done. Added validation checks in SetRecords(). 2020-06-27 11:50:16 +05:30
Shreyas Zare
58f592d3b6 SecondaryZone: RefreshTimerCallback() code refactoring done. Updated SetRecords() to copy glue records for SOA with validations. 2020-06-27 11:46:43 +05:30
Shreyas Zare
9e78fbca34 PrimaryZone: using GetSecondaryNameServerAddresses() call. Updated SetRecords() to remove any attached info data. 2020-06-27 11:45:12 +05:30
Shreyas Zare
06694b0eb2 AuthZone: updated implementation to get secondary name server addresses. Fixed SyncRecords() to allow syncing root zone correctly and to avoid overwriting glue records for SOA. Removed UpdateGlueAddresses(). Fixed typo bug in QueryRecords(). 2020-06-27 11:43:58 +05:30
Shreyas Zare
f22972abd9 CacheZone: fixed minor typo bug. 2020-06-27 11:41:52 +05:30
Shreyas Zare
54762297ea ZoneTree: fixed issues in FindZone() to correctly check if sub domains exists. Fixed issue in selection of delegation and authority zones. 2020-06-27 11:41:17 +05:30
Shreyas Zare
8bf488818d webapp: updated UI glue addresses fields for specific zone types only. Disabled NS record edit options for secondary and stub zones. 2020-06-21 19:52:09 +05:30
Shreyas Zare
d18bf2ab77 ZoneTree: added IsKeySubDomain() checks in FindNodeValue() instead of checking it afterwards for correctness. 2020-06-20 19:22:45 +05:30
Shreyas Zare
9cdb21acd0 DnsServer: updated ProcessZoneTransferQuery() with zone checks using AuthZoneInfo. 2020-06-20 19:14:21 +05:30
Shreyas Zare
d5e463ec28 StubZone: not adding glue for SOA record as its not required. 2020-06-20 19:13:44 +05:30
Shreyas Zare
9fa91d96f7 AuthZoneManager: updated SyncRecords() to handle root zone case. Prevented SyncRecords() from overwriting glue addresses for SOA record. 2020-06-20 19:12:50 +05:30
Shreyas Zare
be3fc997a7 webapp: changed glue address ui to use textarea. 2020-06-20 19:11:11 +05:30
Shreyas Zare
0360f76d28 StubZone: using GetAllNameServerAddresses() for getting all name server addresses. 2020-06-20 17:35:04 +05:30
Shreyas Zare
33f28c8d89 SecondaryZone: using GetPrimaryNameServerAddresses() to get primary name server addresses. Using different timeout values for SOA and AXFR queries since AXFR may take longer time. Code refactoring done. 2020-06-20 17:34:33 +05:30
Shreyas Zare
870937f390 PrimaryZone: using GetAllNameServerAddresses() method to get secondary name server addresses. 2020-06-20 17:32:17 +05:30
Shreyas Zare
c9ba96e82f AuthZone: implemented GetNameServerAddresses(), GetPrimaryNameServerAddresses() and GetAllNameServerAddresses() common functions for code reuse. 2020-06-20 17:31:41 +05:30
Shreyas Zare
40e15825f7 ZoneTree: fixed bug in GetNextSubDomainZoneNode() which could cause listing of sub domains from another zone down the tree. fixed bug in FindNodeValue() to allow finding authority when key is for root. Fixed issue in FindZone() that would incorrectly report existence of sub domain. 2020-06-20 16:33:19 +05:30
Shreyas Zare
c5064651ac BlockListZoneManager: fixed null reference error. 2020-06-20 16:30:52 +05:30
Shreyas Zare
8703c9fb57 DnsServer: implemented DnsDatagram parsing changes. 2020-06-20 14:17:28 +05:30
Shreyas Zare
5e8cb1cbd1 AuthZoneManager: zone loading sequence updated. update server domain done async. Fixed issue with GetForwarderResponse() to allow using subdomain FWD records. Updated LoadZoneFrom() to correctly loading old version stub zones. Fixed minor issues and refactoring done. 2020-06-20 14:14:19 +05:30
Shreyas Zare
353693529f BlockListZoneManager: zone loading sequence updated. code refactoring done. 2020-06-20 14:10:26 +05:30
Shreyas Zare
c1a3e0fe86 minor refactoring done. 2020-06-20 14:09:35 +05:30
Shreyas Zare
e7cd3687ef BlockedZoneManager: zone loading sequence updated. 2020-06-20 14:09:13 +05:30
Shreyas Zare
9795225bd2 AllowedZoneManager: zone loading sequence updated. 2020-06-20 14:08:41 +05:30
Shreyas Zare
0ac4b61f28 minor code refactoring. 2020-06-20 14:08:10 +05:30
Shreyas Zare
0afe7a8e64 DhcpServer: implemented waitForInterface option in ActivateScope() to allow waiting upto 30 sec for activating scope on server startup. Implemented stopping option in UnloadScope() to avoid closing socket when server is stopping to prevent from getting indefinitely blocked due to .NET Core bug on linux. 2020-06-20 14:05:43 +05:30
Shreyas Zare
f88717e731 webapp: ui enhancements done. added OISD block list. 2020-06-20 14:02:35 +05:30
Shreyas Zare
1351c43ca2 WebService: fixed minor issues. updated zone loading sequence. loading for block list zone done async to allow server to start quickly. 2020-06-20 14:01:02 +05:30
Shreyas Zare
f00cdad2ab Fixed socket dispose getting blocked issue with work around. More info on the issue: https://github.com/dotnet/runtime/issues/37873 2020-06-14 19:57:21 +05:30
Shreyas Zare
2d2824cc6c webapp: updated UI to allow editing glue addresses for secondary and stub zones. 2020-06-14 15:45:23 +05:30
Shreyas Zare
6e29034566 AuthZoneManager: updated auth zones to allow updating glue addresses for secondary and stub zones. 2020-06-14 15:44:29 +05:30
Shreyas Zare
5b978f9f28 added missing ANAME validations. 2020-06-14 13:47:48 +05:30