X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fnetworkconnection.cpp;h=f5e6a367b04a3d58973b03a3c7a209a8bfd9b8c9;hp=ab4531149c1f11a903fc7595078c61e900ec86ae;hb=bf01681e9e6108517bfa997422b84e04b801a40a;hpb=b2f26944f3b4109d22bb1571aed2a7e2e9efbb5a diff --git a/src/core/networkconnection.cpp b/src/core/networkconnection.cpp index ab453114..f5e6a367 100644 --- a/src/core/networkconnection.cpp +++ b/src/core/networkconnection.cpp @@ -59,12 +59,7 @@ NetworkConnection::NetworkConnection(Network *network, CoreSession *session) // TokenBucket to avaid sending too much at once _messagesPerSecond(1), _burstSize(5), - _tokenBucket(5), // init with a full bucket - - // TODO: - // should be 510 (2 bytes are added when writing to the socket) - // maxMsgSize is 510 minus the hostmask which will be added by the server - _maxMsgSize(450) + _tokenBucket(5) // init with a full bucket { _autoReconnectTimer.setSingleShot(true); _socketCloseTimer.setSingleShot(true); @@ -441,7 +436,10 @@ int NetworkConnection::lastParamOverrun(const QString &cmd, const QListme(); - int maxLen = 512 - serverEncode(me->nick()).count() - serverEncode(me->user()).count() - serverEncode(me->host()).count() - cmd.toAscii().count() - 6; + int maxLen = 480 - cmd.toAscii().count(); // educated guess in case we don't know us (yet?) + + if(me) + maxLen = 512 - serverEncode(me->nick()).count() - serverEncode(me->user()).count() - serverEncode(me->host()).count() - cmd.toAscii().count() - 6; if(!params.isEmpty()) { for(int i = 0; i < params.count() - 1; i++) { @@ -501,23 +499,6 @@ void NetworkConnection::putCmd(const QString &cmd, const QList ¶ if(!params.isEmpty()) msg += " :" + params.last(); - if(cmd == "PRIVMSG" && params.count() > 1) { - QByteArray msghead = "PRIVMSG " + params[0].toByteArray() + " :"; - - while (msg.size() > _maxMsgSize) { - QByteArray splitter(" .,-"); - int splitPosition = 0; - for(int i = 0; i < splitter.size(); i++) { - splitPosition = qMax(splitPosition, msg.lastIndexOf(splitter[i], _maxMsgSize)); - } - if(splitPosition < 300) { - splitPosition = _maxMsgSize; - } - putRawLine(msg.left(splitPosition)); - msg = msghead + msg.mid(splitPosition); - } - } - putRawLine(msg); }