aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorAurindam Jana <aurindam.jana@digia.com>2013-03-18 17:17:52 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-04-02 13:26:03 +0200
commitf15595901b645fc3c168ef18f81ae4617b439e92 (patch)
treeedcb11ea4a7ee984a0e66b1b1f94fbdf1b08dd2f /src/plugins
parent3e0bcbff98346385ec32bc951cd958d1c1bfb371 (diff)
Debugger: Accepts port range as arguments
Allow a port range to pass on command line, and try to listen on any of the ports in the range. (Re)using the ',' separator allows for backwards compatibility, that is, also Qt 4 will accept a -qmljsdebugger=port:1000,1010 argument, but will only try to listen on port 1000. Change-Id: Ic03fe20e4aee9ecdea86651f46f1df5cb19bd75c Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/qmltooling/qmldbg_tcp/qtcpserverconnection.cpp30
-rw-r--r--src/plugins/qmltooling/qmldbg_tcp/qtcpserverconnection.h2
2 files changed, 23 insertions, 9 deletions
diff --git a/src/plugins/qmltooling/qmldbg_tcp/qtcpserverconnection.cpp b/src/plugins/qmltooling/qmldbg_tcp/qtcpserverconnection.cpp
index fbdb201b04..86e1a70841 100644
--- a/src/plugins/qmltooling/qmldbg_tcp/qtcpserverconnection.cpp
+++ b/src/plugins/qmltooling/qmldbg_tcp/qtcpserverconnection.cpp
@@ -54,7 +54,8 @@ class QTcpServerConnectionPrivate {
public:
QTcpServerConnectionPrivate();
- int port;
+ int portFrom;
+ int portTo;
bool block;
QString hostaddress;
QTcpSocket *socket;
@@ -65,7 +66,8 @@ public:
};
QTcpServerConnectionPrivate::QTcpServerConnectionPrivate() :
- port(0),
+ portFrom(0),
+ portTo(0),
block(false),
socket(0),
protocol(0),
@@ -135,10 +137,12 @@ bool QTcpServerConnection::waitForMessage()
return d->protocol->waitForReadyRead(-1);
}
-void QTcpServerConnection::setPort(int port, bool block, const QString &hostaddress)
+void QTcpServerConnection::setPortRange(int portFrom, int portTo, bool block,
+ const QString &hostaddress)
{
Q_D(QTcpServerConnection);
- d->port = port;
+ d->portFrom = portFrom;
+ d->portTo = portTo;
d->block = block;
d->hostaddress = hostaddress;
@@ -163,10 +167,20 @@ void QTcpServerConnection::listen()
} else {
hostaddress = QHostAddress::Any;
}
- if (d->tcpServer->listen(hostaddress, d->port))
- qDebug("QML Debugger: Waiting for connection on port %d...", d->port);
- else
- qWarning("QML Debugger: Unable to listen to port %d.", d->port);
+ int port = d->portFrom;
+ do {
+ if (d->tcpServer->listen(hostaddress, port)) {
+ qDebug("QML Debugger: Waiting for connection on port %d...", port);
+ break;
+ }
+ ++port;
+ } while (port <= d->portTo);
+ if (port > d->portTo) {
+ if (d->portFrom == d->portTo)
+ qWarning("QML Debugger: Unable to listen to port %d.", d->portFrom);
+ else
+ qWarning("QML Debugger: Unable to listen to ports %d - %d.", d->portFrom, d->portTo);
+ }
}
diff --git a/src/plugins/qmltooling/qmldbg_tcp/qtcpserverconnection.h b/src/plugins/qmltooling/qmldbg_tcp/qtcpserverconnection.h
index 33157906c8..525ed50e51 100644
--- a/src/plugins/qmltooling/qmldbg_tcp/qtcpserverconnection.h
+++ b/src/plugins/qmltooling/qmldbg_tcp/qtcpserverconnection.h
@@ -61,7 +61,7 @@ public:
~QTcpServerConnection();
void setServer(QQmlDebugServer *server);
- void setPort(int port, bool bock, const QString &hostaddress);
+ void setPortRange(int portFrom, int portTo, bool bock, const QString &hostaddress);
bool isConnected() const;
void send(const QList<QByteArray> &messages);