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

Unified Diff: experimental/windows_debugger/debugger/base/debug_socket.cc

Issue 10928195: First round of dead file removal (Closed) Base URL: https://github.com/samclegg/nativeclient-sdk.git@master
Patch Set: Created 8 years, 3 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
Index: experimental/windows_debugger/debugger/base/debug_socket.cc
diff --git a/experimental/windows_debugger/debugger/base/debug_socket.cc b/experimental/windows_debugger/debugger/base/debug_socket.cc
deleted file mode 100644
index d29a7ac3b4217c7ac6f70284f7e335aab9e66420..0000000000000000000000000000000000000000
--- a/experimental/windows_debugger/debugger/base/debug_socket.cc
+++ /dev/null
@@ -1,250 +0,0 @@
-// Copyright 2011 The Native Client SDK Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can
-// be found in the LICENSE file.
-
-#include "debugger/base/debug_socket.h"
-
-namespace {
-fd_set* kNoFdSet = NULL;
-const int kMicroPerMilli = 1000;
-const char* kAnyLocalHost = NULL;
-sockaddr* kNoPeerAddress = NULL;
-const int kWaitForOneWriteMs = 1000;
-const int kTmpBufferSize = 2048;
-
-bool InitSocketLib() {
- WSADATA wsa_data;
- WORD version_requested = MAKEWORD(1, 1);
- return (WSAStartup(version_requested, &wsa_data) == 0);
-}
-
-void FreeSocketLib() {
- WSACleanup();
-}
-
-void CloseSocket(SOCKET* sock) {
- if ((NULL != sock) && (INVALID_SOCKET != *sock)) {
- closesocket(*sock);
- *sock = INVALID_SOCKET;
- }
-}
-
-timeval CreateTimeval(int milliseconds) {
- timeval timeout;
- timeout.tv_sec = 0;
- timeout.tv_usec = milliseconds * kMicroPerMilli;
- return timeout;
-}
-
-sockaddr_in CreateSockAddr(const char* host, int port) {
- sockaddr_in addr;
- memset(&addr, 0, sizeof(addr));
- addr.sin_family = AF_INET;
- addr.sin_port = htons(port); // Convert port number from host byte order
- // to network byte order.
- if ((NULL == host) || (strlen(host) == 0)) {
- addr.sin_addr.s_addr = htonl(INADDR_ANY);
- } else {
- hostent* hostDescr = gethostbyname(host);
- if (NULL != hostDescr)
- addr.sin_addr.s_addr =
- *(reinterpret_cast<unsigned int**>(hostDescr->h_addr_list)[0]);
- }
- return addr;
-}
-
-void SetSocketOptions(SOCKET sock) {
- if (INVALID_SOCKET != sock) {
- // Setup socket to flush pending data on close.
- linger ling;
- ling.l_onoff = 1;
- ling.l_linger = 10; // The socket will remain open for a specified amount
- // of time (in seconds).
- setsockopt(sock,
- SOL_SOCKET,
- SO_LINGER,
- reinterpret_cast<char*>(&ling),
- sizeof(ling));
- // Turn off buffering, to speedup debugger communication.
- int opt = 1;
- setsockopt(sock,
- IPPROTO_TCP,
- TCP_NODELAY,
- reinterpret_cast<char*>(&opt),
- sizeof(opt));
- }
-}
-} // namespace
-
-namespace debug {
-ListeningSocket::ListeningSocket()
- : sock_(INVALID_SOCKET) {
- init_success_ = InitSocketLib();
-}
-
-ListeningSocket::~ListeningSocket() {
- CloseSocket(&sock_);
- if (init_success_)
- FreeSocketLib();
-}
-
-void ListeningSocket::Close() {
- CloseSocket(&sock_);
-}
-
-bool ListeningSocket::Listen(int port) {
- Close();
- sock_ = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
- if (INVALID_SOCKET == sock_)
- return false;
-
- // Associate local address with socket.
- sockaddr_in addr = CreateSockAddr(kAnyLocalHost, port);
- if (bind(sock_, reinterpret_cast<sockaddr*>(&addr), sizeof(addr)) != 0) {
- CloseSocket(&sock_);
- return false;
- }
- // Mark a socket as accepting connections.
- if (listen(sock_, SOMAXCONN) != 0)
- CloseSocket(&sock_);
- return (INVALID_SOCKET != sock_);
-}
-
-bool ListeningSocket::Accept(Socket* new_connection, int wait_ms) {
- fd_set socks;
- FD_ZERO(&socks);
- FD_SET(sock_, &socks);
-
- // Wait for incoming connection.
- timeval timeout = CreateTimeval(wait_ms);
- if (select(sock_ + 1, &socks, kNoFdSet, kNoFdSet, &timeout) < 0) {
- CloseSocket(&sock_);
- return false;
- }
- // No connection requests.
- if (!FD_ISSET(sock_, &socks))
- return false;
-
- // Accept a connection request.
- SOCKET sock = accept(sock_, kNoPeerAddress, 0);
- if (INVALID_SOCKET != sock)
- new_connection->AttachTo(sock);
-
- return new_connection->IsConnected();
-}
-
-Socket::Socket()
- : sock_(INVALID_SOCKET) {
- init_success_ = InitSocketLib();
-}
-
-void Socket::AttachTo(SOCKET sock) {
- Close();
- sock_ = sock;
- SetSocketOptions(sock_);
-}
-
-Socket::~Socket() {
- CloseSocket(&sock_);
- if (init_success_)
- FreeSocketLib();
-}
-
-void Socket::Close() {
- CloseSocket(&sock_);
-}
-
-bool Socket::ConnectTo(const std::string& host, int port) {
- Close();
- sock_ = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
- if (INVALID_SOCKET == sock_)
- return false;
-
- sockaddr_in addr = CreateSockAddr(host.c_str(), port);
- if (connect(sock_, reinterpret_cast<sockaddr*>(&addr), sizeof(addr)) != 0)
- CloseSocket(&sock_);
- else
- SetSocketOptions(sock_);
- return IsConnected();
-}
-
-bool Socket::IsConnected() const {
- return (INVALID_SOCKET != sock_);
-}
-
-size_t Socket::Write(const void* buff, size_t sz, int wait_ms) {
- if (!IsConnected())
- return 0;
-
- fd_set socks;
- FD_ZERO(&socks);
- FD_SET(sock_, &socks);
-
- // Wait for 'write ready'.
- timeval timeout = CreateTimeval(wait_ms);
- if (select(sock_ + 1, kNoFdSet, &socks, kNoFdSet, &timeout) < 0) {
- CloseSocket(&sock_);
- return 0;
- }
- size_t bytes_send = 0;
- if (FD_ISSET(sock_, &socks)) {
- bytes_send = send(sock_, static_cast<const char*>(buff), sz, 0);
- if (bytes_send < 0)
- CloseSocket(&sock_);
- }
- return bytes_send;
-}
-
-// Blocks until all data has been sent.
-void Socket::WriteAll(const void* buff, size_t sz) {
- const char* ptr = static_cast<const char*>(buff);
- while (sz) {
- size_t wr = Write(ptr, sz, kWaitForOneWriteMs);
- if (!IsConnected())
- break;
- sz -= wr;
- ptr += wr;
- }
-}
-
-void Socket::WriteAll(const Blob& blob) {
- char buff[kTmpBufferSize];
- size_t pos = 0;
- while (pos < blob.size()) {
- size_t num = blob.size() - pos;
- if (num > sizeof(buff))
- num = sizeof(buff);
- for (size_t i = 0; i < num; i++)
- buff[i] = blob[pos + i];
- WriteAll(buff, num);
- pos += num;
- }
-}
-
-size_t Socket::Read(void* buff, size_t sz, int wait_ms) {
- if (!IsConnected())
- return 0;
-
- fd_set socks;
- FD_ZERO(&socks);
- FD_SET(sock_, &socks);
- timeval timeout = CreateTimeval(wait_ms);
-
- // Wait for data.
- if (select(sock_ + 1, &socks, kNoFdSet, kNoFdSet, &timeout) < 0) {
- CloseSocket(&sock_);
- return 0;
- }
- // No data available.
- if (!FD_ISSET(sock_, &socks))
- return 0;
-
- size_t read_bytes = recv(sock_, static_cast<char*>(buff), sz, 0);
- if ((SOCKET_ERROR == read_bytes) || (0 == read_bytes)) {
- CloseSocket(&sock_);
- return 0;
- }
- return read_bytes;
-}
-} // namespace debug
-
« no previous file with comments | « experimental/windows_debugger/debugger/base/debug_socket.h ('k') | experimental/windows_debugger/debugger/base/debug_system.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698