From 5d5e89261bb49a5c882891a53fe4b735ef452e94 Mon Sep 17 00:00:00 2001
|
From: Khem Raj <raj.khem@gmail.com>
|
Date: Wed, 13 Feb 2019 09:51:14 -0800
|
Subject: [PATCH] provide res_ninit and nclose APIs on non-glibc linux
|
platforms
|
|
These APIs are not implemented on musl
|
|
Upstream-Status: Pending
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
--- a/net/dns/dns_config_service_linux.cc
|
+++ b/net/dns/dns_config_service_linux.cc
|
@@ -414,12 +414,6 @@ class DnsConfigServiceLinux::ConfigReade
|
base::ScopedBlockingCall scoped_blocking_call(
|
FROM_HERE, base::BlockingType::MAY_BLOCK);
|
|
- std::unique_ptr<struct __res_state> res = resolv_reader_->GetResState();
|
- if (res) {
|
- dns_config_ = ConvertResStateToDnsConfig(*res.get());
|
- resolv_reader_->CloseResState(res.get());
|
- }
|
-
|
UMA_HISTOGRAM_BOOLEAN("Net.DNS.DnsConfig.Resolv.Read",
|
dns_config_.has_value());
|
if (!dns_config_.has_value())
|
--- a/net/dns/dns_reloader.cc
|
+++ b/net/dns/dns_reloader.cc
|
@@ -4,9 +4,8 @@
|
|
#include "net/dns/dns_reloader.h"
|
|
-#if defined(OS_POSIX) && !defined(OS_APPLE) && !defined(OS_OPENBSD) && \
|
- !defined(OS_ANDROID) && !defined(OS_FUCHSIA)
|
-
|
+#if defined(__GLIBC__)
|
+
|
#include <resolv.h>
|
|
#include "base/lazy_instance.h"
|
--- a/net/dns/host_resolver_manager.cc
|
+++ b/net/dns/host_resolver_manager.cc
|
@@ -2902,8 +2902,7 @@ HostResolverManager::HostResolverManager
|
NetworkChangeNotifier::AddConnectionTypeObserver(this);
|
if (system_dns_config_notifier_)
|
system_dns_config_notifier_->AddObserver(this);
|
-#if defined(OS_POSIX) && !defined(OS_APPLE) && !defined(OS_OPENBSD) && \
|
- !defined(OS_ANDROID)
|
+#if defined(__GLIBC__)
|
EnsureDnsReloaderInit();
|
#endif
|
|
--- a/net/dns/host_resolver_proc.cc
|
+++ b/net/dns/host_resolver_proc.cc
|
@@ -176,8 +176,7 @@ int SystemHostResolverCall(const std::st
|
base::ScopedBlockingCall scoped_blocking_call(FROM_HERE,
|
base::BlockingType::WILL_BLOCK);
|
|
-#if defined(OS_POSIX) && !defined(OS_APPLE) && !defined(OS_OPENBSD) && \
|
- !defined(OS_ANDROID) && !defined(OS_FUCHSIA)
|
+#if defined(__GLIBC__)
|
DnsReloaderMaybeReload();
|
#endif
|
absl::optional<AddressInfo> ai;
|
--- a/net/dns/public/resolv_reader.cc
|
+++ b/net/dns/public/resolv_reader.cc
|
@@ -20,19 +20,10 @@
|
namespace net {
|
|
std::unique_ptr<struct __res_state> ResolvReader::GetResState() {
|
- auto res = std::make_unique<struct __res_state>();
|
- memset(res.get(), 0, sizeof(struct __res_state));
|
-
|
- if (res_ninit(res.get()) != 0) {
|
- CloseResState(res.get());
|
- return nullptr;
|
- }
|
-
|
- return res;
|
+ return nullptr;
|
}
|
|
void ResolvReader::CloseResState(struct __res_state* res) {
|
- res_nclose(res);
|
}
|
|
absl::optional<std::vector<IPEndPoint>> GetNameservers(
|