Changeset 16 in code for trunk/upstream.go


Ignore:
Timestamp:
Feb 6, 2020, 4:04:49 PM (5 years ago)
Author:
contact
Message:

Handle upstream RPL_MYINFO messages

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/upstream.go

    r14 r16  
    1111
    1212const (
    13         rpl_localusers = "265"
     13        rpl_localusers  = "265"
    1414        rpl_globalusers = "266"
    1515)
    1616
    1717type upstreamConn struct {
    18         net net.Conn
    19         irc *irc.Conn
    20         srv *Server
     18        upstream   *Upstream
     19        net        net.Conn
     20        irc        *irc.Conn
     21        srv        *Server
    2122        registered bool
     23
     24        serverName            string
     25        availableUserModes    string
     26        availableChannelModes string
     27        channelModesWithParam string
    2228}
    2329
     
    3238        case irc.RPL_WELCOME:
    3339                c.registered = true
    34         case irc.RPL_YOURHOST, irc.RPL_CREATED, irc.RPL_MYINFO:
     40                c.srv.Logger.Printf("Connection to %q registered", c.upstream.Addr)
     41        case irc.RPL_MYINFO:
     42                if len(msg.Params) < 5 {
     43                        return newNeedMoreParamsError(msg.Command)
     44                }
     45                c.serverName = msg.Params[1]
     46                c.availableUserModes = msg.Params[3]
     47                c.availableChannelModes = msg.Params[4]
     48                if len(msg.Params) > 5 {
     49                        c.channelModesWithParam = msg.Params[5]
     50                }
     51        case irc.RPL_YOURHOST, irc.RPL_CREATED:
    3552                // Ignore
    3653        case irc.RPL_LUSERCLIENT, irc.RPL_LUSEROP, irc.RPL_LUSERUNKNOWN, irc.RPL_LUSERCHANNELS, irc.RPL_LUSERME:
     
    5673        }
    5774
    58         c := upstreamConn{net: netConn, irc: irc.NewConn(netConn), srv: s}
     75        c := upstreamConn{
     76                upstream: upstream,
     77                net:      netConn,
     78                irc:      irc.NewConn(netConn),
     79                srv:      s,
     80        }
    5981        defer netConn.Close()
    6082
     
    84106
    85107                if err := c.handleMessage(msg); err != nil {
    86                         return err
     108                        c.srv.Logger.Printf("Failed to handle message %q from %q: %v", msg, upstream.Addr, err)
    87109                }
    88110        }
Note: See TracChangeset for help on using the changeset viewer.