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