- Timestamp:
- Apr 6, 2020, 4:31:48 PM (5 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/downstream.go
r230 r231 67 67 network *network // can be nil 68 68 69 ringConsumers map[*network]*RingConsumer70 69 ourMessages map[*irc.Message]struct{} 71 70 caps map[string]bool … … 80 79 logger := &prefixLogger{srv.Logger, fmt.Sprintf("downstream %q: ", netConn.RemoteAddr())} 81 80 dc := &downstreamConn{ 82 conn: *newConn(srv, netConn, logger), 83 id: id, 84 ringConsumers: make(map[*network]*RingConsumer), 85 ourMessages: make(map[*irc.Message]struct{}), 86 caps: make(map[string]bool), 81 conn: *newConn(srv, netConn, logger), 82 id: id, 83 ourMessages: make(map[*irc.Message]struct{}), 84 caps: make(map[string]bool), 87 85 } 88 86 dc.hostname = netConn.RemoteAddr().String() … … 684 682 685 683 consumer := net.ring.NewConsumer(seqPtr) 686 dc.ringConsumers[net] = consumer687 684 688 685 // TODO: this means all history is lost when trying to send it while the -
trunk/ring.go
r229 r231 35 35 r.buffer[i] = msg 36 36 r.cur++ 37 } 38 39 func (r *Ring) Cur() uint64 { 40 return r.cur 37 41 } 38 42 -
trunk/upstream.go
r227 r231 1368 1368 1369 1369 uc.forEachDownstream(func(dc *downstreamConn) { 1370 dc.sendFromUpstream( dc.ringConsumers[uc.network].Consume(), uc)1370 dc.sendFromUpstream(msg, uc) 1371 1371 }) 1372 1372 } -
trunk/user.go
r228 r231 304 304 dc := e.dc 305 305 306 for net, rc := range dc.ringConsumers{307 seq := rc.Close()306 dc.forEachNetwork(func(net *network) { 307 seq := net.ring.Cur() 308 308 net.history[dc.clientName] = seq 309 } 309 }) 310 310 311 311 for i := range u.downstreamConns { … … 350 350 } 351 351 352 u.forEachDownstream(func(dc *downstreamConn) {353 if dc.network == nil {354 dc.ringConsumers[network] = network.ring.NewConsumer(nil)355 }356 })357 358 352 u.networks = append(u.networks, network) 359 353 … … 376 370 dc.Close() 377 371 } 378 delete(dc.ringConsumers, net)379 372 }) 380 373
Note:
See TracChangeset
for help on using the changeset viewer.