mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 05:57:29 +02:00
contain QSharedMemory for local server port to reader
This commit is contained in:
parent
27db69207d
commit
7373bb6817
4 changed files with 161 additions and 173 deletions
|
@ -181,8 +181,7 @@ void AssignmentClient::sendAssignmentRequest() {
|
||||||
if (_assignmentServerHostname == "localhost") {
|
if (_assignmentServerHostname == "localhost") {
|
||||||
// we want to check again for the local domain-server port in case the DS has restarted
|
// we want to check again for the local domain-server port in case the DS has restarted
|
||||||
quint16 localAssignmentServerPort;
|
quint16 localAssignmentServerPort;
|
||||||
if (nodeList->getLocalServerPortFromSharedMemory(DOMAIN_SERVER_LOCAL_PORT_SMEM_KEY, _localASPortSharedMem,
|
if (nodeList->getLocalServerPortFromSharedMemory(DOMAIN_SERVER_LOCAL_PORT_SMEM_KEY, localAssignmentServerPort)) {
|
||||||
localAssignmentServerPort)) {
|
|
||||||
if (localAssignmentServerPort != _assignmentServerSocket.getPort()) {
|
if (localAssignmentServerPort != _assignmentServerSocket.getPort()) {
|
||||||
qDebug() << "Port for local assignment server read from shared memory is"
|
qDebug() << "Port for local assignment server read from shared memory is"
|
||||||
<< localAssignmentServerPort;
|
<< localAssignmentServerPort;
|
||||||
|
|
|
@ -762,22 +762,15 @@ void LimitedNodeList::putLocalPortIntoSharedMemory(const QString key, QObject* p
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool LimitedNodeList::getLocalServerPortFromSharedMemory(const QString key, QSharedMemory*& sharedMem,
|
bool LimitedNodeList::getLocalServerPortFromSharedMemory(const QString key, quint16& localPort) {
|
||||||
quint16& localPort) {
|
QSharedMemory sharedMem(key);
|
||||||
if (!sharedMem) {
|
if (!sharedMem.attach(QSharedMemory::ReadOnly)) {
|
||||||
sharedMem = new QSharedMemory(key, this);
|
|
||||||
|
|
||||||
if (!sharedMem->attach(QSharedMemory::ReadOnly)) {
|
|
||||||
qWarning() << "Could not attach to shared memory at key" << key;
|
qWarning() << "Could not attach to shared memory at key" << key;
|
||||||
}
|
return false;
|
||||||
}
|
} else {
|
||||||
|
sharedMem.lock();
|
||||||
if (sharedMem->isAttached()) {
|
memcpy(&localPort, sharedMem.data(), sizeof(localPort));
|
||||||
sharedMem->lock();
|
sharedMem.unlock();
|
||||||
memcpy(&localPort, sharedMem->data(), sizeof(localPort));
|
|
||||||
sharedMem->unlock();
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -200,7 +200,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
void putLocalPortIntoSharedMemory(const QString key, QObject* parent, quint16 localPort);
|
void putLocalPortIntoSharedMemory(const QString key, QObject* parent, quint16 localPort);
|
||||||
bool getLocalServerPortFromSharedMemory(const QString key, QSharedMemory*& sharedMem, quint16& localPort);
|
bool getLocalServerPortFromSharedMemory(const QString key, quint16& localPort);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void reset();
|
void reset();
|
||||||
|
|
|
@ -335,12 +335,8 @@ void NodeList::sendDomainServerCheckIn() {
|
||||||
if (_domainHandler.getSockAddr().getAddress() == QHostAddress::LocalHost
|
if (_domainHandler.getSockAddr().getAddress() == QHostAddress::LocalHost
|
||||||
|| _domainHandler.getHostname() == "localhost") {
|
|| _domainHandler.getHostname() == "localhost") {
|
||||||
|
|
||||||
static QSharedMemory* localDSPortSharedMem = NULL;
|
|
||||||
|
|
||||||
quint16 domainPort = DEFAULT_DOMAIN_SERVER_PORT;
|
quint16 domainPort = DEFAULT_DOMAIN_SERVER_PORT;
|
||||||
getLocalServerPortFromSharedMemory(DOMAIN_SERVER_LOCAL_PORT_SMEM_KEY,
|
getLocalServerPortFromSharedMemory(DOMAIN_SERVER_LOCAL_PORT_SMEM_KEY, domainPort);
|
||||||
localDSPortSharedMem,
|
|
||||||
domainPort);
|
|
||||||
qCDebug(networking) << "Local domain-server port read from shared memory (or default) is" << domainPort;
|
qCDebug(networking) << "Local domain-server port read from shared memory (or default) is" << domainPort;
|
||||||
_domainHandler.setPort(domainPort);
|
_domainHandler.setPort(domainPort);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue