1 /*
2  * Copyright (C) 2021 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package libcore.net.http;
18 
19 import static android.annotation.SystemApi.Client.MODULE_LIBRARIES;
20 
21 import android.annotation.SystemApi;
22 
23 import libcore.api.CorePlatformApi;
24 
25 import java.net.InetAddress;
26 import java.net.UnknownHostException;
27 import java.util.List;
28 import libcore.util.NonNull;
29 import libcore.util.Nullable;
30 
31 /**
32  * A domain name service that resolves IP addresses for host names.
33  * @hide
34  */
35 @SystemApi(client = MODULE_LIBRARIES)
36 @CorePlatformApi(status = CorePlatformApi.Status.STABLE)
37 public interface Dns extends com.android.okhttp.internalandroidapi.Dns {
38     /**
39      * Returns the IP addresses of {@code hostname}, in the order they should
40      * be attempted. Returns loopback addresses for {@code null} host.
41      *
42      * @param hostname The host name will be looked up.
43      *
44      * @hide
45      */
46     @SystemApi(client = MODULE_LIBRARIES)
47     @CorePlatformApi(status = CorePlatformApi.Status.STABLE)
lookup(@ullable String hostname)48     @NonNull List<@NonNull InetAddress> lookup(@Nullable String hostname) throws UnknownHostException;
49 }