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

Commit 55c4a69b authored by Mike Yu's avatar Mike Yu Committed by Automerger Merge Worker
Browse files
parents 9682b938 1430105c
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -83,7 +83,7 @@ DnsResolver::DnsResolver() {
    auto& dnsTlsDispatcher = DnsTlsDispatcher::getInstance();
    auto& dnsTlsDispatcher = DnsTlsDispatcher::getInstance();
    auto& privateDnsConfiguration = PrivateDnsConfiguration::getInstance();
    auto& privateDnsConfiguration = PrivateDnsConfiguration::getInstance();
    privateDnsConfiguration.setObserver(&dnsTlsDispatcher);
    privateDnsConfiguration.setObserver(&dnsTlsDispatcher);
    if (isDoHEnabled()) privateDnsConfiguration.initDoh();
    privateDnsConfiguration.initDoh();
}
}


bool DnsResolver::start() {
bool DnsResolver::start() {
+0 −1
Original line number Original line Diff line number Diff line
@@ -47,7 +47,6 @@ class Experiments {
    mutable std::mutex mMutex;
    mutable std::mutex mMutex;
    std::map<std::string_view, int> mFlagsMapInt GUARDED_BY(mMutex);
    std::map<std::string_view, int> mFlagsMapInt GUARDED_BY(mMutex);
    static constexpr const char* const kExperimentFlagKeyList[] = {
    static constexpr const char* const kExperimentFlagKeyList[] = {
            "doh",
            "doh_early_data",
            "doh_early_data",
            "doh_idle_timeout_ms",
            "doh_idle_timeout_ms",
            "doh_probe_timeout_ms",
            "doh_probe_timeout_ms",
+3 −6
Original line number Original line Diff line number Diff line
@@ -141,11 +141,8 @@ int PrivateDnsConfiguration::set(int32_t netId, uint32_t mark,
    if (int n = setDot(netId, mark, encryptedServers, name, caCert); n != 0) {
    if (int n = setDot(netId, mark, encryptedServers, name, caCert); n != 0) {
        return n;
        return n;
    }
    }
    if (isDoHEnabled()) {
        return setDoh(netId, mark, encryptedServers, name, caCert);
    }


    return 0;
    return setDoh(netId, mark, encryptedServers, name, caCert);
}
}


int PrivateDnsConfiguration::setDot(int32_t netId, uint32_t mark,
int PrivateDnsConfiguration::setDot(int32_t netId, uint32_t mark,
@@ -696,8 +693,8 @@ void PrivateDnsConfiguration::onDohStatusUpdate(uint32_t netId, bool success, co


bool PrivateDnsConfiguration::needReportEvent(uint32_t netId, ServerIdentity identity,
bool PrivateDnsConfiguration::needReportEvent(uint32_t netId, ServerIdentity identity,
                                              bool success) const {
                                              bool success) const {
    // If the result is success or DoH is not enable, no concern to report the events.
    // If the result is success, no concern to report the events.
    if (success || !isDoHEnabled()) return true;
    if (success) return true;
    // If the result is failure, check another transport's status to determine if we should report
    // If the result is failure, check another transport's status to determine if we should report
    // the event.
    // the event.
    switch (identity.sockaddr.port()) {
    switch (identity.sockaddr.port()) {
+3 −4
Original line number Original line Diff line number Diff line
@@ -1305,7 +1305,6 @@ static int res_private_dns_send(ResState* statp, const Slice query, const Slice
    PrivateDnsStatus privateDnsStatus = privateDnsConfiguration.getStatus(netId);
    PrivateDnsStatus privateDnsStatus = privateDnsConfiguration.getStatus(netId);
    statp->event->set_private_dns_modes(convertEnumType(privateDnsStatus.mode));
    statp->event->set_private_dns_modes(convertEnumType(privateDnsStatus.mode));


    const bool enableDoH = isDoHEnabled();
    ssize_t result = -1;
    ssize_t result = -1;
    switch (privateDnsStatus.mode) {
    switch (privateDnsStatus.mode) {
        case PrivateDnsMode::OFF: {
        case PrivateDnsMode::OFF: {
@@ -1314,7 +1313,7 @@ static int res_private_dns_send(ResState* statp, const Slice query, const Slice
        }
        }
        case PrivateDnsMode::OPPORTUNISTIC: {
        case PrivateDnsMode::OPPORTUNISTIC: {
            *fallback = true;
            *fallback = true;
            if (enableDoH && privateDnsStatus.hasValidatedDohServers()) {
            if (privateDnsStatus.hasValidatedDohServers()) {
                result = res_doh_send(statp, query, answer, rcode);
                result = res_doh_send(statp, query, answer, rcode);
                if (result != DOH_RESULT_CAN_NOT_SEND) return result;
                if (result != DOH_RESULT_CAN_NOT_SEND) return result;
            }
            }
@@ -1323,7 +1322,7 @@ static int res_private_dns_send(ResState* statp, const Slice query, const Slice
        }
        }
        case PrivateDnsMode::STRICT: {
        case PrivateDnsMode::STRICT: {
            *fallback = false;
            *fallback = false;
            if (enableDoH && privateDnsStatus.hasValidatedDohServers()) {
            if (privateDnsStatus.hasValidatedDohServers()) {
                result = res_doh_send(statp, query, answer, rcode);
                result = res_doh_send(statp, query, answer, rcode);
                if (result != DOH_RESULT_CAN_NOT_SEND) return result;
                if (result != DOH_RESULT_CAN_NOT_SEND) return result;
            }
            }
@@ -1349,7 +1348,7 @@ static int res_private_dns_send(ResState* statp, const Slice query, const Slice
                    // ups.
                    // ups.
                    privateDnsStatus = privateDnsConfiguration.getStatus(netId);
                    privateDnsStatus = privateDnsConfiguration.getStatus(netId);


                    if (enableDoH && privateDnsStatus.hasValidatedDohServers()) {
                    if (privateDnsStatus.hasValidatedDohServers()) {
                        result = res_doh_send(statp, query, answer, rcode);
                        result = res_doh_send(statp, query, answer, rcode);
                        if (result != DOH_RESULT_CAN_NOT_SEND) return result;
                        if (result != DOH_RESULT_CAN_NOT_SEND) return result;
                    }
                    }
+0 −5
Original line number Original line Diff line number Diff line
@@ -39,11 +39,6 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
    dot.setDelayQueriesTimeout(1000);
    dot.setDelayQueriesTimeout(1000);
    FuzzedDataProvider fdp(data, size);
    FuzzedDataProvider fdp(data, size);


    // Chooses doh or dot.
    std::string flag = fdp.PickValueInArray({"0", "1"});
    ScopedSystemProperties sp(kDohFlag, flag);
    android::net::Experiments::getInstance()->update();

    auto parcel = DnsResponderClient::GetDefaultResolverParamsParcel();
    auto parcel = DnsResponderClient::GetDefaultResolverParamsParcel();
    // Chooses private DNS or not.
    // Chooses private DNS or not.
    if (fdp.ConsumeBool()) parcel.tlsServers = {};
    if (fdp.ConsumeBool()) parcel.tlsServers = {};
Loading