| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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/sync/notifier/communicator/ssl_socket_adapter.h" | 5 #include "chrome/browser/sync/notifier/communicator/ssl_socket_adapter.h" |
| 6 | 6 |
| 7 #include "base/compiler_specific.h" | 7 #include "base/compiler_specific.h" |
| 8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
| 9 #include "chrome/browser/net/url_request_context_getter.h" | 9 #include "chrome/browser/net/url_request_context_getter.h" |
| 10 #include "chrome/browser/profile.h" | 10 #include "chrome/browser/profile.h" |
| 11 #include "net/base/address_list.h" |
| 11 #include "net/base/net_errors.h" | 12 #include "net/base/net_errors.h" |
| 12 #include "net/base/ssl_config_service.h" | 13 #include "net/base/ssl_config_service.h" |
| 14 #include "net/base/sys_addrinfo.h" |
| 13 #include "net/socket/client_socket_factory.h" | 15 #include "net/socket/client_socket_factory.h" |
| 14 #include "net/url_request/url_request_context.h" | 16 #include "net/url_request/url_request_context.h" |
| 15 | 17 |
| 16 namespace notifier { | 18 namespace notifier { |
| 17 | 19 |
| 18 namespace { | 20 namespace { |
| 19 | 21 |
| 20 // Convert values from <errno.h> to values from "net/base/net_errors.h" | 22 // Convert values from <errno.h> to values from "net/base/net_errors.h" |
| 21 int MapPosixError(int err) { | 23 int MapPosixError(int err) { |
| 22 // There are numerous posix error codes, but these are the ones we thus far | 24 // There are numerous posix error codes, but these are the ones we thus far |
| (...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 247 bool TransportSocket::IsConnected() const { | 249 bool TransportSocket::IsConnected() const { |
| 248 return (socket_->GetState() == talk_base::Socket::CS_CONNECTED); | 250 return (socket_->GetState() == talk_base::Socket::CS_CONNECTED); |
| 249 } | 251 } |
| 250 | 252 |
| 251 bool TransportSocket::IsConnectedAndIdle() const { | 253 bool TransportSocket::IsConnectedAndIdle() const { |
| 252 // Not implemented. | 254 // Not implemented. |
| 253 NOTREACHED(); | 255 NOTREACHED(); |
| 254 return false; | 256 return false; |
| 255 } | 257 } |
| 256 | 258 |
| 257 int TransportSocket::GetPeerName(struct sockaddr* name, socklen_t* namelen) { | 259 int TransportSocket::GetPeerAddress(net::AddressList* address) const { |
| 258 talk_base::SocketAddress address = socket_->GetRemoteAddress(); | 260 talk_base::SocketAddress socket_address = socket_->GetRemoteAddress(); |
| 259 address.ToSockAddr(reinterpret_cast<sockaddr_in *>(name)); | 261 |
| 260 return 0; | 262 // libjingle supports only IPv4 addresses. |
| 263 sockaddr_in ipv4addr; |
| 264 socket_address.ToSockAddr(&ipv4addr); |
| 265 |
| 266 struct addrinfo ai; |
| 267 memset(&ai, sizeof(ai), 0); |
| 268 ai.ai_family = ipv4addr.sin_family; |
| 269 ai.ai_socktype = SOCK_STREAM; |
| 270 ai.ai_protocol = IPPROTO_TCP; |
| 271 ai.ai_addr = reinterpret_cast<struct sockaddr*>(&ipv4addr); |
| 272 ai.ai_addrlen = sizeof(ipv4addr); |
| 273 |
| 274 address->Copy(&ai, false); |
| 275 return net::OK; |
| 261 } | 276 } |
| 262 | 277 |
| 263 int TransportSocket::Read(net::IOBuffer* buf, int buf_len, | 278 int TransportSocket::Read(net::IOBuffer* buf, int buf_len, |
| 264 net::CompletionCallback* callback) { | 279 net::CompletionCallback* callback) { |
| 265 DCHECK(buf); | 280 DCHECK(buf); |
| 266 DCHECK(!read_callback_); | 281 DCHECK(!read_callback_); |
| 267 DCHECK(!read_buffer_.get()); | 282 DCHECK(!read_buffer_.get()); |
| 268 int result = socket_->Recv(buf->data(), buf_len); | 283 int result = socket_->Recv(buf->data(), buf_len); |
| 269 if (result < 0) { | 284 if (result < 0) { |
| 270 result = MapPosixError(socket_->GetError()); | 285 result = MapPosixError(socket_->GetError()); |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 362 } | 377 } |
| 363 } | 378 } |
| 364 callback->RunWithParams(Tuple1<int>(result)); | 379 callback->RunWithParams(Tuple1<int>(result)); |
| 365 return true; | 380 return true; |
| 366 } else { | 381 } else { |
| 367 return false; | 382 return false; |
| 368 } | 383 } |
| 369 } | 384 } |
| 370 | 385 |
| 371 } // namespace notifier | 386 } // namespace notifier |
| OLD | NEW |