Changeset 37 in code for trunk/downstream.go


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

Per-user connections

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/downstream.go

    r31 r37  
    4747
    4848        registered bool
     49        user       *user
    4950        closed     bool
    5051        nick       string
     
    167168
    168169func (c *downstreamConn) register() error {
     170        c.srv.lock.Lock()
     171        u, ok := c.srv.users[c.username]
     172        c.srv.lock.Unlock()
     173
     174        if !ok {
     175                c.messages <- &irc.Message{
     176                        Prefix:  c.srv.prefix(),
     177                        Command: irc.ERR_PASSWDMISMATCH,
     178                        Params:  []string{"*", "Invalid username or password"},
     179                }
     180                return nil
     181        }
     182
    169183        c.registered = true
     184        c.user = u
    170185
    171186        c.messages <- &irc.Message{
     
    174189                Params:  []string{c.nick, "Welcome to jounce, " + c.nick},
    175190        }
    176 
    177191        c.messages <- &irc.Message{
    178192                Prefix:  c.srv.prefix(),
     
    180194                Params:  []string{c.nick, "Your host is " + c.srv.Hostname},
    181195        }
    182 
    183196        c.messages <- &irc.Message{
    184197                Prefix:  c.srv.prefix(),
     
    186199                Params:  []string{c.nick, "This server was created <datetime>"}, // TODO
    187200        }
    188 
    189201        c.messages <- &irc.Message{
    190202                Prefix:  c.srv.prefix(),
     
    192204                Params:  []string{c.nick, c.srv.Hostname, "jounce", "aiwroO", "OovaimnqpsrtklbeI"},
    193205        }
    194 
    195206        c.messages <- &irc.Message{
    196207                Prefix:  c.srv.prefix(),
     
    199210        }
    200211
    201         c.srv.lock.Lock()
    202         for _, uc := range c.srv.upstreamConns {
     212        u.lock.Lock()
     213        for _, uc := range u.upstreamConns {
    203214                // TODO: fix races accessing upstream connection data
    204215                if !uc.registered {
     
    211222                }
    212223        }
    213         c.srv.lock.Unlock()
     224        u.lock.Unlock()
    214225
    215226        return nil
Note: See TracChangeset for help on using the changeset viewer.