OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/test/chromedriver/net/adb_client_socket.h" | 5 #include "chrome/test/chromedriver/net/adb_client_socket.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
11 #include "base/strings/string_number_conversions.h" | 11 #include "base/strings/string_number_conversions.h" |
12 #include "base/strings/string_split.h" | 12 #include "base/strings/string_split.h" |
13 #include "base/strings/string_util.h" | 13 #include "base/strings/string_util.h" |
14 #include "base/strings/stringprintf.h" | 14 #include "base/strings/stringprintf.h" |
15 #include "net/base/address_list.h" | 15 #include "net/base/address_list.h" |
16 #include "net/base/completion_callback.h" | 16 #include "net/base/completion_callback.h" |
17 #include "net/base/ip_address.h" | 17 #include "net/base/ip_address.h" |
18 #include "net/base/net_errors.h" | 18 #include "net/base/net_errors.h" |
| 19 #include "net/log/net_log_source.h" |
19 #include "net/socket/tcp_client_socket.h" | 20 #include "net/socket/tcp_client_socket.h" |
20 | 21 |
21 namespace { | 22 namespace { |
22 | 23 |
23 const int kBufferSize = 16 * 1024; | 24 const int kBufferSize = 16 * 1024; |
24 const char kOkayResponse[] = "OKAY"; | 25 const char kOkayResponse[] = "OKAY"; |
25 const char kHostTransportCommand[] = "host:transport:%s"; | 26 const char kHostTransportCommand[] = "host:transport:%s"; |
26 const char kLocalAbstractCommand[] = "localabstract:%s"; | 27 const char kLocalAbstractCommand[] = "localabstract:%s"; |
27 | 28 |
28 typedef base::Callback<void(int, const std::string&)> CommandCallback; | 29 typedef base::Callback<void(int, const std::string&)> CommandCallback; |
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
324 #if defined(DEBUG_DEVTOOLS) | 325 #if defined(DEBUG_DEVTOOLS) |
325 if (serial.empty()) { | 326 if (serial.empty()) { |
326 // Use plain socket for remote debugging on Desktop (debugging purposes). | 327 // Use plain socket for remote debugging on Desktop (debugging purposes). |
327 int tcp_port = 0; | 328 int tcp_port = 0; |
328 if (!base::StringToInt(socket_name, &tcp_port)) | 329 if (!base::StringToInt(socket_name, &tcp_port)) |
329 tcp_port = 9222; | 330 tcp_port = 9222; |
330 | 331 |
331 net::AddressList address_list = net::AddressList::CreateFromIPAddress( | 332 net::AddressList address_list = net::AddressList::CreateFromIPAddress( |
332 net::IPAddress::IPv4Localhost(), tcp_port); | 333 net::IPAddress::IPv4Localhost(), tcp_port); |
333 net::TCPClientSocket* socket = new net::TCPClientSocket( | 334 net::TCPClientSocket* socket = new net::TCPClientSocket( |
334 address_list, NULL, net::NetLog::Source()); | 335 address_list, NULL, net::NetLogSource()); |
335 socket->Connect(base::Bind(&UseTransportQueryForDesktop, callback, socket)); | 336 socket->Connect(base::Bind(&UseTransportQueryForDesktop, callback, socket)); |
336 return; | 337 return; |
337 } | 338 } |
338 #endif // defined(DEBUG_DEVTOOLS) | 339 #endif // defined(DEBUG_DEVTOOLS) |
339 new AdbTransportSocket(port, serial, socket_name, callback); | 340 new AdbTransportSocket(port, serial, socket_name, callback); |
340 } | 341 } |
341 | 342 |
342 // static | 343 // static |
343 void AdbClientSocket::HttpQuery(int port, | 344 void AdbClientSocket::HttpQuery(int port, |
344 const std::string& serial, | 345 const std::string& serial, |
(...skipping 24 matching lines...) Expand all Loading... |
369 // only return IPv6 address while current adb (1.0.36) will always listen | 370 // only return IPv6 address while current adb (1.0.36) will always listen |
370 // on IPv4. So just try IPv4 first, then fall back to IPv6. | 371 // on IPv4. So just try IPv4 first, then fall back to IPv6. |
371 net::IPAddressList list = {net::IPAddress::IPv4Localhost(), | 372 net::IPAddressList list = {net::IPAddress::IPv4Localhost(), |
372 net::IPAddress::IPv6Localhost()}; | 373 net::IPAddress::IPv6Localhost()}; |
373 net::AddressList ip_list = net::AddressList::CreateFromIPAddressList( | 374 net::AddressList ip_list = net::AddressList::CreateFromIPAddressList( |
374 list, "localhost"); | 375 list, "localhost"); |
375 net::AddressList address_list = net::AddressList::CopyWithPort( | 376 net::AddressList address_list = net::AddressList::CopyWithPort( |
376 ip_list, port_); | 377 ip_list, port_); |
377 | 378 |
378 socket_.reset(new net::TCPClientSocket(address_list, NULL, NULL, | 379 socket_.reset(new net::TCPClientSocket(address_list, NULL, NULL, |
379 net::NetLog::Source())); | 380 net::NetLogSource())); |
380 int result = socket_->Connect(callback); | 381 int result = socket_->Connect(callback); |
381 if (result != net::ERR_IO_PENDING) | 382 if (result != net::ERR_IO_PENDING) |
382 callback.Run(result); | 383 callback.Run(result); |
383 } | 384 } |
384 | 385 |
385 void AdbClientSocket::SendCommand(const std::string& command, | 386 void AdbClientSocket::SendCommand(const std::string& command, |
386 bool is_void, | 387 bool is_void, |
387 bool has_length, | 388 bool has_length, |
388 const CommandCallback& callback) { | 389 const CommandCallback& callback) { |
389 scoped_refptr<net::StringIOBuffer> request_buffer = | 390 scoped_refptr<net::StringIOBuffer> request_buffer = |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
534 base::Unretained(this), | 535 base::Unretained(this), |
535 callback, | 536 callback, |
536 new_response, | 537 new_response, |
537 response_buffer, | 538 response_buffer, |
538 bytes_left)); | 539 bytes_left)); |
539 if (result > 0) | 540 if (result > 0) |
540 OnResponseData(callback, new_response, response_buffer, bytes_left, result); | 541 OnResponseData(callback, new_response, response_buffer, bytes_left, result); |
541 else if (result != net::ERR_IO_PENDING) | 542 else if (result != net::ERR_IO_PENDING) |
542 callback.Run(net::OK, new_response); | 543 callback.Run(net::OK, new_response); |
543 } | 544 } |
OLD | NEW |