| Index: native_client_sdk/src/libraries/nacl_io/syscalls/inet_ntop.cc
|
| diff --git a/native_client_sdk/src/libraries/nacl_io/syscalls/inet_ntop.cc b/native_client_sdk/src/libraries/nacl_io/syscalls/inet_ntop.cc
|
| deleted file mode 100644
|
| index 4eaf0efd3a27e1fe88cfeffa50369aaa83b79ce6..0000000000000000000000000000000000000000
|
| --- a/native_client_sdk/src/libraries/nacl_io/syscalls/inet_ntop.cc
|
| +++ /dev/null
|
| @@ -1,97 +0,0 @@
|
| -// Copyright 2013 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "nacl_io/ossocket.h"
|
| -#if defined(PROVIDES_SOCKET_API) && !defined(__GLIBC__) && !defined(__BIONIC__)
|
| -
|
| -#include <errno.h>
|
| -#include <string.h>
|
| -
|
| -#include <iostream>
|
| -#include <sstream>
|
| -#include <string>
|
| -
|
| -#include "sdk_util/macros.h"
|
| -
|
| -EXTERN_C_BEGIN
|
| -
|
| -const char* inet_ntop(int af, const void* src, char* dst, socklen_t size) {
|
| - if (AF_INET == af) {
|
| - if (size < INET_ADDRSTRLEN) {
|
| - errno = ENOSPC;
|
| - return NULL;
|
| - }
|
| - struct in_addr in;
|
| - memcpy(&in, src, sizeof(in));
|
| - char* result = inet_ntoa(in);
|
| - memcpy(dst, result, strlen(result) + 1);
|
| - return dst;
|
| - }
|
| -
|
| - if (AF_INET6 == af) {
|
| - if (size < INET6_ADDRSTRLEN) {
|
| - errno = ENOSPC;
|
| - return NULL;
|
| - }
|
| -
|
| - // Convert to an array of 8 host order shorts
|
| - const uint16_t* tuples = static_cast<const uint16_t*>(src);
|
| - uint16_t host_tuples[8];
|
| - int zero_run_start = -1;
|
| - int zero_run_end = -1;
|
| - for (int i = 0; i < 8; i++) {
|
| - host_tuples[i] = ntohs(tuples[i]);
|
| - if (host_tuples[i] == 0) {
|
| - if (zero_run_start == -1)
|
| - zero_run_start = i;
|
| - } else if (zero_run_start != -1 && zero_run_end == -1) {
|
| - zero_run_end = i;
|
| - }
|
| - }
|
| -
|
| - if (zero_run_start != -1) {
|
| - if (zero_run_end == -1)
|
| - zero_run_end = 8;
|
| - if (zero_run_end - zero_run_start < 2) {
|
| - zero_run_start = -1;
|
| - zero_run_end = -1;
|
| - }
|
| - }
|
| -
|
| - // Mimick glibc's behaviour here and allow ipv4 address to be specified
|
| - // as either ::A.B.C.D or ::ffff:A.B.C.D.
|
| - if (zero_run_start == 0 &&
|
| - (zero_run_end == 6 ||
|
| - (zero_run_end == 5 && host_tuples[zero_run_end] == 0xffff))) {
|
| - if (zero_run_end == 5) {
|
| - strcpy(dst, "::ffff:");
|
| - } else {
|
| - strcpy(dst, "::");
|
| - }
|
| - inet_ntop(AF_INET, host_tuples + 6, dst + strlen(dst), INET_ADDRSTRLEN);
|
| - } else {
|
| - std::stringstream output;
|
| - for (int i = 0; i < 8; i++) {
|
| - if (i == zero_run_start) {
|
| - output << "::";
|
| - continue;
|
| - }
|
| - if (i > zero_run_start && i < zero_run_end)
|
| - continue;
|
| - output << std::hex << host_tuples[i];
|
| - if (i < 7 && i + 1 != zero_run_start)
|
| - output << ":";
|
| - }
|
| - memcpy(dst, output.str().c_str(), output.str().size() + 1);
|
| - }
|
| - return dst;
|
| - }
|
| -
|
| - errno = EAFNOSUPPORT;
|
| - return NULL;
|
| -}
|
| -
|
| -EXTERN_C_END
|
| -
|
| -#endif // defined(PROVIDES_SOCKET_API) && !defined(__GLIBC__) ...
|
|
|