diff options
Diffstat (limited to 'src/network/kernel/qnetworkinterface_linux.cpp')
-rw-r--r-- | src/network/kernel/qnetworkinterface_linux.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/network/kernel/qnetworkinterface_linux.cpp b/src/network/kernel/qnetworkinterface_linux.cpp index 01b2811070..5dc62bf7bb 100644 --- a/src/network/kernel/qnetworkinterface_linux.cpp +++ b/src/network/kernel/qnetworkinterface_linux.cpp @@ -382,7 +382,14 @@ static void getAddresses(int sock, char *buf, QList<QNetworkInterfacePrivate *> auto payloadPtr = reinterpret_cast<uchar *>(RTA_DATA(rta)); switch (rta->rta_type) { - case IFA_ADDRESS: // address + case IFA_ADDRESS: + // Local address (all interfaces except for point-to-point) + if (entry.ip().isNull()) + entry.setIp(makeAddress(payloadPtr, payloadLen)); + break; + + case IFA_LOCAL: + // Override the local address (point-to-point interfaces) entry.setIp(makeAddress(payloadPtr, payloadLen)); break; |