/* Copyright 2013 The Chromium Authors. All rights reserved.
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file. */

#include "nacl_io/ossocket.h"
#if defined(PROVIDES_SOCKET_API) && !defined(__GLIBC__)

#include <string.h>
#include "sdk_util/macros.h"

static uint8_t GetByte(const void* addr, int byte) {
  const char* buf = static_cast<const char*>(addr);
  return static_cast<uint8_t>(buf[byte]);
}

EXTERN_C_BEGIN

char* inet_ntoa(struct in_addr in) {
  static char addr[INET_ADDRSTRLEN];
  snprintf(addr, INET_ADDRSTRLEN, "%u.%u.%u.%u",
           GetByte(&in, 0), GetByte(&in, 1),
           GetByte(&in, 2), GetByte(&in, 3));
  return addr;
}

EXTERN_C_END

#endif  // defined(PROVIDES_SOCKET_API) && !defined(__GLIBC__)
