From b85eddb2eab446074c2fc31d3f4bbff762b28802 Mon Sep 17 00:00:00 2001 From: Aurindam Jana Date: Thu, 18 Apr 2013 10:34:23 +0200 Subject: [PATCH] QmlDebugging: Support both IPv4 and IPv6 Change-Id: I562780c0894f596863c4c8b9cc9b12e3a3a98f33 Reviewed-by: hjk Reviewed-by: Aurindam Jana --- src/plugins/debugger/debuggerrunner.cpp | 5 +++-- src/plugins/qmlprojectmanager/qmlprojectruncontrol.cpp | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/plugins/debugger/debuggerrunner.cpp b/src/plugins/debugger/debuggerrunner.cpp index 5c09efa6339..55b9d206776 100644 --- a/src/plugins/debugger/debuggerrunner.cpp +++ b/src/plugins/debugger/debuggerrunner.cpp @@ -382,15 +382,16 @@ static DebuggerStartParameters localStartParameters(RunConfiguration *runConfigu if (debugger->useQmlDebugger()) { const ProjectExplorer::IDevice::ConstPtr device = DeviceKitInformation::device(runConfiguration->target()->kit()); - sp.qmlServerAddress = _("127.0.0.1"); QTC_ASSERT(device->type() == ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE, return sp); QTcpServer server; - const bool canListen = server.listen(QHostAddress(sp.qmlServerAddress)); + const bool canListen = server.listen(QHostAddress::LocalHost) + || server.listen(QHostAddress::LocalHostIPv6); if (!canListen) { if (errorMessage) *errorMessage = DebuggerPlugin::tr("Not enough free ports for QML debugging. "); return sp; } + sp.qmlServerAddress = server.serverAddress().toString(); sp.qmlServerPort = server.serverPort(); sp.languages |= QmlLanguage; diff --git a/src/plugins/qmlprojectmanager/qmlprojectruncontrol.cpp b/src/plugins/qmlprojectmanager/qmlprojectruncontrol.cpp index 18eca2326ea..84af07b3b00 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectruncontrol.cpp +++ b/src/plugins/qmlprojectmanager/qmlprojectruncontrol.cpp @@ -218,15 +218,16 @@ RunControl *QmlProjectRunControlFactory::createDebugRunControl(QmlProjectRunConf if (debugger->useQmlDebugger()) { const ProjectExplorer::IDevice::ConstPtr device = DeviceKitInformation::device(runConfig->target()->kit()); - params.qmlServerAddress = QLatin1String("127.0.0.1"); QTC_ASSERT(device->type() == ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE, return 0); QTcpServer server; - const bool canListen = server.listen(QHostAddress(params.qmlServerAddress)); + const bool canListen = server.listen(QHostAddress::LocalHost) + || server.listen(QHostAddress::LocalHostIPv6); if (!canListen) { if (errorMessage) *errorMessage = tr("Not enough free ports for QML debugging. "); return 0; } + params.qmlServerAddress = server.serverAddress().toString(); params.qmlServerPort = server.serverPort(); params.languages |= Debugger::QmlLanguage;