diff --git a/src/network/kernel/qnetworkinterface_unix.cpp b/src/network/kernel/qnetworkinterface_unix.cpp index 38cddd8f7ab..cc53087024e 100644 --- a/src/network/kernel/qnetworkinterface_unix.cpp +++ b/src/network/kernel/qnetworkinterface_unix.cpp @@ -218,6 +218,27 @@ static QNetworkInterfacePrivate *findInterface(int socket, QListindex = ifindex; interfaces << iface; + } + + return iface; +} + +static QList interfaceListing() +{ + QList interfaces; + + int socket; + if ((socket = qt_safe_socket(AF_INET, SOCK_STREAM, IPPROTO_IP)) == -1) + return interfaces; // error + + QSet names = interfaceNames(socket); + QSet::ConstIterator it = names.constBegin(); + for ( ; it != names.constEnd(); ++it) { + ifreq req; + memset(&req, 0, sizeof(ifreq)); + memcpy(req.ifr_name, *it, qMin(it->length() + 1, sizeof(req.ifr_name) - 1)); + + QNetworkInterfacePrivate *iface = findInterface(socket, interfaces, req); #ifdef SIOCGIFNAME // Get the canonical name @@ -246,27 +267,6 @@ static QNetworkInterfacePrivate *findInterface(int socket, QListhardwareAddress = iface->makeHwAddress(6, addr); } #endif - } - - return iface; -} - -static QList interfaceListing() -{ - QList interfaces; - - int socket; - if ((socket = qt_safe_socket(AF_INET, SOCK_STREAM, IPPROTO_IP)) == -1) - return interfaces; // error - - QSet names = interfaceNames(socket); - QSet::ConstIterator it = names.constBegin(); - for ( ; it != names.constEnd(); ++it) { - ifreq req; - memset(&req, 0, sizeof(ifreq)); - memcpy(req.ifr_name, *it, qMin(it->length() + 1, sizeof(req.ifr_name) - 1)); - - QNetworkInterfacePrivate *iface = findInterface(socket, interfaces, req); // Get the interface broadcast address QNetworkAddressEntry entry;