Commit ed03e8f2 authored by Matt Edman's avatar Matt Edman
Browse files

Make the guess-my-local-IP stuff a little bit smarter, though it still sucks.

I wish the ol' call-connect-on-udp-socket trick worked with Qt.


svn:r450
parent 11b2eec1
Loading
Loading
Loading
Loading
+10 −5
Changes for src/util/net.cpp: 10 added lines, 5 removed lines.
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@
 * \version $Id$
 */

#include <QHostInfo>
#include <QList>
#include <QUrl>

@@ -35,12 +36,16 @@
QHostAddress
net_local_address()
{
  QAbstractSocket localSock(QAbstractSocket::TcpSocket, 0);
  QHostAddress localAddr = localSock.localAddress();
  if (localAddr.isNull()) {
    return QHostAddress::LocalHost;
  QHostInfo localInfo = QHostInfo::fromName(QHostInfo::localHostName());
  if (localInfo.error() == QHostInfo::NoError) {
    foreach (QHostAddress addr, localInfo.addresses()) {
      if (addr.protocol() == QAbstractSocket::IPv4Protocol &&
          !(addr == QHostAddress::LocalHost)) {
        return addr;
      }
    }
  return localAddr;
  }
  return QHostAddress::LocalHost;
}

/** Returns true if the given address is a private IP address. */