Implement create interface for ipaddress
Change-Id: Ia4598c27c11667dafb70a8af58871661b7042d0f
Signed-off-by: Ratan Gupta <ratagupt@in.ibm.com>
diff --git a/network_manager.cpp b/network_manager.cpp
index 479e8a4..7362943 100644
--- a/network_manager.cpp
+++ b/network_manager.cpp
@@ -4,7 +4,7 @@
#include <phosphor-logging/log.hpp>
#include <algorithm>
-
+#include <experimental/filesystem>
#include <arpa/inet.h>
#include <dirent.h>
#include <net/if.h>
@@ -14,34 +14,38 @@
{
namespace network
{
+
using namespace phosphor::logging;
+namespace fs = std::experimental::filesystem;
Manager::Manager(sdbusplus::bus::bus& bus, const char* objPath):
details::VLANCreateIface(bus, objPath, true)
{
- auto interfaceInfoList = getInterfaceAndaddrs();
+ auto interfaceInfoList = getInterfaceAddrs();
for( const auto& intfInfo : interfaceInfoList )
{
- std::string objectPath = std::string(OBJ_NETWORK) + "/" + intfInfo.first;
+
+ fs::path objectPath = std::string(OBJ_NETWORK);
+ objectPath /= intfInfo.first;
this->interfaces.emplace(std::make_pair(
intfInfo.first,
std::make_unique<
phosphor::network::EthernetInterface >
(bus, objectPath.c_str(),
- false)));
+ false,intfInfo.second)));
}
}
-void Manager::vLAN(details::IntfName interfaceName, uint16_t id)
+void Manager::vLAN(IntfName interfaceName, uint16_t id)
{
}
-details::IntfAddrMap Manager::getInterfaceAndaddrs() const
+IntfAddrMap Manager::getInterfaceAddrs() const
{
- details::IntfAddrMap intfMap;
- details::AddrList addrList;
+ IntfAddrMap intfMap;
+ AddrList addrList;
struct ifaddrs* ifaddr;
// attempt to fill struct with ifaddrs
if (getifaddrs(&ifaddr) == -1)
@@ -86,28 +90,28 @@
addrList.clear();
}
intfName = ifa->ifa_name;
- details::AddrInfo info;
- char tmp[INET6_ADDRSTRLEN] = { 0 };
+ AddrInfo info;
+ char ip[INET6_ADDRSTRLEN] = { 0 };
if (ifa->ifa_addr->sa_family == AF_INET)
{
inet_ntop(ifa->ifa_addr->sa_family,
&(((struct sockaddr_in*)(ifa->ifa_addr))->sin_addr),
- tmp,
- sizeof(tmp));
+ ip,
+ sizeof(ip));
}
else
{
inet_ntop(ifa->ifa_addr->sa_family,
&(((struct sockaddr_in6*)(ifa->ifa_addr))->sin6_addr),
- tmp,
- sizeof(tmp));
+ ip,
+ sizeof(ip));
}
info.addrType = ifa->ifa_addr->sa_family;
- info.ipaddress = tmp;
+ info.ipaddress = ip;
addrList.emplace_back(info);
}
}