Changeset 40 in code for trunk/upstream.go


Ignore:
Timestamp:
Feb 7, 2020, 10:56:36 AM (5 years ago)
Author:
contact
Message:

Add user.forEachDownstream

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/upstream.go

    r37 r40  
    126126                        }
    127127
    128                         c.srv.lock.Lock()
    129                         for _, dc := range c.srv.downstreamConns {
     128                        c.user.forEachDownstream(func(dc *downstreamConn) {
    130129                                dc.messages <- msg
    131                         }
    132                         c.srv.lock.Unlock()
     130                        })
    133131                }
    134132        case "NOTICE":
     
    175173                }
    176174
    177                 c.srv.lock.Lock()
    178                 for _, dc := range c.srv.downstreamConns {
     175                c.user.forEachDownstream(func(dc *downstreamConn) {
    179176                        dc.messages <- msg
    180                 }
    181                 c.srv.lock.Unlock()
     177                })
    182178        case "PART":
    183179                if len(msg.Params) < 1 {
     
    198194                }
    199195
    200                 c.srv.lock.Lock()
    201                 for _, dc := range c.srv.downstreamConns {
     196                c.user.forEachDownstream(func(dc *downstreamConn) {
    202197                        dc.messages <- msg
    203                 }
    204                 c.srv.lock.Unlock()
     198                })
    205199        case irc.RPL_TOPIC, irc.RPL_NOTOPIC:
    206200                if len(msg.Params) < 3 {
     
    276270                ch.complete = true
    277271
    278                 c.srv.lock.Lock()
    279                 for _, dc := range c.srv.downstreamConns {
     272                c.user.forEachDownstream(func(dc *downstreamConn) {
    280273                        forwardChannel(dc, ch)
    281                 }
    282                 c.srv.lock.Unlock()
     274                })
    283275        case "PRIVMSG":
    284                 c.srv.lock.Lock()
    285                 for _, dc := range c.srv.downstreamConns {
     276                c.user.forEachDownstream(func(dc *downstreamConn) {
    286277                        dc.messages <- msg
    287                 }
    288                 c.srv.lock.Unlock()
     278                })
    289279        case irc.RPL_YOURHOST, irc.RPL_CREATED:
    290280                // Ignore
Note: See TracChangeset for help on using the changeset viewer.