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

29 Commits

Author SHA1 Message Date
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
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
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
Niklas Keller
46cc8e47c7 Remove normalizeDnsName and isValidDnsName, as they're in amphp/uri now 2017-06-24 00:53:10 +02: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
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
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
Aaron Piotrowski
c250d471c8
WIP 2017-06-23 00:34:11 -05:00