Fix infinite loop on fresh server

This commit is contained in:
Sarah Jamie Lewis 2021-06-04 10:44:26 -07:00
parent 57ea60a4b1
commit 1aa4d13204
2 changed files with 10 additions and 9 deletions

View File

@ -109,7 +109,7 @@ func (ta *TokenboardServer) postMessageRequest(pr groups.PostRequest) {
if err := ta.TokenService.SpendToken(pr.Token, append(pr.EGM.ToBytes(), ta.connection.ID().Hostname()...)); err == nil { if err := ta.TokenService.SpendToken(pr.Token, append(pr.EGM.ToBytes(), ta.connection.ID().Hostname()...)); err == nil {
// ignore messages with no signatures // ignore messages with no signatures
if len(pr.EGM.Signature) == 0 { if len(pr.EGM.Signature) == 0 {
return return
} }

View File

@ -72,7 +72,15 @@ func (s SqliteMessageStore) FetchMessagesFrom(signature []byte) []*groups.Encryp
return nil return nil
} }
defer rows.Close() defer rows.Close()
return s.compileRows(rows) messages := s.compileRows(rows)
// if we don't have *any* messages then either the signature next existed
// or the server purged it...either way treat this as a full sync...
if len(messages) < 1 {
return s.FetchMessages()
}
return messages
} }
func (s *SqliteMessageStore) compileRows(rows *sql.Rows) []*groups.EncryptedGroupMessage { func (s *SqliteMessageStore) compileRows(rows *sql.Rows) []*groups.EncryptedGroupMessage {
@ -92,13 +100,6 @@ func (s *SqliteMessageStore) compileRows(rows *sql.Rows) []*groups.EncryptedGrou
Ciphertext: rawCiphertext, Ciphertext: rawCiphertext,
}) })
} }
// if we don't have *any* messages then either the signature next existed
// or the server purged it...either way treat this as a full sync...
if len(messages) < 1 {
return s.FetchMessages()
}
return messages return messages
} }