diff --git a/storage/message_store.go b/storage/message_store.go index d393f99..69d776c 100644 --- a/storage/message_store.go +++ b/storage/message_store.go @@ -76,8 +76,8 @@ func (s *SqliteMessageStore) AddMessage(message groups.EncryptedGroupMessage) { func (s *SqliteMessageStore) checkPruneMessages() { if s.messageCap != -1 && s.messageCount > s.messageCap { log.Debugf("Message Count: %d / Message Cap: %d, message cap exceeded, pruning oldest 10%...", s.messageCount, s.messageCap) - // Delete 10% of messages - delCount := s.messageCap / 10 + // Delete 10% of messages (and any overage if the cap was adjusted lower) + delCount := (s.messageCount - s.messageCap) + s.messageCap/10 stmt, err := s.preparedPruneStatement.Exec(s.messageCap / 10) if err != nil { log.Errorf("%v %q", stmt, err) @@ -229,5 +229,7 @@ func InitializeSqliteMessageStore(dbfile string, messageCap int, incMessageCount slms.messageCount = slms.MessagesCount() + slms.checkPruneMessages() + return slms, nil }