1// Copyright 2013 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 "nacl_io/ossocket.h"
6#if defined(PROVIDES_SOCKET_API) && !defined(__GLIBC__)
7
8#include <string.h>
9#include "sdk_util/macros.h"
10
11static uint8_t GetByte(const void* addr, int byte) {
12  const char* buf = static_cast<const char*>(addr);
13  return static_cast<uint8_t>(buf[byte]);
14}
15
16EXTERN_C_BEGIN
17
18char* inet_ntoa(struct in_addr in) {
19  static char addr[INET_ADDRSTRLEN];
20  snprintf(addr, INET_ADDRSTRLEN, "%u.%u.%u.%u",
21           GetByte(&in, 0), GetByte(&in, 1),
22           GetByte(&in, 2), GetByte(&in, 3));
23  return addr;
24}
25
26EXTERN_C_END
27
28#endif  // defined(PROVIDES_SOCKET_API) && !defined(__GLIBC__)
29