1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "tools/android/common/net.h" 6 7 #include <netinet/in.h> 8 #include <netinet/tcp.h> 9 #include <sys/socket.h> 10 #include <sys/types.h> 11 12 #include "base/strings/stringprintf.h" 13 14 namespace tools { 15 16 int DisableNagle(int socket) { 17 int on = 1; 18 return setsockopt(socket, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on)); 19 } 20 21 int DeferAccept(int socket) { 22 int on = 1; 23 return setsockopt(socket, IPPROTO_TCP, TCP_DEFER_ACCEPT, &on, sizeof(on)); 24 } 25 26 std::string DumpBinary(const char* buffer, size_t length) { 27 std::string result = "["; 28 for (int i = 0; i < length; ++i) { 29 base::StringAppendF(&result, "%02x,", 30 static_cast<unsigned char>(buffer[i])); 31 } 32 33 if (length) 34 result.erase(result.length() - 1); 35 36 return result + "]"; 37 } 38 39 } // namespace tools 40 41