From 1824db4acedeefcc69d71bc6d53f3ce393963eac Mon Sep 17 00:00:00 2001 From: Marcus Eggenberger Date: Tue, 8 Jul 2008 15:06:00 +0200 Subject: [PATCH] core should fallback to v4 if v6 isn't available --- src/core/core.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/core/core.cpp b/src/core/core.cpp index 87a6b33a..295bca85 100644 --- a/src/core/core.cpp +++ b/src/core/core.cpp @@ -340,12 +340,23 @@ QHash Core::bufferLastSeenMsgIds(UserId user) { /*** Network Management ***/ bool Core::startListening(uint port) { - if(!server.listen(QHostAddress::AnyIPv6, port)) { + bool success = false; + + // let's see if ipv6 is available + success = server.listen(QHostAddress::AnyIPv6, port); + + if(!success && server.serverError() == QAbstractSocket::UnsupportedSocketOperationError) { + // fall back to v4 + success = server.listen(QHostAddress::Any, port); + } + + if(!success) { qWarning("%s", qPrintable(QString("Could not open GUI client port %1: %2").arg(port).arg(server.errorString()))); - return false; + } else { + qDebug() << "Listening for GUI clients on port" << server.serverPort(); } - qDebug() << "Listening for GUI clients on port" << server.serverPort(); - return true; + + return success; } void Core::stopListening() { -- 2.20.1