diff options
author | Neil Alexander <neilalexander@users.noreply.github.com> | 2022-07-05 17:13:26 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-05 17:13:26 +0100 |
commit | 460dccf93d5eb77db00620f0ef5a4f1a91bbe7ae (patch) | |
tree | 0b20aa9974d5572aae3ec89e125bb8ef0031cb62 /federationapi | |
parent | c0f824d4375493127799eb3c3ecf0327838813d6 (diff) |
Hopefully fix read receipts timestamps (#2557)
This should avoid coercions between signed and unsigned ints which might fix problems like `sql: converting argument $5 type: uint64 values with high bit set are not supported`.
Diffstat (limited to 'federationapi')
-rw-r--r-- | federationapi/consumers/receipts.go | 2 | ||||
-rw-r--r-- | federationapi/producers/syncapi.go | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/federationapi/consumers/receipts.go b/federationapi/consumers/receipts.go index 9300451e..2c9d79bc 100644 --- a/federationapi/consumers/receipts.go +++ b/federationapi/consumers/receipts.go @@ -90,7 +90,7 @@ func (t *OutputReceiptConsumer) onMessage(ctx context.Context, msg *nats.Msg) bo return true } - timestamp, err := strconv.Atoi(msg.Header.Get("timestamp")) + timestamp, err := strconv.ParseUint(msg.Header.Get("timestamp"), 10, 64) if err != nil { // If the message was invalid, log it and move on to the next message in the stream log.WithError(err).Errorf("EDU output log: message parse failure") diff --git a/federationapi/producers/syncapi.go b/federationapi/producers/syncapi.go index e371baaa..43dd08dd 100644 --- a/federationapi/producers/syncapi.go +++ b/federationapi/producers/syncapi.go @@ -53,7 +53,7 @@ func (p *SyncAPIProducer) SendReceipt( m.Header.Set(jetstream.RoomID, roomID) m.Header.Set(jetstream.EventID, eventID) m.Header.Set("type", receiptType) - m.Header.Set("timestamp", strconv.Itoa(int(timestamp))) + m.Header.Set("timestamp", fmt.Sprintf("%d", timestamp)) log.WithFields(log.Fields{}).Tracef("Producing to topic '%s'", p.TopicReceiptEvent) _, err := p.JetStream.PublishMsg(m, nats.Context(ctx)) |