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