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
DisableNagle(int socket)16 int DisableNagle(int socket) {
17 int on = 1;
18 return setsockopt(socket, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on));
19 }
20
DeferAccept(int socket)21 int DeferAccept(int socket) {
22 int on = 1;
23 return setsockopt(socket, IPPROTO_TCP, TCP_DEFER_ACCEPT, &on, sizeof(on));
24 }
25
DumpBinary(const char * buffer,size_t length)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