diff options
author | mark@chromium.org <mark@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-03 14:10:59 +0000 |
---|---|---|
committer | mark@chromium.org <mark@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-03 14:10:59 +0000 |
commit | d89eec809e2d25aee8d386186653699f5017b15b (patch) | |
tree | b8b0433f5766958907ea4cebb7b954e82fc1148a /net | |
parent | 34b5946e889071a9c838a4b87d32437415148fed (diff) | |
download | chromium_src-d89eec809e2d25aee8d386186653699f5017b15b.zip chromium_src-d89eec809e2d25aee8d386186653699f5017b15b.tar.gz chromium_src-d89eec809e2d25aee8d386186653699f5017b15b.tar.bz2 |
Don't HANDLE_EINTR(close). Either IGNORE_EINTR(close) or just close.
It is incorrect to wrap close in HANDLE_EINTR on Linux. Correctness is
generally undefined on Mac, but as of r223369, it is incorrect in Chrome on
Mac.
To avoid new offenders, a PRESUBMIT check ensures that HANDLE_EINTR is not
used with close, and that IGNORE_EINTR is only used with close. Unnecessary
#includes of eintr_wrapper.h are also removed.
base/posix/einter_wrapper.h, PRESUBMIT.py, and ppapi/tests/test_broker.cc
contain non-mechanical changes. Variable naming within the latter is updated
per r178174. Missing #includes for <errno.h> in
content/zygote/zygote_main_linux.cc and tools/android/common/daemon.cc were
manually added. Mechanical changes were generated by running:
sed -E -i '' \
-e 's/((=|if|return|CHECK|EXPECT|ASSERT).*)HANDLE(_EINTR\(.*close)/\1IGNORE\3/' \
-e 's/(ignore_result|void ?)\(HANDLE_EINTR\((.*close\(.*)\)\)/\2/' \
-e 's/(\(void\) ?)?HANDLE_EINTR\((.*close\(.*)\)/\2/' \
$(git grep -El 'HANDLE_EINTR.*close')
sed -E -i '' -e '/#include.*eintr_wrapper\.h"/d' \
$(grep -EL '(HANDLE|IGNORE)_EINTR' \
$(git grep -El '#include.*eintr_wrapper\.h"'))
BUG=269623
R=agl@chromium.org, jln@chromium.org
TBR=OWNERS
Review URL: https://codereview.chromium.org/100253002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238390 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rw-r--r-- | net/base/address_tracker_linux.cc | 2 | ||||
-rw-r--r-- | net/base/net_util_posix.cc | 1 | ||||
-rw-r--r-- | net/dns/address_sorter_posix.cc | 1 | ||||
-rw-r--r-- | net/socket/tcp_listen_socket_unittest.cc | 2 | ||||
-rw-r--r-- | net/socket/tcp_socket_libevent.cc | 4 | ||||
-rw-r--r-- | net/socket/unix_domain_socket_posix.cc | 4 | ||||
-rw-r--r-- | net/socket/unix_domain_socket_posix_unittest.cc | 2 | ||||
-rw-r--r-- | net/udp/udp_socket_libevent.cc | 2 | ||||
-rw-r--r-- | net/udp/udp_socket_win.cc | 1 |
9 files changed, 8 insertions, 11 deletions
diff --git a/net/base/address_tracker_linux.cc b/net/base/address_tracker_linux.cc index 886811a..f863ccd 100644 --- a/net/base/address_tracker_linux.cc +++ b/net/base/address_tracker_linux.cc @@ -306,7 +306,7 @@ void AddressTrackerLinux::OnFileCanReadWithoutBlocking(int fd) { void AddressTrackerLinux::OnFileCanWriteWithoutBlocking(int /* fd */) {} void AddressTrackerLinux::CloseSocket() { - if (netlink_fd_ >= 0 && HANDLE_EINTR(close(netlink_fd_)) < 0) + if (netlink_fd_ >= 0 && IGNORE_EINTR(close(netlink_fd_)) < 0) PLOG(ERROR) << "Could not close NETLINK socket."; netlink_fd_ = -1; } diff --git a/net/base/net_util_posix.cc b/net/base/net_util_posix.cc index 4882ff6..4ff3ee9 100644 --- a/net/base/net_util_posix.cc +++ b/net/base/net_util_posix.cc @@ -8,7 +8,6 @@ #include "base/files/file_path.h" #include "base/logging.h" -#include "base/posix/eintr_wrapper.h" #include "base/strings/string_number_conversions.h" #include "base/strings/string_tokenizer.h" #include "base/strings/string_util.h" diff --git a/net/dns/address_sorter_posix.cc b/net/dns/address_sorter_posix.cc index c4bf74d..5e2fe94 100644 --- a/net/dns/address_sorter_posix.cc +++ b/net/dns/address_sorter_posix.cc @@ -19,7 +19,6 @@ #include "base/logging.h" #include "base/memory/scoped_vector.h" -#include "base/posix/eintr_wrapper.h" #include "net/socket/client_socket_factory.h" #include "net/udp/datagram_client_socket.h" diff --git a/net/socket/tcp_listen_socket_unittest.cc b/net/socket/tcp_listen_socket_unittest.cc index 2410677..41c41f8 100644 --- a/net/socket/tcp_listen_socket_unittest.cc +++ b/net/socket/tcp_listen_socket_unittest.cc @@ -73,7 +73,7 @@ void TCPListenSocketTester::TearDown() { #if defined(OS_WIN) ASSERT_EQ(0, closesocket(test_socket_)); #elif defined(OS_POSIX) - ASSERT_EQ(0, HANDLE_EINTR(close(test_socket_))); + ASSERT_EQ(0, IGNORE_EINTR(close(test_socket_))); #endif NextAction(); ASSERT_EQ(ACTION_CLOSE, last_action_.type()); diff --git a/net/socket/tcp_socket_libevent.cc b/net/socket/tcp_socket_libevent.cc index ab96afb..f4e4fe8 100644 --- a/net/socket/tcp_socket_libevent.cc +++ b/net/socket/tcp_socket_libevent.cc @@ -521,7 +521,7 @@ void TCPSocketLibevent::Close() { DCHECK(ok); if (socket_ != kInvalidSocket) { - if (HANDLE_EINTR(close(socket_)) < 0) + if (IGNORE_EINTR(close(socket_)) < 0) PLOG(ERROR) << "close"; socket_ = kInvalidSocket; } @@ -590,7 +590,7 @@ int TCPSocketLibevent::AcceptInternal(scoped_ptr<TCPSocketLibevent>* socket, IPEndPoint ip_end_point; if (!ip_end_point.FromSockAddr(storage.addr, storage.addr_len)) { NOTREACHED(); - if (HANDLE_EINTR(close(new_socket)) < 0) + if (IGNORE_EINTR(close(new_socket)) < 0) PLOG(ERROR) << "close"; net_log_.EndEventWithNetErrorCode(NetLog::TYPE_TCP_ACCEPT, ERR_ADDRESS_INVALID); diff --git a/net/socket/unix_domain_socket_posix.cc b/net/socket/unix_domain_socket_posix.cc index 2b781d5..3141f71 100644 --- a/net/socket/unix_domain_socket_posix.cc +++ b/net/socket/unix_domain_socket_posix.cc @@ -130,7 +130,7 @@ SocketDescriptor UnixDomainSocket::CreateAndBind(const std::string& path, LOG(ERROR) << "Could not bind unix domain socket to " << path; if (use_abstract_namespace) LOG(ERROR) << " (with abstract namespace enabled)"; - if (HANDLE_EINTR(close(s)) < 0) + if (IGNORE_EINTR(close(s)) < 0) LOG(ERROR) << "close() error"; return kInvalidSocket; } @@ -145,7 +145,7 @@ void UnixDomainSocket::Accept() { gid_t group_id; if (!GetPeerIds(conn, &user_id, &group_id) || !auth_callback_.Run(user_id, group_id)) { - if (HANDLE_EINTR(close(conn)) < 0) + if (IGNORE_EINTR(close(conn)) < 0) LOG(ERROR) << "close() error"; return; } diff --git a/net/socket/unix_domain_socket_posix_unittest.cc b/net/socket/unix_domain_socket_posix_unittest.cc index 6520985..b1857e6 100644 --- a/net/socket/unix_domain_socket_posix_unittest.cc +++ b/net/socket/unix_domain_socket_posix_unittest.cc @@ -306,7 +306,7 @@ TEST_F(UnixDomainSocketTest, TestWithClient) { ASSERT_EQ(kMsg, socket_delegate_->ReceivedData()); // Close the client socket. - ret = HANDLE_EINTR(close(sock)); + ret = IGNORE_EINTR(close(sock)); event = event_manager_->WaitForEvent(); ASSERT_EQ(EVENT_CLOSE, event); } diff --git a/net/udp/udp_socket_libevent.cc b/net/udp/udp_socket_libevent.cc index 990aa57..7ef9c3c 100644 --- a/net/udp/udp_socket_libevent.cc +++ b/net/udp/udp_socket_libevent.cc @@ -83,7 +83,7 @@ void UDPSocketLibevent::Close() { ok = write_socket_watcher_.StopWatchingFileDescriptor(); DCHECK(ok); - if (HANDLE_EINTR(close(socket_)) < 0) + if (IGNORE_EINTR(close(socket_)) < 0) PLOG(ERROR) << "close"; socket_ = kInvalidSocket; diff --git a/net/udp/udp_socket_win.cc b/net/udp/udp_socket_win.cc index c9f30a7..d2745b9 100644 --- a/net/udp/udp_socket_win.cc +++ b/net/udp/udp_socket_win.cc @@ -11,7 +11,6 @@ #include "base/message_loop/message_loop.h" #include "base/metrics/histogram.h" #include "base/metrics/stats_counters.h" -#include "base/posix/eintr_wrapper.h" #include "base/rand_util.h" #include "net/base/io_buffer.h" #include "net/base/ip_endpoint.h" |