Changeset 452 in code
- Timestamp:
- Feb 10, 2021, 12:48:41 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/downstream.go
r451 r452 980 980 981 981 func (dc *downstreamConn) sendNetworkBacklog(net *network) { 982 for target := range net.delivered { 983 dc.sendTargetBacklog(net, target) 984 } 985 } 986 987 func (dc *downstreamConn) sendTargetBacklog(net *network, target string) { 982 988 if dc.caps["draft/chathistory"] || dc.user.msgStore == nil { 983 989 return 984 990 } 985 for target, delivered := range net.delivered { 986 if ch, ok := net.channels[target]; ok && ch.Detached { 991 if ch, ok := net.channels[target]; ok && ch.Detached { 992 return 993 } 994 delivered, ok := net.delivered[target] 995 if !ok { 996 return 997 } 998 lastDelivered, ok := delivered[dc.clientName] 999 if !ok { 1000 return 1001 } 1002 1003 limit := 4000 1004 history, err := dc.user.msgStore.LoadLatestID(net, target, lastDelivered, limit) 1005 if err != nil { 1006 dc.logger.Printf("failed to send implicit history for %q: %v", target, err) 1007 return 1008 } 1009 1010 batchRef := "history" 1011 if dc.caps["batch"] { 1012 dc.SendMessage(&irc.Message{ 1013 Prefix: dc.srv.prefix(), 1014 Command: "BATCH", 1015 Params: []string{"+" + batchRef, "chathistory", dc.marshalEntity(net, target)}, 1016 }) 1017 } 1018 1019 for _, msg := range history { 1020 if !dc.messageSupportsHistory(msg) { 987 1021 continue 988 1022 } 989 1023 990 lastDelivered, ok := delivered[dc.clientName]991 if !ok {992 continue993 }994 995 limit := 4000996 history, err := dc.user.msgStore.LoadLatestID(net, target, lastDelivered, limit)997 if err != nil {998 dc.logger.Printf("failed to send implicit history for %q: %v", target, err)999 continue1000 }1001 1002 batchRef := "history"1003 1024 if dc.caps["batch"] { 1004 dc.SendMessage(&irc.Message{ 1005 Prefix: dc.srv.prefix(), 1006 Command: "BATCH", 1007 Params: []string{"+" + batchRef, "chathistory", dc.marshalEntity(net, target)}, 1008 }) 1009 } 1010 1011 for _, msg := range history { 1012 if !dc.messageSupportsHistory(msg) { 1013 continue 1014 } 1015 1016 if dc.caps["batch"] { 1017 msg.Tags["batch"] = irc.TagValue(batchRef) 1018 } 1019 dc.SendMessage(dc.marshalMessage(msg, net)) 1020 } 1021 1022 if dc.caps["batch"] { 1023 dc.SendMessage(&irc.Message{ 1024 Prefix: dc.srv.prefix(), 1025 Command: "BATCH", 1026 Params: []string{"-" + batchRef}, 1027 }) 1028 } 1025 msg.Tags["batch"] = irc.TagValue(batchRef) 1026 } 1027 dc.SendMessage(dc.marshalMessage(msg, net)) 1028 } 1029 1030 if dc.caps["batch"] { 1031 dc.SendMessage(&irc.Message{ 1032 Prefix: dc.srv.prefix(), 1033 Command: "BATCH", 1034 Params: []string{"-" + batchRef}, 1035 }) 1029 1036 } 1030 1037 }
Note:
See TracChangeset
for help on using the changeset viewer.