/* * Copyright (C) 2020 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #pragma once namespace android::net { static constexpr int kDohPort = 443; static constexpr int kDotPort = 853; enum class PrivateDnsTransport : uint8_t { kDot, // DNS over TLS. kDoh, // DNS over HTTPS. }; // Validation status of a private DNS server on a specific netId. enum class Validation : uint8_t { in_process, success, success_but_expired, fail, unknown_server, unknown_netid, }; // The private DNS mode on a specific netId. enum class PrivateDnsMode : uint8_t { OFF, OPPORTUNISTIC, STRICT, }; constexpr const char* validationStatusToString(Validation value) { switch (value) { case Validation::in_process: return "in_process"; case Validation::success: return "success"; case Validation::success_but_expired: return "success_but_expired"; case Validation::fail: return "fail"; case Validation::unknown_server: return "unknown_server"; case Validation::unknown_netid: return "unknown_netid"; default: return "unknown_status"; } } constexpr const char* getPrivateDnsModeString(PrivateDnsMode mode) { switch (mode) { case PrivateDnsMode::OFF: return "OFF"; case PrivateDnsMode::OPPORTUNISTIC: return "OPPORTUNISTIC"; case PrivateDnsMode::STRICT: return "STRICT"; } } } // namespace android::net