Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(100)

Unified Diff: net/udp/udp_socket_libevent.cc

Issue 10309002: Reimplements net::AddressList without struct addrinfo. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: get_canonical_name -> canonical_name. iterator to indexing Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/spdy/spdy_test_util_spdy3.h ('k') | net/udp/udp_socket_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/udp/udp_socket_libevent.cc
diff --git a/net/udp/udp_socket_libevent.cc b/net/udp/udp_socket_libevent.cc
index f8ef7e3c69309e8242d8b0e6f0f57bdd70aafb72..13196d2b59e04bd2f54d1749cfdb444b582d58b0 100644
--- a/net/udp/udp_socket_libevent.cc
+++ b/net/udp/udp_socket_libevent.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -95,13 +95,11 @@ int UDPSocketLibevent::GetPeerAddress(IPEndPoint* address) const {
return ERR_SOCKET_NOT_CONNECTED;
if (!remote_address_.get()) {
- struct sockaddr_storage addr_storage;
- socklen_t addr_len = sizeof(addr_storage);
- struct sockaddr* addr = reinterpret_cast<struct sockaddr*>(&addr_storage);
- if (getpeername(socket_, addr, &addr_len))
+ SockaddrStorage storage;
+ if (getpeername(socket_, storage.addr, &storage.addr_len))
return MapSystemError(errno);
scoped_ptr<IPEndPoint> address(new IPEndPoint());
- if (!address->FromSockAddr(addr, addr_len))
+ if (!address->FromSockAddr(storage.addr, storage.addr_len))
return ERR_FAILED;
remote_address_.reset(address.release());
}
@@ -117,13 +115,11 @@ int UDPSocketLibevent::GetLocalAddress(IPEndPoint* address) const {
return ERR_SOCKET_NOT_CONNECTED;
if (!local_address_.get()) {
- struct sockaddr_storage addr_storage;
- socklen_t addr_len = sizeof(addr_storage);
- struct sockaddr* addr = reinterpret_cast<struct sockaddr*>(&addr_storage);
- if (getsockname(socket_, addr, &addr_len))
+ SockaddrStorage storage;
+ if (getsockname(socket_, storage.addr, &storage.addr_len))
return MapSystemError(errno);
scoped_ptr<IPEndPoint> address(new IPEndPoint());
- if (!address->FromSockAddr(addr, addr_len))
+ if (!address->FromSockAddr(storage.addr, storage.addr_len))
return ERR_FAILED;
local_address_.reset(address.release());
}
@@ -240,13 +236,11 @@ int UDPSocketLibevent::InternalConnect(const IPEndPoint& address) {
if (rv < 0)
return rv;
- struct sockaddr_storage addr_storage;
- size_t addr_len = sizeof(addr_storage);
- struct sockaddr* addr = reinterpret_cast<struct sockaddr*>(&addr_storage);
- if (!address.ToSockAddr(addr, &addr_len))
+ SockaddrStorage storage;
+ if (!address.ToSockAddr(storage.addr, &storage.addr_len))
return ERR_FAILED;
- rv = HANDLE_EINTR(connect(socket_, addr, addr_len));
+ rv = HANDLE_EINTR(connect(socket_, storage.addr, storage.addr_len));
if (rv < 0)
return MapSystemError(errno);
@@ -393,41 +387,37 @@ int UDPSocketLibevent::InternalRecvFrom(IOBuffer* buf, int buf_len,
int bytes_transferred;
int flags = 0;
- struct sockaddr_storage addr_storage;
- socklen_t addr_len = sizeof(addr_storage);
- struct sockaddr* addr = reinterpret_cast<struct sockaddr*>(&addr_storage);
+ SockaddrStorage storage;
bytes_transferred =
HANDLE_EINTR(recvfrom(socket_,
buf->data(),
buf_len,
flags,
- addr,
- &addr_len));
+ storage.addr,
+ &storage.addr_len));
int result;
if (bytes_transferred >= 0) {
result = bytes_transferred;
- if (address && !address->FromSockAddr(addr, addr_len))
+ if (address && !address->FromSockAddr(storage.addr, storage.addr_len))
result = ERR_FAILED;
} else {
result = MapSystemError(errno);
}
if (result != ERR_IO_PENDING)
- LogRead(result, buf->data(), addr_len, addr);
+ LogRead(result, buf->data(), storage.addr_len, storage.addr);
return result;
}
int UDPSocketLibevent::InternalSendTo(IOBuffer* buf, int buf_len,
const IPEndPoint* address) {
- struct sockaddr_storage addr_storage;
- size_t addr_len = sizeof(addr_storage);
- struct sockaddr* addr = reinterpret_cast<struct sockaddr*>(&addr_storage);
-
+ SockaddrStorage storage;
+ struct sockaddr* addr = storage.addr;
if (!address) {
addr = NULL;
- addr_len = 0;
+ storage.addr_len = 0;
} else {
- if (!address->ToSockAddr(addr, &addr_len)) {
+ if (!address->ToSockAddr(storage.addr, &storage.addr_len)) {
int result = ERR_FAILED;
LogWrite(result, NULL, NULL);
return result;
@@ -439,7 +429,7 @@ int UDPSocketLibevent::InternalSendTo(IOBuffer* buf, int buf_len,
buf_len,
0,
addr,
- addr_len));
+ storage.addr_len));
if (result < 0)
result = MapSystemError(errno);
if (result != ERR_IO_PENDING)
@@ -448,12 +438,10 @@ int UDPSocketLibevent::InternalSendTo(IOBuffer* buf, int buf_len,
}
int UDPSocketLibevent::DoBind(const IPEndPoint& address) {
- struct sockaddr_storage addr_storage;
- size_t addr_len = sizeof(addr_storage);
- struct sockaddr* addr = reinterpret_cast<struct sockaddr*>(&addr_storage);
- if (!address.ToSockAddr(addr, &addr_len))
+ SockaddrStorage storage;
+ if (!address.ToSockAddr(storage.addr, &storage.addr_len))
return ERR_UNEXPECTED;
- int rv = bind(socket_, addr, addr_len);
+ int rv = bind(socket_, storage.addr, storage.addr_len);
return rv < 0 ? MapSystemError(errno) : rv;
}
« no previous file with comments | « net/spdy/spdy_test_util_spdy3.h ('k') | net/udp/udp_socket_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698