QNetworkInterface: make the name lookup search numbers in string forms
That's how QHostAddress::scopeId() stores them, so we ought to look them up the same way. Change-Id: I7de033f80b0e4431b7f1ffff13f98cf87d45ebc6 Reviewed-by: Richard J. Moore <rich@kde.org>
This commit is contained in:
parent
8fa44b382f
commit
c72311440b
@ -785,7 +785,7 @@ QString QHostAddress::toString() const
|
||||
usually the same as the interface name (e.g., "eth0", "en1") or number
|
||||
(e.g., "1", "2").
|
||||
|
||||
\sa setScopeId()
|
||||
\sa setScopeId(), QNetworkInterface, QNetworkInterface::interfaceFromName
|
||||
*/
|
||||
QString QHostAddress::scopeId() const
|
||||
{
|
||||
@ -796,8 +796,14 @@ QString QHostAddress::scopeId() const
|
||||
/*!
|
||||
\since 4.1
|
||||
|
||||
Sets the IPv6 scope ID of the address to \a id. If the address
|
||||
protocol is not IPv6, this function does nothing.
|
||||
Sets the IPv6 scope ID of the address to \a id. If the address protocol is
|
||||
not IPv6, this function does nothing. The scope ID may be set as an
|
||||
interface name (such as "eth0" or "en1") or as an integer representing the
|
||||
interface index. If \a id is an interface name, QtNetwork will convert to
|
||||
an interface index using QNetworkInterface::interfaceIndexFromName() before
|
||||
calling the operating system networking functions.
|
||||
|
||||
\sa scopeId(), QNetworkInterface, QNetworkInterface::interfaceFromName
|
||||
*/
|
||||
void QHostAddress::setScopeId(const QString &id)
|
||||
{
|
||||
|
@ -86,9 +86,16 @@ QSharedDataPointer<QNetworkInterfacePrivate> QNetworkInterfaceManager::interface
|
||||
{
|
||||
QList<QSharedDataPointer<QNetworkInterfacePrivate> > interfaceList = allInterfaces();
|
||||
QList<QSharedDataPointer<QNetworkInterfacePrivate> >::ConstIterator it = interfaceList.constBegin();
|
||||
for ( ; it != interfaceList.constEnd(); ++it)
|
||||
if ((*it)->name == name)
|
||||
|
||||
bool ok;
|
||||
uint index = name.toUInt(&ok);
|
||||
|
||||
for ( ; it != interfaceList.constEnd(); ++it) {
|
||||
if (ok && (*it)->index == int(index))
|
||||
return *it;
|
||||
else if ((*it)->name == name)
|
||||
return *it;
|
||||
}
|
||||
|
||||
return empty;
|
||||
}
|
||||
@ -516,6 +523,9 @@ QList<QNetworkAddressEntry> QNetworkInterface::addressEntries() const
|
||||
name. If no such interface exists, this function returns an
|
||||
invalid QNetworkInterface object.
|
||||
|
||||
The string \a name may be either an actual interface name (such as "eth0"
|
||||
or "en1") or an interface index in string form ("1", "2", etc.).
|
||||
|
||||
\sa name(), isValid()
|
||||
*/
|
||||
QNetworkInterface QNetworkInterface::interfaceFromName(const QString &name)
|
||||
|
Loading…
Reference in New Issue
Block a user