1
0
mirror of https://github.com/danog/dns.git synced 2024-11-26 20:14:51 +01:00
Commit Graph

162 Commits

Author SHA1 Message Date
861cc857b1 Move localhost fallback generation to Config, use cloudflare DNS as DNS fallback 2018-12-24 16:23:04 +01:00
2cc9e78a96 Resolve localhost locally as per RFC 6761 2018-12-24 13:12:09 +01:00
e943bcfde7 Use google DNS if cannot load config 2018-12-24 12:49:01 +01:00
Niklas Keller
d8d497458a Improve error messages 2018-05-01 19:55:02 +02:00
Austin Heap
41d02a30bb Use ext-filter instead of inet_pton to avoid error suppression (#73) 2018-03-31 17:56:32 +02:00
Niklas Keller
2c8133a7b4 Allow empty domain names to be decoded
This is a rather long standing issue. LibDNS didn't allow to decode empty domain names. Empty domain names were previously only observed with PTR records, but were now also observed in regular queries in authoritative records that include the root nameservers.

LibDNS 2.0 mainly adds scalar types has just a few breaking changes. We don't expose it anywhere, so an upgrade is perfectly fine.

Fixes #53.
2018-01-10 17:26:11 +01:00
Niklas Keller
16e6d6c22f Limit cache size by default to 256 entries
Fixes #65.
2017-12-16 19:59:47 +01:00
Bob Weinand
cbaa517c8a
Fix #68 - cyclic reference within BasicResolver->gcWatcher 2017-11-07 16:18:49 +01:00
Niklas Keller
36ef1a6959 Prevent UDP sockets from leaking and close sockets on timeouts 2017-11-07 09:42:42 +01:00
Niklas Keller
1a41089d84 Fix BasicResolver::resolve to break redirect loop
Previously we queried domains usually five times (max redirects). It didn't have much impact, because these records were usually cached and immediately returned again, but this resulted in the TTL always being NULL due to cached records being returned.
2017-09-12 17:08:38 +02:00
Niklas Keller
dd6e3c294a Improve example formatting and add PTR example 2017-09-12 17:05:40 +02:00
Niklas Keller
fcdf01de72 Add Record::getName to translate record types to names 2017-09-12 17:04:41 +02:00
Robert Goldsmith
4005ff4d32 Fix a precedence issue whee supplying your own ConfigLoader to the BasicResolver resulted in a WindowsConfigLoader being instantiated instead. 2017-08-09 18:53:33 +02:00
Niklas Keller
a5ccdd9a08 Fix up previous commit for concurrent config loading 2017-07-13 21:17:16 +02:00
Niklas Keller
474787af05 Don't load config multiple times concurrently 2017-07-13 21:02:59 +02:00
Niklas Keller
d382d71fc7 Implement proper fix for the OPCache issue 2017-07-01 15:44:10 +02:00
Niklas Keller
c1c552d752 Add php-src bug reference 2017-07-01 12:19:09 +02:00
Niklas Keller
e0fc018ad7 Work around OPCache issue 2017-07-01 10:52:56 +02:00
Niklas Keller
f9f0c6cdc8 Fix queries over TCP, add tests 2017-06-29 12:36:09 +02:00
Niklas Keller
1a1427ce10 Add explanation comments 2017-06-27 18:35:57 +02:00
Niklas Keller
8dca65bcd4 Move socket classes into an internal namespace 2017-06-27 18:30:28 +02:00
Niklas Keller
bd78869bcd Rename Server to Socket
Server was pretty weird, they're sockets. These classes were marked as
@internal before, so this is not a BC break.
2017-06-27 17:47:57 +02:00
Niklas Keller
ee05df2e1e Use random IDs and different UDP ports for each request
This is another countermeasure as outlined in https://tools.ietf.org/html/rfc5452. Request IDs have 16 bits of entropy now. The port will change during requests, but is usually not random. However, there are systems that use a random port for :0 port requests.
2017-06-27 17:35:53 +02:00
Niklas Keller
58b9ed1035 Match question section of responses to the asked question
This makes forging responses and poisoning the cache harder and is one method suggested in https://tools.ietf.org/html/rfc5452.
2017-06-27 16:55:24 +02:00
Niklas Keller
cbffb766f3 Restrict caching to max one day 2017-06-25 21:00:30 +02:00
Aaron Piotrowski
3aaf2708f7
Use flag to control reading requests 2017-06-24 00:50:34 -05:00
Niklas Keller
ad55bcf870 Fix host loading on Windows 2017-06-24 01:18:12 +02:00
Aaron Piotrowski
70205d9282
Store deferred in question array before receiving
Also avoid creating unnecessary exception instances.
2017-06-23 18:05:11 -05:00
Niklas Keller
46cc8e47c7 Remove normalizeDnsName and isValidDnsName, as they're in amphp/uri now 2017-06-24 00:53:10 +02:00
Aaron Piotrowski
6a2e666a80
Consolidate error handling 2017-06-23 16:25:50 -05:00
Niklas Keller
8271989335 Fix garbage collection and mark classes as final / internal 2017-06-23 21:07:59 +02:00
Niklas Keller
fd7c82113c Fix retrying, wrap non-ResolutionExceptions in ResolutionException 2017-06-23 20:51:50 +02:00
Niklas Keller
dd938ce846 Clean up unused sockets 2017-06-23 19:13:28 +02:00
Niklas Keller
b0aa8daeca Implement timeout for queries 2017-06-23 18:57:22 +02:00
Niklas Keller
015ac39f08 Fix BasicResolver::reloadConfig 2017-06-23 18:43:04 +02:00
Niklas Keller
a10643fa37 Fix issue with type restricted resolve and add test 2017-06-23 18:35:48 +02:00
Niklas Keller
9ed331ae3d Implement request sharing for concurrent requests to the same resource 2017-06-23 17:48:03 +02:00
Niklas Keller
1bd8870003 Fix code style 2017-06-23 17:37:40 +02:00
Aaron Piotrowski
a4b714c0b0
Keep receiving if there are still pending requests 2017-06-23 10:06:30 -05:00
Niklas Keller
f536ddfd8a Purge requests if they're still in the map after 65k requests in between 2017-06-23 15:34:12 +02:00
Niklas Keller
2d5a7ab37b Change appveyor.yml, it's enough to run one version of PHP on Windows 2017-06-23 14:37:04 +02:00
Niklas Keller
b05d11912b Fix resolution data and add CNAME / DNAME support 2017-06-23 14:23:04 +02:00
Niklas Keller
05a413f72c Error out if type is restricted and passed name is an IP but not of that type 2017-06-23 13:39:20 +02:00
Niklas Keller
ea1cd633dd Add BasicResolver::reloadConfig() and move docs to interface 2017-06-23 13:32:04 +02:00
Niklas Keller
affebb612a Delete DefaultDriver 2017-06-23 13:15:15 +02:00
Niklas Keller
ebdf4a663e Implement resolve in BasicResolver 2017-06-23 13:14:51 +02:00
Niklas Keller
0331eadcc8 Implement TCP retry and server reuse 2017-06-23 12:49:16 +02:00
Niklas Keller
48e37f4014 Implement caching and name normalization in BasicResolver 2017-06-23 09:24:26 +02:00
Niklas Keller
f0a67f5619 Refactor TcpServer connect logic and fix its parser 2017-06-23 08:39:49 +02:00
Aaron Piotrowski
c250d471c8
WIP 2017-06-23 00:34:11 -05:00