14311e82a78ceafbe0585f51d4c8a86df9f21aa0dBen Murdoch// Copyright 2013 The Chromium Authors. All rights reserved.
24311e82a78ceafbe0585f51d4c8a86df9f21aa0dBen Murdoch// Use of this source code is governed by a BSD-style license that can be
34311e82a78ceafbe0585f51d4c8a86df9f21aa0dBen Murdoch// found in the LICENSE file.
4bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch
5bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch#include "nacl_io/ossocket.h"
6bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch#if defined(PROVIDES_SOCKET_API) && !defined(__GLIBC__)
7bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch
8bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch#include <string.h>
9bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch#include "sdk_util/macros.h"
10bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch
11bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdochstatic uint8_t GetByte(const void* addr, int byte) {
12bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch  const char* buf = static_cast<const char*>(addr);
13bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch  return static_cast<uint8_t>(buf[byte]);
14bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch}
15bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch
16bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben MurdochEXTERN_C_BEGIN
17bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch
18bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdochchar* inet_ntoa(struct in_addr in) {
19bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch  static char addr[INET_ADDRSTRLEN];
20bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch  snprintf(addr, INET_ADDRSTRLEN, "%u.%u.%u.%u",
21bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch           GetByte(&in, 0), GetByte(&in, 1),
22bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch           GetByte(&in, 2), GetByte(&in, 3));
23bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch  return addr;
24bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch}
25bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch
26bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben MurdochEXTERN_C_END
27bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch
28bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch#endif  // defined(PROVIDES_SOCKET_API) && !defined(__GLIBC__)
29