From 4222175cb9005b26a5a001cf75a3fbc69b4bb2b4 Mon Sep 17 00:00:00 2001 From: Neil Alexander Date: Thu, 17 Dec 2020 17:40:06 +0000 Subject: [PATCH] Fix invites maybe --- syncapi/consumers/roomserver.go | 6 +++--- syncapi/storage/shared/syncserver.go | 20 +++++++++----------- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/syncapi/consumers/roomserver.go b/syncapi/consumers/roomserver.go index dac825c3d..3b1f1582a 100644 --- a/syncapi/consumers/roomserver.go +++ b/syncapi/consumers/roomserver.go @@ -275,14 +275,14 @@ func (s *OutputRoomEventConsumer) onNewInviteEvent( }).Panicf("roomserver output log: write invite failure") return nil } - s.notifier.OnNewInvite(types.StreamingToken{PDUPosition: pduPos}, *msg.Event.StateKey()) + s.notifier.OnNewInvite(types.StreamingToken{InvitePosition: pduPos}, *msg.Event.StateKey()) return nil } func (s *OutputRoomEventConsumer) onRetireInviteEvent( ctx context.Context, msg api.OutputRetireInviteEvent, ) error { - sp, err := s.db.RetireInviteEvent(ctx, msg.EventID) + pduPos, err := s.db.RetireInviteEvent(ctx, msg.EventID) if err != nil { // panic rather than continue with an inconsistent database log.WithFields(log.Fields{ @@ -293,7 +293,7 @@ func (s *OutputRoomEventConsumer) onRetireInviteEvent( } // Notify any active sync requests that the invite has been retired. // Invites share the same stream counter as PDUs - s.notifier.OnNewEvent(nil, "", []string{msg.TargetUserID}, types.StreamingToken{PDUPosition: sp}) + s.notifier.OnNewInvite(types.StreamingToken{InvitePosition: pduPos}, msg.TargetUserID) return nil } diff --git a/syncapi/storage/shared/syncserver.go b/syncapi/storage/shared/syncserver.go index fb79a50fc..e703c9e7d 100644 --- a/syncapi/storage/shared/syncserver.go +++ b/syncapi/storage/shared/syncserver.go @@ -503,7 +503,6 @@ func (d *Database) addPDUDeltaToResponse( ctx context.Context, device userapi.Device, r types.Range, - ir types.Range, numRecentEventsPerRoom int, wantFullState bool, res *types.Response, @@ -545,11 +544,6 @@ func (d *Database) addPDUDeltaToResponse( } } - // TODO: This should be done in getStateDeltas - if err = d.addInvitesToResponse(ctx, txn, device.UserID, ir, res); err != nil { - return nil, fmt.Errorf("d.addInvitesToResponse: %w", err) - } - succeeded = true return joinedRoomIDs, nil } @@ -704,12 +698,8 @@ func (d *Database) IncrementalSync( From: fromPos.PDUPosition, To: toPos.PDUPosition, } - ir := types.Range{ - From: fromPos.InvitePosition, - To: toPos.InvitePosition, - } joinedRoomIDs, err = d.addPDUDeltaToResponse( - ctx, device, r, ir, numRecentEventsPerRoom, wantFullState, res, + ctx, device, r, numRecentEventsPerRoom, wantFullState, res, ) if err != nil { return nil, fmt.Errorf("d.addPDUDeltaToResponse: %w", err) @@ -732,6 +722,14 @@ func (d *Database) IncrementalSync( return nil, fmt.Errorf("d.addEDUDeltaToResponse: %w", err) } + ir := types.Range{ + From: fromPos.InvitePosition, + To: toPos.InvitePosition, + } + if err = d.addInvitesToResponse(ctx, nil, device.UserID, ir, res); err != nil { + return nil, fmt.Errorf("d.addInvitesToResponse: %w", err) + } + return res, nil }