summaryrefslogtreecommitdiffstats
path: root/network_manager.cpp
diff options
context:
space:
mode:
authorRatan Gupta <ratagupt@in.ibm.com>2017-04-21 08:45:23 +0530
committerRatan Gupta <ratagupt@in.ibm.com>2017-05-23 12:16:52 +0530
commit82549ccaa0f6373f664b260c7461adfd9f7665ba (patch)
treed183620e29632d2ed6c95ba9f8186f3965d09663 /network_manager.cpp
parentdb81a8acba51722b81ceeb22d0e6a3f688b652ad (diff)
downloadphosphor-networkd-82549ccaa0f6373f664b260c7461adfd9f7665ba.tar.gz
phosphor-networkd-82549ccaa0f6373f664b260c7461adfd9f7665ba.zip
Implement create interface for ipaddress
Change-Id: Ia4598c27c11667dafb70a8af58871661b7042d0f Signed-off-by: Ratan Gupta <ratagupt@in.ibm.com>
Diffstat (limited to 'network_manager.cpp')
-rw-r--r--network_manager.cpp34
1 files changed, 19 insertions, 15 deletions
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 phosphor
{
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 @@ details::IntfAddrMap Manager::getInterfaceAndaddrs() const
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);
}
}
OpenPOWER on IntegriCloud