History log of /bionic/libc/dns/resolv/res_cache.c
Revision Date Author Comments
b0cfefac916a2e136afaeecb141d1804e19d6e6e 06-May-2016 Pierre Imai <imaipi@google.com> Always update search domain paths.

_resolv_set_nameservers_for_net() so far did not update the search
paths, unless the servers changed as well.

BUG: 28437641
Change-Id: Id31f2d97c173e00357fb2ba95908afb4572c0fc1
(cherry picked from commit 06e2202a4cc6d9a0f382a0bbdcdbd2d527734d5f)
75746069ea649f84485343c300de13b62fce5e6f 26-Apr-2016 Pierre Imai <imaipi@google.com> DO NOT MERGE Fix DNS search path info.

Fix the resolver information returned by
android_net_res_stats_get_info_for_net,
erroneously included MAXDNSRCH empty results if no search path was set.

BUG: 25731675
Change-Id: I97ef5d2d47dc62ca403a3323c7f14902e47b29b6
(cherry picked from commit 1b069a990ad783cd20327a35df59fcdc83e2e1e2)
21bf06372742b0524c358502eb692a2245d64dda 17-Apr-2016 Pierre Imai <imaipi@google.com> DO NOT MERGE Add new info functions to resolver for use by Netd.

android_net_res_stats_get_info_for_net returns the current name servers, search
domains, parameters and stats for the given network ID.

android_net_res_stats_aggregate provides statistics such as errors counts from
the raw stats data reported by android_net_res_stats_get_info_for_net.

android_net_res_stats_get_usable_servers uses the data returned by
android_net_res_stats_aggregate to determine which of the servers are
considered valid or broken by the resolver.

BUG: 25731675
Change-Id: I6059b68e5e8b809027a4d3135f6081588bee8a7d
589afca92c2fa026f908ec2c54c0450c438c602c 18-Apr-2016 Pierre Imai <imaipi@google.com> DO NOT MERGE Store DNS server count in resolv_cache.

Instead of keeping a sentinel after nameservers[], nsaddrinfo[] and
nstats[], store the server count in the structure, freeing up memory and
eliminating the need to enumerate the server count every time
_resolv_is_nameservers_equal_locked() is invoked.

Also increase MAXNS from 3 to 4.

BUG: 28153323
Change-Id: I11a7257af695157c9e32019cd00c67b535b63c75
(cherry picked from commit fff356786f8a3a98c5c29f12bb7e59e6d98076a9)
8b50d08e826dacdd9422b7151121808307da3a10 05-Apr-2016 Pierre Imai <imaipi@google.com> DO NOT MERGE: Fix off-by-one error in res_cache.c

(cherry picked from commit 03844d8cdb43c351d2c94eb67242966019f7600d)

Change-Id: Ib5fff46ac9211716a1577ee25bb22461c489ea9f
4d8e740b0868b2670599b949ff07d74e5f317114 22-Feb-2016 Pierre Imai <imaipi@google.com> DO NOT MERGE: Ignore unreliable DNS servers.

Collect statistics about DNS query success state and delay. Ignore
servers that have been tried at least five times and have a success rate
of < 0.25. Retry these servers once every 180s.

Bug: 25731675

(cherry picked from commit 6b3f0d65f2c706625e5efb495df0f2c6178b965a)

Change-Id: Id989404b14fd885fb31a5a4de36a4186be1c9ad1
9db1f3efa8499fa6a97ba5f4b2f12d431b7d25fe 29-Feb-2016 Pierre Imai <imaipi@google.com> Copy the entire zero-separated DNS seach domain string.

The DNS search string contains zeros as domain separator. The resolver
code erroneously used strlcpy(), which resulted in only the first domain
to be copied. The code uses pointers into this string to access the
individual domains. Since the structure is zero-initialized, this bug only
resulted in zero-length domains instead of accessing unitialized memory.

BUG: 27312811
Change-Id: Ia9d066c405dfcc5e82d6766d93ead2ce574e7b0d
(cherry picked from commit 0967fc7e59cda0ea2561b0eaa58ed842da7c0eb9)
4dcfccff8d8dacefe79b5176b9b917fd1a0f3e47 30-Jan-2015 Elliott Hughes <enh@google.com> Remove unused CONFIG_SECONDS.

Bug: https://code.google.com/p/android/issues/detail?id=65951
Change-Id: I8ae7057c68e16618de6dd06cf052426c6cad8a3d
616344d169542aa0549ab19b0ed931e14014907f 28-Nov-2014 Lorenzo Colitti <lorenzo@google.com> Make bionic compile even if resolver debugging is enabled.

The code now compiles with all combinations of DEBUG and
DEBUG_DATA except DEBUG_DATA=1, DEBUG=0, which is unsupported.

Change-Id: I9035a65c649df73092f1fc0864ae1cdd9a14aa3b
a6a0949b1d629daaf297fe7d1f1d68f636c2bb4a 21-Jan-2015 Patrick Tjin <pattjin@google.com> Fix build error when XLOG is enabled

(cherrypick of 79a49c9857f3949fc13373eeb179f27b6ecdca81.)

Change-Id: I7bb44fd1fe3ef2ddfc115247f328eccfceeb5352
Signed-off-by: Patrick Tjin <pattjin@google.com>
79a49c9857f3949fc13373eeb179f27b6ecdca81 21-Jan-2015 Patrick Tjin <pattjin@google.com> Fix build error when XLOG is enabled

Change-Id: I7bb44fd1fe3ef2ddfc115247f328eccfceeb5352
Signed-off-by: Patrick Tjin <pattjin@google.com>
cfd8c45725d85f3e2bfccb6b14a9bff59fd5c4c7 08-Oct-2014 Dan Albert <danalbert@google.com> Replace uses of sprintf(3) with snprintf(3).

At -00, the compiler warns about sprintf(3), and it is promoted to an
error by -Werror.

Change-Id: Ibb380d27d7eb09dda8ac785be2478d656b379190
33a73bfa0712c483830e4c9abbf4d6a0551478bf 08-Sep-2014 Lorenzo Colitti <lorenzo@google.com> When comparing DNS server configs, also compare number of servers

Bug: 16070602
Change-Id: I605f1cca50b08479ebcad290b3bd179f59be8a96
bce18c91638e9f37ef2c37555cbb41a0f1f98ab0 08-Sep-2014 Lorenzo Colitti <lorenzo@google.com> When comparing DNS server configs, also compare number of servers

Bug: 16070602
Change-Id: I605f1cca50b08479ebcad290b3bd179f59be8a96
c674edbf27450bbb2396b1434421b1db5325d8f4 27-Aug-2014 Elliott Hughes <enh@google.com> libc should use O_CLOEXEC when opening files for its own use.

Change-Id: I159f1d57e0ca090d837f57854fcef5879b8b8248
1544eae56e2713a199e085438809078ebad8e7d1 06-Aug-2014 Paul Jensen <pauljensen@google.com> Revert most of "Cleanup: Delete dead code."

This reverts most of commit 2582f02a01cd56c56a4e6c9de4444a6ec937cc37.
The DNS cache flushing code needs to be called when routes change.

Change-Id: I5b04121bc428cc6a2e136b6c3269c395bfb4981f
bug:16549455
2582f02a01cd56c56a4e6c9de4444a6ec937cc37 20-Jul-2014 Sreeram Ramachandran <sreeram@google.com> Cleanup: Delete dead code.

Bug: 15413389
Change-Id: I315468832ef18ffc84174e54774ab63b86d284dc
37b1b5bbcd1cddf833c9ca18a5976efbbf88dabf 03-Jul-2014 Elliott Hughes <enh@google.com> Fix all resolv warnings and turn on -Werror.

The res_init.c changes bring us a bit closer to upstream too, though
there's still work to be done there. Some of the remaining differences
look like bugs we'd want to fix, so we should definitely try to come
back to that.

Change-Id: I50baa148e967c90d55d711e9904ad54c7d724d4d
41d9a503716ed6f3291f4cae097dca08d459429c 08-Apr-2014 Paul Jensen <pauljensen@google.com> Add support for deleting per-network DNS resolver caches.
This is required when the possible range of NetIds is large to
prevent netd consuming excessive amounts of memory.
This required replacing the per-cache locks in favor of a single
global lock to prevent accesses to deleted caches.

Change-Id: I99d058bafea5de743e56075dbed74031da4df63f
ea9bf6788144b83cc51c454b2bfe6b980d6e947c 14-Feb-2014 Szymon Jakubczak <szym@google.com> bionic: Replace iface with opaque netid in resolver.

Replace iface cache key with netid.

Replace _mark with netid.

Mark sockets used to test IPv4/IPv6 support as well as sockets
used to determine source address for rfc6724 sort.

Remove pid/uid mappings (functionality moved to system/netd).

Do not create resolv_cache when it does not exist, but rather only
when DNS configuration is supplied.

Clean up unused functions.

Change-Id: I9ccfda2902cc0943e87c9bc346ad9a2578accdab
569fb9887d00104509df79fa77d92e3cf9afe7db 04-Mar-2014 Calin Juravle <calin@google.com> Moved nameser.h and namser_compat.h to public include dir

This is part of the upstream sync (Net/Open/Free BSDs expose the
nameser.h in their public headers).

Change-Id: Ib063d4e50586748cc70201a8296cd90d2e48bbcf
bd33537fde8e1c68fcadfd6adf77b295ada9b45f 28-Feb-2014 Calin Juravle <calin@google.com> Renamed the misleading libc/netbsd directory to libc/dns.

Bug: 13219633
Change-Id: Ide43add0b90b3081cc709a22d1ff1f59d65f1104