From: Marcus Eggenberger Date: Tue, 8 Jul 2008 13:06:00 +0000 (+0200) Subject: core should fallback to v4 if v6 isn't available X-Git-Tag: 0.3.0~298 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=452077390e20d20d20c9b1f97c3772a5690f58ce core should fallback to v4 if v6 isn't available --- diff --git a/src/core/core.cpp b/src/core/core.cpp index 25bdc819..13a7fd90 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() {