Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5bd827c0 authored by Luke Huang's avatar Luke Huang
Browse files

Use IDnsResolver instead of INetd for all resolver related commands

1. Make DnsProxyListener get DNS64 prefix internally in libnetd_resolv
2. resolver_test uses IDnsResolver instead of INetd for resolver cmds

Bug: 126141549
Test: built, flashed, booted
       system/netd/tests/runtests.sh pass

Change-Id: Ic904a3efd42ac4011ddd94ff4344449c9e647ceb
parent 7b26b201
Loading
Loading
Loading
Loading
+1 −10
Original line number Diff line number Diff line
@@ -476,17 +476,8 @@ bool synthesizeNat64PrefixWithARecord(const netdutils::IPPrefix& prefix, addrinf
    return true;
}

// TODO: Make it call internal resolver to getPrefix64
// after resolver related commands migration done
bool getDns64Prefix(unsigned netId, netdutils::IPPrefix* prefix) {
    in6_addr v6addr{};
    uint8_t prefixLen = 0;
    if (!gResNetdCallbacks.get_dns64_prefix(netId, &v6addr, &prefixLen)) {
        return false;
    }
    const netdutils::IPAddress ipv6(v6addr);
    *prefix = netdutils::IPPrefix(ipv6, static_cast<int>(prefixLen));
    return true;
    return !gDnsResolv->resolverCtrl.getPrefix64(netId, prefix);
}

}  // namespace
+7 −0
Original line number Diff line number Diff line
@@ -242,5 +242,12 @@ static std::vector<uint8_t> parseBase64(const std::string& input) {
    return ::ndk::ScopedAStatus(AStatus_newOk());
}

::ndk::ScopedAStatus DnsResolverService::clearResolverConfiguration(int netId) {
    ENFORCE_NETWORK_STACK_PERMISSIONS();

    gDnsResolv->resolverCtrl.clearDnsServers(netId);
    return ::ndk::ScopedAStatus(AStatus_newOk());
}

}  // namespace net
}  // namespace android
+1 −0
Original line number Diff line number Diff line
@@ -50,6 +50,7 @@ class DnsResolverService : public aidl::android::net::BnDnsResolver {
            std::vector<std::string>* domains, std::vector<int32_t>* params,
            std::vector<int32_t>* stats,
            std::vector<int32_t>* wait_for_pending_req_timeout_count) override;
    ::ndk::ScopedAStatus clearResolverConfiguration(int32_t netId) override;

    // DNS64-related commands
    ::ndk::ScopedAStatus startPrefix64Discovery(int32_t netId) override;
+1 −2
Original line number Diff line number Diff line
@@ -181,11 +181,10 @@ ResolverController::ResolverController()
              std::bind(sendNat64PrefixEvent, _1)) {}

int ResolverController::clearDnsServers(unsigned netId) {
    // It will create the cache if it doesn't exist.
    resolv_set_nameservers_for_net(netId, nullptr, 0, "", nullptr);
    if (DBG) {
        ALOGD("clearDnsServers netId = %u\n", netId);
    }
    resolv_delete_cache_for_net(netId);
    mDns64Configuration.stopPrefixDiscovery(netId);
    resolv_delete_private_dns_for_net(netId);
    return 0;
+0 −1
Original line number Diff line number Diff line
@@ -37,7 +37,6 @@ class ResolverController {
    ResolverController();
    ~ResolverController() = default;

    // TODO: Check if we really need it.
    int clearDnsServers(unsigned netid);

    int getPrefix64(unsigned netId, netdutils::IPPrefix* prefix);
Loading