Changeset 495 in code
- Timestamp:
- Apr 13, 2021, 3:49:37 PM (4 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/downstream.go
r488 r495 987 987 if firstClient { 988 988 net.delivered.ForEachTarget(func(target string) { 989 dc.sendTargetBacklog(net, target) 990 }) 991 } 992 993 // Fast-forward history to last message 994 net.delivered.ForEachTarget(func(target string) { 995 ch := net.channels.Value(target) 996 if ch != nil && ch.Detached { 997 return 998 } 999 1000 targetCM := net.casemap(target) 1001 lastID, err := dc.user.msgStore.LastMsgID(net, targetCM, time.Now()) 1002 if err != nil { 1003 dc.logger.Printf("failed to get last message ID: %v", err) 1004 return 1005 } 1006 1007 net.delivered.StoreID(target, dc.clientName, lastID) 1008 }) 989 lastDelivered := net.delivered.LoadID(target, dc.clientName) 990 if lastDelivered == "" { 991 return 992 } 993 994 dc.sendTargetBacklog(net, target, lastDelivered) 995 996 // Fast-forward history to last message 997 targetCM := net.casemap(target) 998 lastID, err := dc.user.msgStore.LastMsgID(net, targetCM, time.Now()) 999 if err != nil { 1000 dc.logger.Printf("failed to get last message ID: %v", err) 1001 return 1002 } 1003 net.delivered.StoreID(target, dc.clientName, lastID) 1004 }) 1005 } 1009 1006 }) 1010 1007 … … 1026 1023 } 1027 1024 1028 func (dc *downstreamConn) sendTargetBacklog(net *network, target string) {1025 func (dc *downstreamConn) sendTargetBacklog(net *network, target, msgID string) { 1029 1026 if dc.caps["draft/chathistory"] || dc.user.msgStore == nil { 1030 1027 return … … 1034 1031 } 1035 1032 1036 lastDelivered := net.delivered.LoadID(target, dc.clientName)1037 if lastDelivered == "" {1038 return1039 }1040 1041 1033 limit := 4000 1042 1034 targetCM := net.casemap(target) 1043 history, err := dc.user.msgStore.LoadLatestID(net, targetCM, lastDelivered, limit)1035 history, err := dc.user.msgStore.LoadLatestID(net, targetCM, msgID, limit) 1044 1036 if err != nil { 1045 dc.logger.Printf("failed to send implicit historyfor %q: %v", target, err)1037 dc.logger.Printf("failed to send backlog for %q: %v", target, err) 1046 1038 return 1047 1039 } -
trunk/user.go
r494 r495 277 277 } 278 278 279 dc.sendTargetBacklog(net, ch.Name) 279 lastDelivered := net.delivered.LoadID(ch.Name, dc.clientName) 280 if lastDelivered == "" { 281 return 282 } 283 284 dc.sendTargetBacklog(net, ch.Name, lastDelivered) 280 285 }) 281 286 }
Note:
See TracChangeset
for help on using the changeset viewer.