X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcorenetwork.cpp;h=e3963c4e71d7704eb0f02e4e48356dc1bc802439;hp=34bb426fa943d391225cfded947ea3f4de842f0a;hb=36d432bc4ee56dd9a89850a8dbcc58ea12d8ee33;hpb=156f88b0a12dd2fb65a78c3ce088ce6ba57feafe diff --git a/src/core/corenetwork.cpp b/src/core/corenetwork.cpp index 34bb426f..e3963c4e 100644 --- a/src/core/corenetwork.cpp +++ b/src/core/corenetwork.cpp @@ -1006,8 +1006,13 @@ QString CoreNetwork::takeQueuedCap() void CoreNetwork::beginCapNegotiation() { // Don't begin negotiation if no capabilities are queued to request - if (!capNegotiationInProgress()) + if (!capNegotiationInProgress()) { + // If the server doesn't have any capabilities, but supports CAP LS, continue on with the + // normal connection. + displayMsg(Message::Server, BufferInfo::StatusBuffer, "", tr("No capabilities available")); + endCapNegotiation(); return; + } _capNegotiationActive = true; displayMsg(Message::Server, BufferInfo::StatusBuffer, "", @@ -1036,11 +1041,16 @@ void CoreNetwork::sendNextCap() _capNegotiationActive = false; } - // If nick registration is already complete, CAP END is not required - if (!_capInitialNegotiationEnded) { - putRawLine(serverEncode(QString("CAP END"))); - _capInitialNegotiationEnded = true; - } + endCapNegotiation(); + } +} + +void CoreNetwork::endCapNegotiation() +{ + // If nick registration is already complete, CAP END is not required + if (!_capInitialNegotiationEnded) { + putRawLine(serverEncode(QString("CAP END"))); + _capInitialNegotiationEnded = true; } }