mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-28 08:16:09 +03:00
66 lines
1.8 KiB
C++
66 lines
1.8 KiB
C++
|
// Copyright (c) 2012 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 "net/base/network_interfaces.h"
|
||
|
|
||
|
#include "build/build_config.h"
|
||
|
|
||
|
#if defined(OS_POSIX)
|
||
|
#include <unistd.h>
|
||
|
#endif
|
||
|
|
||
|
#if defined(OS_WIN)
|
||
|
#include <winsock2.h>
|
||
|
#include "net/base/winsock_init.h"
|
||
|
#endif
|
||
|
|
||
|
namespace net {
|
||
|
|
||
|
NetworkInterface::NetworkInterface()
|
||
|
: type(NetworkChangeNotifier::CONNECTION_UNKNOWN), prefix_length(0) {
|
||
|
}
|
||
|
|
||
|
NetworkInterface::NetworkInterface(const std::string& name,
|
||
|
const std::string& friendly_name,
|
||
|
uint32_t interface_index,
|
||
|
NetworkChangeNotifier::ConnectionType type,
|
||
|
const IPAddress& address,
|
||
|
uint32_t prefix_length,
|
||
|
int ip_address_attributes)
|
||
|
: name(name),
|
||
|
friendly_name(friendly_name),
|
||
|
interface_index(interface_index),
|
||
|
type(type),
|
||
|
address(address),
|
||
|
prefix_length(prefix_length),
|
||
|
ip_address_attributes(ip_address_attributes) {}
|
||
|
|
||
|
NetworkInterface::NetworkInterface(const NetworkInterface& other) = default;
|
||
|
|
||
|
NetworkInterface::~NetworkInterface() = default;
|
||
|
|
||
|
ScopedWifiOptions::~ScopedWifiOptions() = default;
|
||
|
|
||
|
std::string GetHostName() {
|
||
|
#if defined(OS_NACL)
|
||
|
NOTIMPLEMENTED();
|
||
|
return std::string();
|
||
|
#else // defined(OS_NACL)
|
||
|
#if defined(OS_WIN)
|
||
|
EnsureWinsockInit();
|
||
|
#endif
|
||
|
|
||
|
// Host names are limited to 255 bytes.
|
||
|
char buffer[256];
|
||
|
int result = gethostname(buffer, sizeof(buffer));
|
||
|
if (result != 0) {
|
||
|
DVLOG(1) << "gethostname() failed with " << result;
|
||
|
buffer[0] = '\0';
|
||
|
}
|
||
|
return std::string(buffer);
|
||
|
#endif // !defined(OS_NACL)
|
||
|
}
|
||
|
|
||
|
} // namespace net
|