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
14namespace tools {
15
16int DisableNagle(int socket) {
17  int on = 1;
18  return setsockopt(socket, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on));
19}
20
21int DeferAccept(int socket) {
22  int on = 1;
23  return setsockopt(socket, IPPROTO_TCP, TCP_DEFER_ACCEPT, &on, sizeof(on));
24}
25
26std::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