QmlDebugging: Support both IPv4 and IPv6

Change-Id: I562780c0894f596863c4c8b9cc9b12e3a3a98f33
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: Aurindam Jana <aurindam.jana@digia.com>
This commit is contained in:
Aurindam Jana
2013-04-18 10:34:23 +02:00
parent f9d2b6498f
commit b85eddb2ea
2 changed files with 6 additions and 4 deletions

View File

@@ -382,15 +382,16 @@ static DebuggerStartParameters localStartParameters(RunConfiguration *runConfigu
if (debugger->useQmlDebugger()) { if (debugger->useQmlDebugger()) {
const ProjectExplorer::IDevice::ConstPtr device = const ProjectExplorer::IDevice::ConstPtr device =
DeviceKitInformation::device(runConfiguration->target()->kit()); DeviceKitInformation::device(runConfiguration->target()->kit());
sp.qmlServerAddress = _("127.0.0.1");
QTC_ASSERT(device->type() == ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE, return sp); QTC_ASSERT(device->type() == ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE, return sp);
QTcpServer server; QTcpServer server;
const bool canListen = server.listen(QHostAddress(sp.qmlServerAddress)); const bool canListen = server.listen(QHostAddress::LocalHost)
|| server.listen(QHostAddress::LocalHostIPv6);
if (!canListen) { if (!canListen) {
if (errorMessage) if (errorMessage)
*errorMessage = DebuggerPlugin::tr("Not enough free ports for QML debugging. "); *errorMessage = DebuggerPlugin::tr("Not enough free ports for QML debugging. ");
return sp; return sp;
} }
sp.qmlServerAddress = server.serverAddress().toString();
sp.qmlServerPort = server.serverPort(); sp.qmlServerPort = server.serverPort();
sp.languages |= QmlLanguage; sp.languages |= QmlLanguage;

View File

@@ -218,15 +218,16 @@ RunControl *QmlProjectRunControlFactory::createDebugRunControl(QmlProjectRunConf
if (debugger->useQmlDebugger()) { if (debugger->useQmlDebugger()) {
const ProjectExplorer::IDevice::ConstPtr device = const ProjectExplorer::IDevice::ConstPtr device =
DeviceKitInformation::device(runConfig->target()->kit()); DeviceKitInformation::device(runConfig->target()->kit());
params.qmlServerAddress = QLatin1String("127.0.0.1");
QTC_ASSERT(device->type() == ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE, return 0); QTC_ASSERT(device->type() == ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE, return 0);
QTcpServer server; QTcpServer server;
const bool canListen = server.listen(QHostAddress(params.qmlServerAddress)); const bool canListen = server.listen(QHostAddress::LocalHost)
|| server.listen(QHostAddress::LocalHostIPv6);
if (!canListen) { if (!canListen) {
if (errorMessage) if (errorMessage)
*errorMessage = tr("Not enough free ports for QML debugging. "); *errorMessage = tr("Not enough free ports for QML debugging. ");
return 0; return 0;
} }
params.qmlServerAddress = server.serverAddress().toString();
params.qmlServerPort = server.serverPort(); params.qmlServerPort = server.serverPort();
params.languages |= Debugger::QmlLanguage; params.languages |= Debugger::QmlLanguage;