From afe7df78961811606b3fd8a7ae3be986a9ba92d0 Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Mon, 7 Mar 2022 05:39:07 +0200 Subject: [PATCH] kinfocenter: add entry for each network interface address Signed-off-by: Ivailo Monev --- kinfocenter/Modules/nics/nic.cpp | 55 ++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/kinfocenter/Modules/nics/nic.cpp b/kinfocenter/Modules/nics/nic.cpp index bf3ffe1c..ccdbd5f7 100644 --- a/kinfocenter/Modules/nics/nic.cpp +++ b/kinfocenter/Modules/nics/nic.cpp @@ -106,34 +106,35 @@ QList findNICs() foreach (const QNetworkInterface &iface, QNetworkInterface::allInterfaces()) { const QNetworkInterface::InterfaceFlags flags = iface.flags(); - const QList adresses = iface.addressEntries(); - - MyNIC *tmp = new MyNIC; - tmp->name = iface.name(); - tmp->addr = (!adresses.isEmpty() ? adresses.first().ip().toString() : QString()); - tmp->netmask = (!adresses.isEmpty() ? adresses.first().netmask().toString() : QString()); - if (tmp->netmask.isEmpty()) { - tmp->netmask = i18nc("Unknown network mask", "Unknown"); + foreach (const QNetworkAddressEntry &address, iface.addressEntries()) { + + MyNIC *tmp = new MyNIC; + tmp->name = iface.name(); + tmp->addr = address.ip().toString(); + tmp->netmask = address.netmask().toString(); + if (tmp->netmask.isEmpty()) { + tmp->netmask = i18nc("Unknown network mask", "Unknown"); + } + tmp->state = (flags & QNetworkInterface::IsUp) ? upMessage : downMessage; + + if (flags & QNetworkInterface::CanBroadcast) + tmp->type=i18nc("@item:intext Mode of network card", "Broadcast"); + else if (flags & QNetworkInterface::IsPointToPoint) + tmp->type=i18nc("@item:intext Mode of network card", "Point to Point"); + else if (flags & QNetworkInterface::CanMulticast) + tmp->type=i18nc("@item:intext Mode of network card", "Multicast"); + else if (flags & QNetworkInterface::IsLoopBack) + tmp->type=i18nc("@item:intext Mode of network card", "Loopback"); + else + tmp->type=i18nc("@item:intext Mode of network card", "Unknown"); + + tmp->HWaddr = iface.hardwareAddress(); + if (tmp->HWaddr.isEmpty()) { + tmp->HWaddr = i18nc("Unknown HWaddr", "Unknown"); + } + + nl.append(tmp); } - tmp->state = (flags & QNetworkInterface::IsUp) ? upMessage : downMessage; - - if (flags & QNetworkInterface::CanBroadcast) - tmp->type=i18nc("@item:intext Mode of network card", "Broadcast"); - else if (flags & QNetworkInterface::IsPointToPoint) - tmp->type=i18nc("@item:intext Mode of network card", "Point to Point"); - else if (flags & QNetworkInterface::CanMulticast) - tmp->type=i18nc("@item:intext Mode of network card", "Multicast"); - else if (flags & QNetworkInterface::IsLoopBack) - tmp->type=i18nc("@item:intext Mode of network card", "Loopback"); - else - tmp->type=i18nc("@item:intext Mode of network card", "Unknown"); - - tmp->HWaddr = iface.hardwareAddress(); - if (tmp->HWaddr.isEmpty()) { - tmp->HWaddr = i18nc("Unknown HWaddr", "Unknown"); - } - - nl.append(tmp); } return nl; -- 2.11.0