77 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
	
| /*
 | |
|  * 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
 |