changes to client idle time counting

1. Remove leaveClientIdle (unused)
2. s/leaveClientActive/leaveClientIdle/
3. make ISON a leaveClientIdle command (some clients send it periodically
   if a /msg window is left open)
This commit is contained in:
Shivaram Lingamneni 2018-12-30 18:05:27 -05:00
parent ba2aacaf5b
commit a4b3fb0e83
2 changed files with 20 additions and 27 deletions

View File

@ -332,12 +332,6 @@ func (client *Client) Active() {
client.atime = time.Now()
}
// Touch marks the client as alive (as it it has a connection to us and we
// can receive messages from it).
func (client *Client) Touch() {
client.idletimer.Touch()
}
// Ping sends the client a PING message.
func (client *Client) Ping() {
client.Send(nil, "", "PING", client.nick)

View File

@ -12,13 +12,12 @@ import (
// Command represents a command accepted from a client.
type Command struct {
handler func(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool
oper bool
usablePreReg bool
leaveClientActive bool // if true, leaves the client active time alone. reversed because we can't default a struct element to True
leaveClientIdle bool
minParams int
capabs []string
handler func(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool
oper bool
usablePreReg bool
leaveClientIdle bool // if true, leaves the client active time alone
minParams int
capabs []string
}
// Run runs this command with the given client/message.
@ -54,11 +53,10 @@ func (cmd *Command) Run(server *Server, client *Client, msg ircmsg.IrcMessage) b
server.tryRegister(client)
}
if !cmd.leaveClientIdle {
client.Touch()
}
// most servers do this only for PING/PONG, but we'll do it for any command:
client.idletimer.Touch()
if !cmd.leaveClientActive {
if !cmd.leaveClientIdle {
client.Active()
}
@ -118,8 +116,9 @@ func init() {
minParams: 2,
},
"ISON": {
handler: isonHandler,
minParams: 1,
handler: isonHandler,
minParams: 1,
leaveClientIdle: true,
},
"JOIN": {
handler: joinHandler,
@ -200,16 +199,16 @@ func init() {
minParams: 1,
},
"PING": {
handler: pingHandler,
usablePreReg: true,
minParams: 1,
leaveClientActive: true,
handler: pingHandler,
usablePreReg: true,
minParams: 1,
leaveClientIdle: true,
},
"PONG": {
handler: pongHandler,
usablePreReg: true,
minParams: 1,
leaveClientActive: true,
handler: pongHandler,
usablePreReg: true,
minParams: 1,
leaveClientIdle: true,
},
"PRIVMSG": {
handler: privmsgHandler,