| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "content/browser/renderer_host/p2p/socket_dispatcher_host.h" | 5 #include "content/browser/renderer_host/p2p/socket_dispatcher_host.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/stl_util.h" | 8 #include "base/stl_util.h" |
| 9 #include "content/browser/renderer_host/p2p/socket_host.h" | 9 #include "content/browser/renderer_host/p2p/socket_host.h" |
| 10 #include "content/browser/resource_context.h" | 10 #include "content/browser/resource_context.h" |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 done_callback_.Run(net::IPAddressNumber()); | 41 done_callback_.Run(net::IPAddressNumber()); |
| 42 return; | 42 return; |
| 43 } | 43 } |
| 44 | 44 |
| 45 // Add period at the end to make sure that we only resolve | 45 // Add period at the end to make sure that we only resolve |
| 46 // fully-qualified names. | 46 // fully-qualified names. |
| 47 if (host_name_.at(host_name_.size() - 1) != '.') | 47 if (host_name_.at(host_name_.size() - 1) != '.') |
| 48 host_name_ = host_name_ + '.'; | 48 host_name_ = host_name_ + '.'; |
| 49 | 49 |
| 50 net::HostResolver::RequestInfo info(net::HostPortPair(host_name_, 0)); | 50 net::HostResolver::RequestInfo info(net::HostPortPair(host_name_, 0)); |
| 51 resolver_.Resolve(info, &addresses_, &completion_callback_, | 51 int result = resolver_.Resolve(info, &addresses_, &completion_callback_, |
| 52 net::BoundNetLog()); | 52 net::BoundNetLog()); |
| 53 if (result != net::ERR_IO_PENDING) |
| 54 OnDone(result); |
| 53 } | 55 } |
| 54 | 56 |
| 55 int32 routing_id() { return routing_id_; } | 57 int32 routing_id() { return routing_id_; } |
| 56 int32 request_id() { return request_id_; } | 58 int32 request_id() { return request_id_; } |
| 57 | 59 |
| 58 private: | 60 private: |
| 59 void OnDone(int result) { | 61 void OnDone(int result) { |
| 60 if (result != net::OK) { | 62 if (result != net::OK) { |
| 61 LOG(ERROR) << "Failed to resolve address for " << host_name_ | 63 LOG(ERROR) << "Failed to resolve address for " << host_name_ |
| 62 << ", errorcode: " << result; | 64 << ", errorcode: " << result; |
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 192 it != notifications_routing_ids_.end(); ++it) { | 194 it != notifications_routing_ids_.end(); ++it) { |
| 193 Send(new P2PMsg_NetworkListChanged(*it, list)); | 195 Send(new P2PMsg_NetworkListChanged(*it, list)); |
| 194 } | 196 } |
| 195 } | 197 } |
| 196 | 198 |
| 197 void P2PSocketDispatcherHost::OnGetHostAddress(const IPC::Message& msg, | 199 void P2PSocketDispatcherHost::OnGetHostAddress(const IPC::Message& msg, |
| 198 const std::string& host_name, | 200 const std::string& host_name, |
| 199 int32 request_id) { | 201 int32 request_id) { |
| 200 DnsRequest* request = new DnsRequest( | 202 DnsRequest* request = new DnsRequest( |
| 201 msg.routing_id(), request_id, resource_context_->host_resolver()); | 203 msg.routing_id(), request_id, resource_context_->host_resolver()); |
| 204 dns_requests_.insert(request); |
| 202 request->Resolve(host_name, base::Bind( | 205 request->Resolve(host_name, base::Bind( |
| 203 &P2PSocketDispatcherHost::OnAddressResolved, | 206 &P2PSocketDispatcherHost::OnAddressResolved, |
| 204 base::Unretained(this), request)); | 207 base::Unretained(this), request)); |
| 205 dns_requests_.insert(request); | |
| 206 } | 208 } |
| 207 | 209 |
| 208 void P2PSocketDispatcherHost::OnAddressResolved( | 210 void P2PSocketDispatcherHost::OnAddressResolved( |
| 209 DnsRequest* request, | 211 DnsRequest* request, |
| 210 const net::IPAddressNumber& result) { | 212 const net::IPAddressNumber& result) { |
| 211 Send(new P2PMsg_GetHostAddressResult( | 213 Send(new P2PMsg_GetHostAddressResult( |
| 212 request->routing_id(), request->request_id(), result)); | 214 request->routing_id(), request->request_id(), result)); |
| 213 | 215 |
| 214 dns_requests_.erase(request); | 216 dns_requests_.erase(request); |
| 215 delete request; | 217 delete request; |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 272 int socket_id) { | 274 int socket_id) { |
| 273 SocketsMap::iterator it = sockets_.find( | 275 SocketsMap::iterator it = sockets_.find( |
| 274 ExtendedSocketId(msg.routing_id(), socket_id)); | 276 ExtendedSocketId(msg.routing_id(), socket_id)); |
| 275 if (it != sockets_.end()) { | 277 if (it != sockets_.end()) { |
| 276 delete it->second; | 278 delete it->second; |
| 277 sockets_.erase(it); | 279 sockets_.erase(it); |
| 278 } else { | 280 } else { |
| 279 LOG(ERROR) << "Received P2PHostMsg_DestroySocket for invalid socket_id."; | 281 LOG(ERROR) << "Received P2PHostMsg_DestroySocket for invalid socket_id."; |
| 280 } | 282 } |
| 281 } | 283 } |
| OLD | NEW |