1 /*
2  * Copyright (C) 2019 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 #pragma once
18 
19 #include <optional>
20 #include <string>
21 
22 #include "adb.h"
23 
24 #if ADB_HOST
25 
26 void adb_wifi_init(void);
27 void adb_wifi_pair_device(const std::string& host, const std::string& password,
28                           std::string& response);
29 bool adb_wifi_is_known_host(const std::string& host);
30 
31 std::string mdns_check();
32 std::string mdns_list_discovered_services();
33 
34 struct MdnsInfo {
35     std::string service_name;
36     std::string service_type;
37     std::string addr;
38     uint16_t port = 0;
39 
MdnsInfoMdnsInfo40     MdnsInfo(std::string_view name, std::string_view type, std::string_view addr, uint16_t port)
41         : service_name(name), service_type(type), addr(addr), port(port) {}
42 };
43 
44 std::optional<MdnsInfo> mdns_get_connect_service_info(std::string_view name);
45 std::optional<MdnsInfo> mdns_get_pairing_service_info(std::string_view name);
46 
47 #else  // !ADB_HOST
48 
49 struct AdbdAuthContext;
50 
51 void adbd_wifi_init(AdbdAuthContext* ctx);
52 void adbd_wifi_secure_connect(atransport* t);
53 
54 #endif
55