Changeset 93 in code for trunk


Ignore:
Timestamp:
Mar 13, 2020, 11:06:02 AM (5 years ago)
Author:
contact
Message:

Add support for upstream PASS command

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/db.go

    r90 r93  
    1919        Username string
    2020        Realname string
     21        Pass     string
    2122}
    2223
     
    9091        defer db.lock.RUnlock()
    9192
    92         rows, err := db.db.Query("SELECT id, addr, nick, username, realname FROM Network WHERE user = ?", username)
     93        rows, err := db.db.Query("SELECT id, addr, nick, username, realname, pass FROM Network WHERE user = ?", username)
    9394        if err != nil {
    9495                return nil, err
     
    99100        for rows.Next() {
    100101                var net Network
    101                 var username, realname *string
    102                 if err := rows.Scan(&net.ID, &net.Addr, &net.Nick, &username, &realname); err != nil {
     102                var username, realname, pass *string
     103                if err := rows.Scan(&net.ID, &net.Addr, &net.Nick, &username, &realname, &pass); err != nil {
    103104                        return nil, err
    104105                }
     
    108109                if realname != nil {
    109110                        net.Realname = *realname
     111                }
     112                if pass != nil {
     113                        net.Pass = *pass
    110114                }
    111115                networks = append(networks, net)
     
    122126        defer db.lock.Unlock()
    123127
    124         var netUsername, netRealname *string
     128        var netUsername, realname, pass *string
    125129        if network.Username != "" {
    126130                netUsername = &network.Username
    127131        }
    128132        if network.Realname != "" {
    129                 netRealname = &network.Realname
     133                realname = &network.Realname
     134        }
     135        if network.Pass != "" {
     136                pass = &network.Pass
    130137        }
    131138
    132139        var err error
    133140        if network.ID != 0 {
    134                 _, err = db.db.Exec("UPDATE Network SET addr = ?, nick = ?, username = ?, realname = ? WHERE id = ?", network.Addr, network.Nick, netUsername, netRealname, network.ID)
     141                _, err = db.db.Exec(`UPDATE Network
     142                        SET addr = ?, nick = ?, username = ?, realname = ?, pass = ?
     143                        WHERE id = ?`,
     144                        network.Addr, network.Nick, netUsername, realname, pass, network.ID)
    135145        } else {
    136146                var res sql.Result
    137                 res, err = db.db.Exec("INSERT INTO Network(user, addr, nick, username, realname) VALUES (?, ?, ?, ?, ?)", username, network.Addr, network.Nick, netUsername, netRealname)
     147                res, err = db.db.Exec(`INSERT INTO Network(user, addr, nick, username,
     148                                realname, pass)
     149                        VALUES (?, ?, ?, ?, ?, ?)`,
     150                        username, network.Addr, network.Nick, netUsername, realname, pass)
    138151                if err != nil {
    139152                        return err
  • trunk/downstream.go

    r91 r93  
    428428                Params:  []string{dc.nick, dc.srv.Hostname, "jounce", "aiwroO", "OovaimnqpsrtklbeI"},
    429429        })
     430        // TODO: RPL_ISUPPORT
    430431        dc.SendMessage(&irc.Message{
    431432                Prefix:  dc.srv.prefix(),
  • trunk/schema.sql

    r87 r93  
    1111        username VARCHAR(255),
    1212        realname VARCHAR(255),
     13        pass VARCHAR(255),
    1314        FOREIGN KEY(user) REFERENCES User(username),
    1415        UNIQUE(user, addr, nick)
  • trunk/upstream.go

    r92 r93  
    173173                        return newNeedMoreParamsError(msg.Command)
    174174                }
    175                 caps := strings.Fields(msg.Params[len(msg.Params) - 1])
    176                 more := msg.Params[len(msg.Params) - 2] == "*"
     175                caps := strings.Fields(msg.Params[len(msg.Params)-1])
     176                more := msg.Params[len(msg.Params)-2] == "*"
    177177
    178178                for _, s := range caps {
     
    461461        })
    462462
     463        if uc.network.Pass != "" {
     464                uc.SendMessage(&irc.Message{
     465                        Command: "PASS",
     466                        Params:  []string{uc.network.Pass},
     467                })
     468        }
     469
    463470        uc.SendMessage(&irc.Message{
    464471                Command: "NICK",
Note: See TracChangeset for help on using the changeset viewer.