Home | History | Annotate | Download | only in network
      1 // Copyright (c) 2012 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 "chromeos/network/network_ip_config.h"
      6 
      7 #include "base/logging.h"
      8 
      9 namespace chromeos {
     10 
     11 namespace {
     12 #define ENUM_CASE(x) case x: return std::string(#x)
     13 std::string IPConfigTypeAsString(IPConfigType type) {
     14   switch (type) {
     15     ENUM_CASE(IPCONFIG_TYPE_UNKNOWN);
     16     ENUM_CASE(IPCONFIG_TYPE_IPV4);
     17     ENUM_CASE(IPCONFIG_TYPE_IPV6);
     18     ENUM_CASE(IPCONFIG_TYPE_DHCP);
     19     ENUM_CASE(IPCONFIG_TYPE_BOOTP);
     20     ENUM_CASE(IPCONFIG_TYPE_ZEROCONF);
     21     ENUM_CASE(IPCONFIG_TYPE_DHCP6);
     22     ENUM_CASE(IPCONFIG_TYPE_PPP);
     23   }
     24   NOTREACHED() << "Unhandled enum value " << type;
     25   return std::string();
     26 }
     27 #undef ENUM_CASE
     28 }  // namespace
     29 
     30 NetworkIPConfig::NetworkIPConfig(
     31     const std::string& device_path, IPConfigType type,
     32     const std::string& address, const std::string& netmask,
     33     const std::string& gateway, const std::string& name_servers)
     34     : device_path(device_path),
     35       type(type),
     36       address(address),
     37       netmask(netmask),
     38       gateway(gateway),
     39       name_servers(name_servers) {
     40 }
     41 
     42 NetworkIPConfig::~NetworkIPConfig() {}
     43 
     44 std::string NetworkIPConfig::ToString() const {
     45   return std::string("path: ") + device_path
     46       + " type: " + IPConfigTypeAsString(type)
     47       + " address: " + address
     48       + " netmask: " + netmask
     49       + " gateway: " + gateway
     50       + " name_servers: " + name_servers;
     51 }
     52 
     53 }  // namespace chromeos
     54