| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/browser/extensions/api/dial/dial_service.h" | 5 #include "chrome/browser/extensions/api/dial/dial_service.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <set> | 8 #include <set> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| 11 #include "base/basictypes.h" | 11 #include "base/basictypes.h" |
| 12 #include "base/callback.h" | 12 #include "base/callback.h" |
| 13 #include "base/location.h" | 13 #include "base/location.h" |
| 14 #include "base/logging.h" | 14 #include "base/logging.h" |
| 15 #include "base/rand_util.h" | 15 #include "base/rand_util.h" |
| 16 #include "base/single_thread_task_runner.h" | 16 #include "base/single_thread_task_runner.h" |
| 17 #include "base/strings/string_number_conversions.h" | 17 #include "base/strings/string_number_conversions.h" |
| 18 #include "base/strings/stringprintf.h" | 18 #include "base/strings/stringprintf.h" |
| 19 #include "base/thread_task_runner_handle.h" | 19 #include "base/thread_task_runner_handle.h" |
| 20 #include "base/time/time.h" | 20 #include "base/time/time.h" |
| 21 #include "chrome/browser/extensions/api/dial/dial_device_data.h" | 21 #include "chrome/browser/extensions/api/dial/dial_device_data.h" |
| 22 #include "chrome/common/chrome_version_info.h" | 22 #include "components/version_info/version_info.h" |
| 23 #include "content/public/browser/browser_thread.h" | 23 #include "content/public/browser/browser_thread.h" |
| 24 #include "net/base/completion_callback.h" | 24 #include "net/base/completion_callback.h" |
| 25 #include "net/base/io_buffer.h" | 25 #include "net/base/io_buffer.h" |
| 26 #include "net/base/ip_endpoint.h" | 26 #include "net/base/ip_endpoint.h" |
| 27 #include "net/base/net_errors.h" | 27 #include "net/base/net_errors.h" |
| 28 #include "net/base/net_util.h" | 28 #include "net/base/net_util.h" |
| 29 #include "net/http/http_response_headers.h" | 29 #include "net/http/http_response_headers.h" |
| 30 #include "net/http/http_util.h" | 30 #include "net/http/http_util.h" |
| 31 #include "url/gurl.h" | 31 #include "url/gurl.h" |
| 32 #if defined(OS_CHROMEOS) | 32 #if defined(OS_CHROMEOS) |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 83 | 83 |
| 84 // Gets a specific header from |headers| and puts it in |value|. | 84 // Gets a specific header from |headers| and puts it in |value|. |
| 85 bool GetHeader(HttpResponseHeaders* headers, const char* name, | 85 bool GetHeader(HttpResponseHeaders* headers, const char* name, |
| 86 std::string* value) { | 86 std::string* value) { |
| 87 return headers->EnumerateHeader(NULL, std::string(name), value); | 87 return headers->EnumerateHeader(NULL, std::string(name), value); |
| 88 } | 88 } |
| 89 | 89 |
| 90 // Returns the request string. | 90 // Returns the request string. |
| 91 std::string BuildRequest() { | 91 std::string BuildRequest() { |
| 92 // Extra line at the end to make UPnP lib happy. | 92 // Extra line at the end to make UPnP lib happy. |
| 93 chrome::VersionInfo version; | |
| 94 std::string request(base::StringPrintf( | 93 std::string request(base::StringPrintf( |
| 95 "M-SEARCH * HTTP/1.1\r\n" | 94 "M-SEARCH * HTTP/1.1\r\n" |
| 96 "HOST: %s:%u\r\n" | 95 "HOST: %s:%u\r\n" |
| 97 "MAN: \"ssdp:discover\"\r\n" | 96 "MAN: \"ssdp:discover\"\r\n" |
| 98 "MX: %d\r\n" | 97 "MX: %d\r\n" |
| 99 "ST: %s\r\n" | 98 "ST: %s\r\n" |
| 100 "USER-AGENT: %s/%s %s\r\n" | 99 "USER-AGENT: %s/%s %s\r\n" |
| 101 "\r\n", | 100 "\r\n", |
| 102 kDialRequestAddress, | 101 kDialRequestAddress, |
| 103 kDialRequestPort, | 102 kDialRequestPort, |
| 104 kDialMaxResponseDelaySecs, | 103 kDialMaxResponseDelaySecs, |
| 105 kDialSearchType, | 104 kDialSearchType, |
| 106 version.Name().c_str(), | 105 version_info::GetProductName().c_str(), |
| 107 version.Version().c_str(), | 106 version_info::GetVersionNumber().c_str(), |
| 108 version.OSType().c_str())); | 107 version_info::GetOSType().c_str())); |
| 109 // 1500 is a good MTU value for most Ethernet LANs. | 108 // 1500 is a good MTU value for most Ethernet LANs. |
| 110 DCHECK(request.size() <= 1500); | 109 DCHECK(request.size() <= 1500); |
| 111 return request; | 110 return request; |
| 112 } | 111 } |
| 113 | 112 |
| 114 #if !defined(OS_CHROMEOS) | 113 #if !defined(OS_CHROMEOS) |
| 115 void GetNetworkListOnFileThread( | 114 void GetNetworkListOnFileThread( |
| 116 const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, | 115 const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, |
| 117 const base::Callback<void(const NetworkInterfaceList& networks)>& cb) { | 116 const base::Callback<void(const NetworkInterfaceList& networks)>& cb) { |
| 118 NetworkInterfaceList list; | 117 NetworkInterfaceList list; |
| (...skipping 502 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 621 for (ScopedVector<DialSocket>::const_iterator iter = dial_sockets_.begin(); | 620 for (ScopedVector<DialSocket>::const_iterator iter = dial_sockets_.begin(); |
| 622 iter != dial_sockets_.end(); | 621 iter != dial_sockets_.end(); |
| 623 ++iter) { | 622 ++iter) { |
| 624 if (!((*iter)->IsClosed())) | 623 if (!((*iter)->IsClosed())) |
| 625 return true; | 624 return true; |
| 626 } | 625 } |
| 627 return false; | 626 return false; |
| 628 } | 627 } |
| 629 | 628 |
| 630 } // namespace extensions | 629 } // namespace extensions |
| OLD | NEW |