summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVikas Pachdha <vikas.pachdha@qt.io>2016-12-08 17:51:14 +0100
committerEike Ziller <eike.ziller@qt.io>2016-12-09 07:49:41 +0000
commitf32fbf570020dbc043c4cc05f1c14cb77c3a6464 (patch)
tree998a2e682cfaa78c26442bfb18ab92d6b61d3427
parent5f054990d694e82a9876df073c712ddceedbd6d6 (diff)
downloadqt-creator-f32fbf570020dbc043c4cc05f1c14cb77c3a6464.tar.gz
iOS: Fix app launch fail on debugging
Start the relay servers on the same port. Task-number: QTCREATORBUG-17407 Change-Id: Iad22cdebffdf3e88021718d4a7c232e08650c92e Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
-rw-r--r--src/tools/iostool/main.cpp30
1 files changed, 15 insertions, 15 deletions
diff --git a/src/tools/iostool/main.cpp b/src/tools/iostool/main.cpp
index a02fb446e3..83bba027b3 100644
--- a/src/tools/iostool/main.cpp
+++ b/src/tools/iostool/main.cpp
@@ -103,7 +103,7 @@ class RelayServer: public QObject
public:
RelayServer(IosTool *parent);
~RelayServer();
- bool startServer(int port);
+ bool startServer();
void stopServer();
quint16 serverPort();
IosTool *iosTool();
@@ -115,6 +115,7 @@ protected:
QTcpServer m_ipv4Server;
QTcpServer m_ipv6Server;
+ quint16 m_port = 0;
QList<Relayer *> m_connections;
};
@@ -404,20 +405,23 @@ RelayServer::~RelayServer()
stopServer();
}
-bool RelayServer::startServer(int port)
+bool RelayServer::startServer()
{
QTC_CHECK(!m_ipv4Server.isListening());
QTC_CHECK(!m_ipv6Server.isListening());
+
connect(&m_ipv4Server, &QTcpServer::newConnection,
this, &RelayServer::handleNewRelayConnection);
connect(&m_ipv6Server, &QTcpServer::newConnection,
this, &RelayServer::handleNewRelayConnection);
- quint16 portValue = static_cast<quint16>(port);
- if (port < 0 || port > 0xFFFF)
- return false;
- m_ipv4Server.listen(QHostAddress(QHostAddress::LocalHostIPv6), portValue);
- m_ipv6Server.listen(QHostAddress(QHostAddress::LocalHost), portValue);
- return m_ipv4Server.isListening() || m_ipv6Server.isListening();
+
+ m_port = 0;
+ if (m_ipv4Server.listen(QHostAddress(QHostAddress::LocalHost), 0))
+ m_port = m_ipv4Server.serverPort();
+ if (m_ipv6Server.listen(QHostAddress(QHostAddress::LocalHostIPv6), m_port))
+ m_port = m_ipv6Server.serverPort();
+
+ return m_port > 0;
}
void RelayServer::stopServer()
@@ -432,11 +436,7 @@ void RelayServer::stopServer()
quint16 RelayServer::serverPort()
{
- if (m_ipv4Server.isListening())
- return m_ipv4Server.serverPort();
- if (m_ipv6Server.isListening())
- return m_ipv6Server.serverPort();
- return 0;
+ return m_port;
}
IosTool *RelayServer::iosTool()
@@ -728,12 +728,12 @@ void IosTool::didStartApp(const QString &bundlePath, const QString &deviceId,
int qmlPort = deviceSession->qmljsDebugPort();
if (qmlPort) {
qmlServer = new GenericRelayServer(this, qmlPort, deviceSession);
- qmlServer->startServer(0);
+ qmlServer->startServer();
}
}
if (debug) {
gdbServer = new SingleRelayServer(this, gdbFd);
- if (!gdbServer->startServer(0)) {
+ if (!gdbServer->startServer()) {
doExit(-4);
return;
}