query.bindValue(":autoreconnectretries", info.autoReconnectRetries);
query.bindValue(":unlimitedconnectretries", info.unlimitedReconnectRetries ? 1 : 0);
query.bindValue(":rejoinchannels", info.rejoinChannels ? 1 : 0);
+ // Custom rate limiting
+ query.bindValue(":usecustomessagerate", info.useCustomMessageRate ? 1 : 0);
+ query.bindValue(":messagerateburstsize", info.messageRateBurstSize);
+ query.bindValue(":messageratedelay", info.messageRateDelay);
+ query.bindValue(":unlimitedmessagerate", info.unlimitedMessageRate ? 1 : 0);
if (info.networkId.isValid())
query.bindValue(":networkid", info.networkId.toInt());
}
net.useSasl = networksQuery.value(16).toInt() == 1 ? true : false;
net.saslAccount = networksQuery.value(17).toString();
net.saslPassword = networksQuery.value(18).toString();
+ // Custom rate limiting
+ net.useCustomMessageRate = networksQuery.value(19).toInt() == 1 ? true : false;
+ net.messageRateBurstSize = networksQuery.value(20).toUInt();
+ net.messageRateDelay = networksQuery.value(21).toUInt();
+ net.unlimitedMessageRate = networksQuery.value(22).toInt() == 1 ? true : false;
serversQuery.bindValue(":networkid", net.networkId.toInt());
safeExec(serversQuery);
return markerLineHash;
}
+void SqliteStorage::setBufferLastMsg(const BufferId &bufferId, const MsgId &msgId)
+{
+ QSqlQuery query(logDb());
+ query.prepare(queryString("update_buffer_lastmsgid"));
+
+ query.bindValue(":bufferid", bufferId.toInt());
+ query.bindValue(":lastmsgid", msgId.toInt());
+ safeExec(query);
+ watchQuery(query);
+}
bool SqliteStorage::logMessage(Message &msg)
{
MsgId msgId = logMessageQuery.lastInsertId().toInt();
if (msgId.isValid()) {
msg.setMsgId(msgId);
+
+ setBufferLastMsg(msg.bufferInfo().bufferId(), msgId);
}
else {
error = true;
query.bindValue(":firstmsg", first.toInt());
}
else {
- query.prepare(queryString("select_messages"));
+ query.prepare(queryString("select_messagesRange"));
query.bindValue(":lastmsg", last.toInt());
query.bindValue(":firstmsg", first.toInt());
}
network.usesasl = value(22).toInt() == 1 ? true : false;
network.saslaccount = value(23).toString();
network.saslpassword = value(24).toString();
+ // Custom rate limiting
+ network.usecustommessagerate = value(25).toInt() == 1 ? true : false;
+ network.messagerateburstsize = value(26).toInt();
+ network.messageratedelay = value(27).toUInt();
+ network.unlimitedmessagerate = value(28).toInt() == 1 ? true : false;
return true;
}
buffer.buffername = value(4).toString();
buffer.buffercname = value(5).toString();
buffer.buffertype = value(6).toInt();
- buffer.lastseenmsgid = value(7).toInt();
- buffer.markerlinemsgid = value(8).toInt();
- buffer.key = value(9).toString();
- buffer.joined = value(10).toInt() == 1 ? true : false;
+ buffer.lastmsgid = value(7).toInt();
+ buffer.lastseenmsgid = value(8).toInt();
+ buffer.markerlinemsgid = value(9).toInt();
+ buffer.key = value(10).toString();
+ buffer.joined = value(11).toInt() == 1 ? true : false;
return true;
}