Upstream version 5.34.98.0
[platform/framework/web/crosswalk.git] / src / native_client_sdk / src / libraries / nacl_io / syscalls / inet_ntoa.cc
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__)