aboutsummaryrefslogtreecommitdiff
path: root/binder/android/net/ResolverParamsParcel.aidl
blob: 1aee26bdde7b10747aff6d381a4591ff61d7cfb3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
/*
 * Copyright (C) 2019 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.
 */

package android.net;

import android.net.ResolverOptionsParcel;
import android.net.resolv.aidl.DohParamsParcel;

/**
 * Configuration for a resolver parameters.
 *
 * {@hide}
 */
@JavaDerive(equals=true, toString=true)
parcelable ResolverParamsParcel {
    /**
     * The network ID of the network for which information should be configured.
     */
    int netId;

    /**
     * Sample lifetime in seconds.
     */
    int sampleValiditySeconds;

    /**
     * Use to judge if the server is considered broken.
     */
    int successThreshold;

    /**
     * Min. # samples.
     */
    int minSamples;

    /**
     * Max # samples.
     */
    int maxSamples;

    /**
     * Retransmission interval in milliseconds.
     */
    int baseTimeoutMsec;

    /**
     * Number of retries.
     */
    int retryCount;

    /**
     * The DNS servers to configure for the network.
     */
    @utf8InCpp String[] servers;

    /**
     * The search domains to configure.
     */
    @utf8InCpp String[] domains;

    /**
     * The TLS subject name to require for all servers, or empty if there is none.
     */
    @utf8InCpp String   tlsName;

    /**
     * The DNS servers to configure for strict mode Private DNS.
     */
    @utf8InCpp String[] tlsServers;

    /**
     * An array containing TLS public key fingerprints (pins) of which each server must match
     * at least one, or empty if there are no pinned keys.
     */
    // DEPRECATED:Superseded by caCertificate below.
    @utf8InCpp String[] tlsFingerprints = {};

    /**
     * Certificate authority that signed the certificate; only used by DNS-over-TLS tests.
     *
     */
    @utf8InCpp String caCertificate = "";

    /**
     * The timeout for the connection attempt to a Private DNS server.
     * It's initialized to 0 to use the predefined default value.
     * Setting a non-zero value to it takes no effect anymore. The timeout is configurable only
     * by the experiement flag.
     */
    int tlsConnectTimeoutMs = 0;

    /**
     * Knobs for OEM to control alternative behavior.
     */
    @nullable
    ResolverOptionsParcel resolverOptions;

    /**
     * The transport types associated to a given network.
     * The valid value is defined in one of the IDnsResolver.TRANSPORT_* constants.
     * If there are multiple transport types but can't be identified to a
     * reasonable network type by DnsResolver, it would be considered as unknown.
     */
    int[] transportTypes = {};

    /**
     * Whether the network is metered or not.
     */
    boolean meteredNetwork = false;

    /**
     * Information about DNS-over-HTTPS servers to use
     */
    @nullable
    DohParamsParcel dohParams;
}