blob: 076fa17dc10a275dc67c16ec859ff3b41c995138 [file] [log] [blame]
// Copyright 2012 The Chromium Authors
// 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 "base/logging.h"
#include "build/build_config.h"
#if BUILDFLAG(IS_POSIX) || defined(COBALT_PENDING_CLEAN_UP)
#include <unistd.h>
#endif
#if BUILDFLAG(IS_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,
absl::optional<Eui48MacAddress> mac_address)
: name(name),
friendly_name(friendly_name),
interface_index(interface_index),
type(type),
address(address),
prefix_length(prefix_length),
ip_address_attributes(ip_address_attributes),
mac_address(mac_address) {}
NetworkInterface::NetworkInterface(const NetworkInterface& other) = default;
NetworkInterface::~NetworkInterface() = default;
ScopedWifiOptions::~ScopedWifiOptions() = default;
std::string GetHostName() {
#if defined(STARBOARD)
NOTIMPLEMENTED();
return "";
#else
#if BUILDFLAG(IS_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
}
} // namespace net