Home | History | Annotate | Download | only in syscalls
      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 
     11 static 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 
     16 EXTERN_C_BEGIN
     17 
     18 char* 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 
     26 EXTERN_C_END
     27 
     28 #endif  // defined(PROVIDES_SOCKET_API) && !defined(__GLIBC__)
     29