1ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// Copyright 2013 The Chromium Authors. All rights reserved.
2ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
3ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// found in the LICENSE file.
4bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch
5bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch#include "nacl_io/ossocket.h"
6bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch
7c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#if defined(PROVIDES_SOCKET_API) && !defined(__GLIBC__) && !defined(__BIONIC__)
8bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch
9bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdochstatic uint8_t GetByte(const void* addr, int byte) {
105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  const char* buf = (const char*)addr;
115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  return (uint8_t)buf[byte];
12bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch}
13bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch
14bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdochchar* inet_ntoa(struct in_addr in) {
15bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch  static char addr[INET_ADDRSTRLEN];
16bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch  snprintf(addr, INET_ADDRSTRLEN, "%u.%u.%u.%u",
17bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch           GetByte(&in, 0), GetByte(&in, 1),
18bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch           GetByte(&in, 2), GetByte(&in, 3));
19bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch  return addr;
20bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch}
21bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch
22c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#endif  // defined(PROVIDES_SOCKET_API) && !defined(__GLIBC__) ...
23