OLD | NEW |
1 /* Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 * found in the LICENSE file. */ | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "nacl_io/ossocket.h" | 5 #include "nacl_io/ossocket.h" |
6 #if defined(PROVIDES_SOCKET_API) && !defined(__GLIBC__) | 6 #if defined(PROVIDES_SOCKET_API) && !defined(__GLIBC__) |
7 | 7 |
8 #include <string.h> | 8 #include <string.h> |
9 #include "sdk_util/macros.h" | 9 #include "sdk_util/macros.h" |
10 | 10 |
11 static uint8_t GetByte(const void* addr, int byte) { | 11 static uint8_t GetByte(const void* addr, int byte) { |
12 const char* buf = static_cast<const char*>(addr); | 12 const char* buf = static_cast<const char*>(addr); |
13 return static_cast<uint8_t>(buf[byte]); | 13 return static_cast<uint8_t>(buf[byte]); |
14 } | 14 } |
15 | 15 |
16 EXTERN_C_BEGIN | 16 EXTERN_C_BEGIN |
17 | 17 |
18 char* inet_ntoa(struct in_addr in) { | 18 char* inet_ntoa(struct in_addr in) { |
19 static char addr[INET_ADDRSTRLEN]; | 19 static char addr[INET_ADDRSTRLEN]; |
20 snprintf(addr, INET_ADDRSTRLEN, "%u.%u.%u.%u", | 20 snprintf(addr, INET_ADDRSTRLEN, "%u.%u.%u.%u", |
21 GetByte(&in, 0), GetByte(&in, 1), | 21 GetByte(&in, 0), GetByte(&in, 1), |
22 GetByte(&in, 2), GetByte(&in, 3)); | 22 GetByte(&in, 2), GetByte(&in, 3)); |
23 return addr; | 23 return addr; |
24 } | 24 } |
25 | 25 |
26 EXTERN_C_END | 26 EXTERN_C_END |
27 | 27 |
28 #endif // defined(PROVIDES_SOCKET_API) && !defined(__GLIBC__) | 28 #endif // defined(PROVIDES_SOCKET_API) && !defined(__GLIBC__) |
OLD | NEW |