Currently the adb server can only bind on 127.0.0.1 or * if -a is provided. This diff adds the ability for adb to bind on ::1 as well for use cases where you might want to force adb to be IPv6 only. To bind the adb server on ::1 ``` $ ./adb -L tcp:[::1]:1234 server $ lsof -nPi :1234 COMMAND ... NODE NAME adb ... TCP [::1]:1234 (LISTEN) ``` The original behaviour is also retained, so this would only affect users explicitly specifying ::1 in the socket spec ``` $ export ANDROID_ADB_SERVER_PORT=1234 $ ./adb server $ lsof -nPi :1234 COMMAND ... NODE NAME adb ... TCP 127.0.0.1:1234 (LISTEN) ``` Note: I've only implemented this behaviour for posix base systems, due to my limited understanding of networking on windows. If needed I can do some research to implement it there as well, but there is currently no IPv6 support at all on the windows side. Test: New unit test and the commands in the summary Change-Id: I23e4531e8dfda4de9348124ad7491d728aecdbf7
22 lines
810 B
C++
22 lines
810 B
C++
#pragma once
|
|
|
|
/*
|
|
* Copyright (C) 2017 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.
|
|
*/
|
|
|
|
#include <string>
|
|
|
|
int network_loopback_client(int port, int type, std::string* error);
|
|
int network_loopback_server(int port, int type, std::string* error, bool prefer_ipv4);
|