mirror of https://github.com/fluffle/goirc
minor handler bug fixes in 433 and MODE
* sending NICK after 433 -- but before 001 from server -- does not result in a confirmation NICK message back from server, so we need to change Conn.Me.Nick in the 433 handler in this case. * Nick MODE changes are transmitted back to us in line.Text not line.Args[1], so make sure error messages use this when needed.
This commit is contained in:
parent
2b1d7068b1
commit
38f1cd9388
|
@ -126,6 +126,12 @@ func (conn *Conn) setupEvents() {
|
||||||
conn.AddHandler("433", func(conn *Conn, line *Line) {
|
conn.AddHandler("433", func(conn *Conn, line *Line) {
|
||||||
// Args[1] is the new nick we were attempting to acquire
|
// Args[1] is the new nick we were attempting to acquire
|
||||||
conn.Nick(line.Args[1] + "_")
|
conn.Nick(line.Args[1] + "_")
|
||||||
|
// if this is happening before we're properly connected (i.e. the nick
|
||||||
|
// we sent in the initial NICK command is in use) we will not receive
|
||||||
|
// a NICK message to confirm our change of nick, so ReNick here...
|
||||||
|
if !conn.connected && line.Args[1] == conn.Me.Nick {
|
||||||
|
conn.Me.ReNick(line.Args[1] + "_")
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
// Handler NICK messages to inform us about nick changes
|
// Handler NICK messages to inform us about nick changes
|
||||||
|
@ -283,7 +289,7 @@ func (conn *Conn) setupEvents() {
|
||||||
} else if n := conn.GetNick(line.Args[0]); n != nil {
|
} else if n := conn.GetNick(line.Args[0]); n != nil {
|
||||||
// nick mode change, should be us
|
// nick mode change, should be us
|
||||||
if n != conn.Me {
|
if n != conn.Me {
|
||||||
conn.error("irc.MODE(): buh? recieved MODE %s for (non-me) nick %s", line.Args[1], n.Nick)
|
conn.error("irc.MODE(): buh? recieved MODE %s for (non-me) nick %s", line.Text, n.Nick)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
var modeop bool // true => add mode, false => remove mode
|
var modeop bool // true => add mode, false => remove mode
|
||||||
|
@ -306,7 +312,11 @@ func (conn *Conn) setupEvents() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
conn.error("irc.MODE(): buh? not sure what to do with MODE %s %s", line.Args[0], line.Args[1])
|
if line.Text != "" {
|
||||||
|
conn.error("irc.MODE(): buh? not sure what to do with nick MODE %s %s", line.Args[0], line.Text)
|
||||||
|
} else {
|
||||||
|
conn.error("irc.MODE(): buh? not sure what to do with chan MODE %s", strings.Join(line.Args, " "))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue