diff options
author | Steven Laver <lavers@google.com> | 2019-12-12 15:29:36 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2019-12-12 15:29:36 +0000 |
commit | a239544c7b06814b70fd970de7eaac234682fa52 (patch) | |
tree | a4298d61f9b73642f350799b1157e49b65f4e1e8 /adb/sysdeps/posix/network.cpp | |
parent | 63de1e1c8d7824c241f22de67edf54f4f1eaeea5 (diff) | |
parent | 5319412e5305a3b4bcecf251a2955c09a6e9837e (diff) |
Merge "Merge RP1A.191203.001" into r-keystone-qcom-dev
Diffstat (limited to 'adb/sysdeps/posix/network.cpp')
-rw-r--r-- | adb/sysdeps/posix/network.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/adb/sysdeps/posix/network.cpp b/adb/sysdeps/posix/network.cpp index c5c227568..a4d9013d3 100644 --- a/adb/sysdeps/posix/network.cpp +++ b/adb/sysdeps/posix/network.cpp @@ -119,12 +119,15 @@ static int _network_loopback_server(bool ipv6, int port, int type, std::string* return s.release(); } -int network_loopback_server(int port, int type, std::string* error) { - int rc = _network_loopback_server(false, port, type, error); +int network_loopback_server(int port, int type, std::string* error, bool prefer_ipv4) { + int rc = -1; + if (prefer_ipv4) { + rc = _network_loopback_server(false, port, type, error); + } - // Only attempt to listen on IPv6 if IPv4 is unavailable. + // Only attempt to listen on IPv6 if IPv4 is unavailable or prefer_ipv4 is false // We don't want to start an IPv6 server if there's already an IPv4 one running. - if (rc == -1 && (errno == EADDRNOTAVAIL || errno == EAFNOSUPPORT)) { + if (rc == -1 && (errno == EADDRNOTAVAIL || errno == EAFNOSUPPORT || !prefer_ipv4)) { return _network_loopback_server(true, port, type, error); } return rc; |