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

Unified Diff: experimental/linux_debug_server/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/linux_debug_server/debugger/base/debug_socket.cc
diff --git a/experimental/linux_debug_server/debugger/base/debug_socket.cc b/experimental/linux_debug_server/debugger/base/debug_socket.cc
deleted file mode 100755
index c446bc79ae64a94927435c003c19bafc24d523c9..0000000000000000000000000000000000000000
--- a/experimental/linux_debug_server/debugger/base/debug_socket.cc
+++ /dev/null
@@ -1,294 +0,0 @@
-// Copyright (c) 2011 The Native Client 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"
-#include <memory.h>
-#include <string.h>
-
-#ifndef _WIN32
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <netdb.h>
-#include <netinet/tcp.h>
-#include <errno.h>
-#endif
-
-namespace {
-fd_set* kNoFdSet = NULL;
-const int kMicroPerMilli = 1000;
-const char* kAnyLocalHost = NULL;
-sockaddr* kNoPeerAddress = NULL;
-const int kWaitForOneWriteMs = 1000;
-const int kWaitForOneReadMs = 1000;
-const int kWriteBufferSize = 2048;
-const int kLingerSeconds = 10;
-
-bool InitSocketLib() {
-#ifdef _WIN32
- WSADATA wsa_data;
- WORD version_requested = MAKEWORD(1, 1);
- return (WSAStartup(version_requested, &wsa_data) == 0);
-#else
- return true;
-#endif
-}
-
-void FreeSocketLib() {
-#ifdef _WIN32
- WSACleanup();
-#endif
-}
-
-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;
- // A socket should remain open for kLingerSeconds seconds after
- // a closesocket function call to enable queued data to be sent.
- ling.l_linger = kLingerSeconds;
- 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 {
-SocketBase::SocketBase()
- : sock_(INVALID_SOCKET),
- init_success_(false),
- saved_last_error_(kSocketNoError) {
- init_success_ = InitSocketLib();
-}
-
-SocketBase::~SocketBase() {
- if (init_success_)
- FreeSocketLib();
-}
-
-int SocketBase::GetLastError() {
-#ifdef _WIN32
- int res = WSAGetLastError();
- if (kSocketNoError == res)
- return saved_last_error_;
- return res;
-#else
- return errno;
-#endif
-}
-
-void SocketBase::Close() {
- if (INVALID_SOCKET != sock_) {
- saved_last_error_ = GetLastError();
-#ifdef _WIN32
- closesocket(sock_);
-#else
- shutdown(sock_, SHUT_RDWR);
- close(sock_);
-#endif
- sock_ = INVALID_SOCKET;
- }
-}
-
-void SocketBase::ClearSavedLastError() {
- saved_last_error_ = kSocketNoError;
-}
-
-bool ListeningSocket::Listen(int port) {
- ClearSavedLastError();
- 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) {
- Close();
- return false;
- }
- // Mark a socket as accepting connections.
- if (listen(sock_, SOMAXCONN) != 0) {
- Close();
- }
- return (INVALID_SOCKET != sock_);
-}
-
-bool ListeningSocket::Accept(int wait_ms, Socket* new_connection) {
- ClearSavedLastError();
- 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) {
- Close();
- 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();
-}
-
-void Socket::AttachTo(SOCKET sock) {
- Close();
- ClearSavedLastError();
- sock_ = sock;
- SetSocketOptions(sock_);
-}
-
-bool Socket::ConnectTo(const std::string& host, int port) {
- Close();
- ClearSavedLastError();
- 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)
- Close();
- else
- SetSocketOptions(sock_);
- return IsConnected();
-}
-
-bool Socket::IsConnected() const {
- bool connected = (INVALID_SOCKET != sock_);
- if (!connected && (kSocketNoError == saved_last_error_))
- const_cast<Socket*>(this)->saved_last_error_ = 666;
- return connected;
-}
-
-size_t Socket::Write(const void* buff, size_t buff_len, int wait_ms) {
- if (!IsConnected())
- return 0;
-
- ClearSavedLastError();
- 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) {
- Close();
- return 0;
- }
- int bytes_send = 0;
- if (FD_ISSET(sock_, &socks)) {
- bytes_send = send(sock_, static_cast<const char*>(buff), buff_len, 0);
- if (bytes_send < 0) {
- Close();
- return 0;
- }
- }
- return bytes_send;
-}
-
-// Blocks until all data has been sent.
-size_t Socket::WriteAll(const void* buff, size_t buff_len) {
- const char* ptr = static_cast<const char*>(buff);
- size_t sent_bytes = 0;
- while (IsConnected() && (buff_len > 0)) {
- size_t wr = Write(ptr, buff_len, kWaitForOneWriteMs);
- sent_bytes += wr;
- buff_len -= wr;
- ptr += wr;
- }
- return sent_bytes;
-}
-
-size_t Socket::WriteAll(const Blob& blob) {
- size_t sent_bytes = 0;
- while (IsConnected() && (sent_bytes < blob.size())) {
- char buff[kWriteBufferSize];
- size_t bytes_to_send = blob.Peek(sent_bytes, buff, sizeof(buff));
- sent_bytes += WriteAll(buff, bytes_to_send);
- }
- return sent_bytes;
-}
-
-size_t Socket::Read(void* buff, size_t buff_len, int wait_ms) {
- if (!IsConnected())
- return 0;
-
- ClearSavedLastError();
- 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) {
- Close();
- return 0;
- }
- // No data available.
- if (!FD_ISSET(sock_, &socks))
- return 0;
-
- ssize_t read_bytes = recv(sock_, static_cast<char*>(buff), buff_len, 0);
- if ((-1 == read_bytes) || (0 == read_bytes)) {
- Close();
- return 0;
- }
- return read_bytes;
-}
-
-size_t Socket::ReadAll(void* buff, size_t buff_len) {
- size_t total_rd_bytes = 0;
- char* ptr = static_cast<char*>(buff);
- char* buff_end = ptr + buff_len;
- while (IsConnected() && (ptr < buff_end)) {
- size_t rd = Read(ptr, buff_len - total_rd_bytes, kWaitForOneReadMs);
- total_rd_bytes += rd;
- ptr += rd;
- }
- return total_rd_bytes;
-}
-
-} // namespace debug
-

Powered by Google App Engine
This is Rietveld 408576698