X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcore.cpp;h=13a7fd90b1ac33b266a01a4da34fbd0ddc5139f9;hp=25bdc8190d020c0b0f63a5464998241c8ead5d7f;hb=452077390e20d20d20c9b1f97c3772a5690f58ce;hpb=79551d95b458b180e66353d079da1c2c947d8908 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() {