Niklas Keller
2d61f2d728
Extract blocking fallback into its own resolver
2019-07-08 22:23:20 +02:00
Niklas Keller
eb4cd40b7c
Fix error messages based on the discussion in #86
2019-07-08 22:13:21 +02:00
7def49809b
Provide blocking fallback if config cannot be loaded ( #86 )
2019-07-08 21:58:53 +02:00
fbf1ae2d89
Support final dot in DNS names ( #83 )
2019-06-13 18:38:23 +02:00
ab07b327f0
Change argument type of decodeCachedResult ( #84 )
2019-06-10 16:01:50 +02:00
Niklas Keller
d861050992
Rename driver() → createDefaultResolver()
2019-03-13 17:29:13 +01:00
Niklas Keller
05e0d23ec0
Revert making HostLoader::loadHosts() final
...
This method serves as an extension point not covered by an interface, so shouldn't be final.
2019-03-13 17:25:25 +01:00
Niklas Keller
882fcad930
Rename BasicResolver → Rfc1035StubResolver
2019-03-13 17:24:25 +01:00
Niklas Keller
d82d731008
Follow RFC 6761 for localhost resolution
...
Queries for localhost are no longer sent to the server, even if localhost isn't resolved by the hosts file.
Fixes #77 .
2019-03-13 17:18:23 +01:00
d42960ec2d
Resolve localhost locally as per RFC 6761
2019-03-13 17:06:25 +01:00
Niklas Keller
bb798c6dce
Remove outdated comment
2019-03-12 20:44:32 +01:00
Aaron Piotrowski
b023ecda84
Merge branch 'v0.9.x'
2019-03-12 09:48:37 -05:00
I'm OK
585acfaf77
Update functions.php
...
To support docker container url
2019-03-12 09:39:04 -05:00
Aaron Piotrowski
ecb423be02
Finalize some things
2019-03-03 09:12:47 -06:00
Aaron Piotrowski
e67ba98a16
Remove deprecated exceptions
2019-03-03 09:12:18 -06:00
Aaron Piotrowski
c1a61c6e78
Use shared styles
2019-01-24 19:27:47 -06:00
Aaron Piotrowski
375bf3f63b
Set pending request before send
...
While unlikely, the same request ID could have been selected while waiting to send.
2019-01-24 18:16:45 -06:00
Aaron Piotrowski
d26f9bb44f
Remove amphp/file and amphp/uri dependencies ( #80 )
...
Replaces async loading of hosts and resolver files with blocking reads by default.
Closes #78 .
2019-01-04 18:20:52 +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