forked from qt-creator/qt-creator
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>
This commit is contained in:
committed by
Eike Ziller
parent
5f054990d6
commit
f32fbf5700
@@ -103,7 +103,7 @@ class RelayServer: public QObject
|
|||||||
public:
|
public:
|
||||||
RelayServer(IosTool *parent);
|
RelayServer(IosTool *parent);
|
||||||
~RelayServer();
|
~RelayServer();
|
||||||
bool startServer(int port);
|
bool startServer();
|
||||||
void stopServer();
|
void stopServer();
|
||||||
quint16 serverPort();
|
quint16 serverPort();
|
||||||
IosTool *iosTool();
|
IosTool *iosTool();
|
||||||
@@ -115,6 +115,7 @@ protected:
|
|||||||
|
|
||||||
QTcpServer m_ipv4Server;
|
QTcpServer m_ipv4Server;
|
||||||
QTcpServer m_ipv6Server;
|
QTcpServer m_ipv6Server;
|
||||||
|
quint16 m_port = 0;
|
||||||
QList<Relayer *> m_connections;
|
QList<Relayer *> m_connections;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -404,20 +405,23 @@ RelayServer::~RelayServer()
|
|||||||
stopServer();
|
stopServer();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool RelayServer::startServer(int port)
|
bool RelayServer::startServer()
|
||||||
{
|
{
|
||||||
QTC_CHECK(!m_ipv4Server.isListening());
|
QTC_CHECK(!m_ipv4Server.isListening());
|
||||||
QTC_CHECK(!m_ipv6Server.isListening());
|
QTC_CHECK(!m_ipv6Server.isListening());
|
||||||
|
|
||||||
connect(&m_ipv4Server, &QTcpServer::newConnection,
|
connect(&m_ipv4Server, &QTcpServer::newConnection,
|
||||||
this, &RelayServer::handleNewRelayConnection);
|
this, &RelayServer::handleNewRelayConnection);
|
||||||
connect(&m_ipv6Server, &QTcpServer::newConnection,
|
connect(&m_ipv6Server, &QTcpServer::newConnection,
|
||||||
this, &RelayServer::handleNewRelayConnection);
|
this, &RelayServer::handleNewRelayConnection);
|
||||||
quint16 portValue = static_cast<quint16>(port);
|
|
||||||
if (port < 0 || port > 0xFFFF)
|
m_port = 0;
|
||||||
return false;
|
if (m_ipv4Server.listen(QHostAddress(QHostAddress::LocalHost), 0))
|
||||||
m_ipv4Server.listen(QHostAddress(QHostAddress::LocalHostIPv6), portValue);
|
m_port = m_ipv4Server.serverPort();
|
||||||
m_ipv6Server.listen(QHostAddress(QHostAddress::LocalHost), portValue);
|
if (m_ipv6Server.listen(QHostAddress(QHostAddress::LocalHostIPv6), m_port))
|
||||||
return m_ipv4Server.isListening() || m_ipv6Server.isListening();
|
m_port = m_ipv6Server.serverPort();
|
||||||
|
|
||||||
|
return m_port > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RelayServer::stopServer()
|
void RelayServer::stopServer()
|
||||||
@@ -432,11 +436,7 @@ void RelayServer::stopServer()
|
|||||||
|
|
||||||
quint16 RelayServer::serverPort()
|
quint16 RelayServer::serverPort()
|
||||||
{
|
{
|
||||||
if (m_ipv4Server.isListening())
|
return m_port;
|
||||||
return m_ipv4Server.serverPort();
|
|
||||||
if (m_ipv6Server.isListening())
|
|
||||||
return m_ipv6Server.serverPort();
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
IosTool *RelayServer::iosTool()
|
IosTool *RelayServer::iosTool()
|
||||||
@@ -728,12 +728,12 @@ void IosTool::didStartApp(const QString &bundlePath, const QString &deviceId,
|
|||||||
int qmlPort = deviceSession->qmljsDebugPort();
|
int qmlPort = deviceSession->qmljsDebugPort();
|
||||||
if (qmlPort) {
|
if (qmlPort) {
|
||||||
qmlServer = new GenericRelayServer(this, qmlPort, deviceSession);
|
qmlServer = new GenericRelayServer(this, qmlPort, deviceSession);
|
||||||
qmlServer->startServer(0);
|
qmlServer->startServer();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (debug) {
|
if (debug) {
|
||||||
gdbServer = new SingleRelayServer(this, gdbFd);
|
gdbServer = new SingleRelayServer(this, gdbFd);
|
||||||
if (!gdbServer->startServer(0)) {
|
if (!gdbServer->startServer()) {
|
||||||
doExit(-4);
|
doExit(-4);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user