mirror of
https://github.com/ergochat/ergo.git
synced 2024-11-10 22:19:31 +01:00
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:
parent
ba2aacaf5b
commit
a4b3fb0e83
@ -332,12 +332,6 @@ func (client *Client) Active() {
|
|||||||
client.atime = time.Now()
|
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.
|
// Ping sends the client a PING message.
|
||||||
func (client *Client) Ping() {
|
func (client *Client) Ping() {
|
||||||
client.Send(nil, "", "PING", client.nick)
|
client.Send(nil, "", "PING", client.nick)
|
||||||
|
@ -12,13 +12,12 @@ import (
|
|||||||
|
|
||||||
// Command represents a command accepted from a client.
|
// Command represents a command accepted from a client.
|
||||||
type Command struct {
|
type Command struct {
|
||||||
handler func(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool
|
handler func(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool
|
||||||
oper bool
|
oper bool
|
||||||
usablePreReg 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 // if true, leaves the client active time alone
|
||||||
leaveClientIdle bool
|
minParams int
|
||||||
minParams int
|
capabs []string
|
||||||
capabs []string
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Run runs this command with the given client/message.
|
// 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)
|
server.tryRegister(client)
|
||||||
}
|
}
|
||||||
|
|
||||||
if !cmd.leaveClientIdle {
|
// most servers do this only for PING/PONG, but we'll do it for any command:
|
||||||
client.Touch()
|
client.idletimer.Touch()
|
||||||
}
|
|
||||||
|
|
||||||
if !cmd.leaveClientActive {
|
if !cmd.leaveClientIdle {
|
||||||
client.Active()
|
client.Active()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -118,8 +116,9 @@ func init() {
|
|||||||
minParams: 2,
|
minParams: 2,
|
||||||
},
|
},
|
||||||
"ISON": {
|
"ISON": {
|
||||||
handler: isonHandler,
|
handler: isonHandler,
|
||||||
minParams: 1,
|
minParams: 1,
|
||||||
|
leaveClientIdle: true,
|
||||||
},
|
},
|
||||||
"JOIN": {
|
"JOIN": {
|
||||||
handler: joinHandler,
|
handler: joinHandler,
|
||||||
@ -200,16 +199,16 @@ func init() {
|
|||||||
minParams: 1,
|
minParams: 1,
|
||||||
},
|
},
|
||||||
"PING": {
|
"PING": {
|
||||||
handler: pingHandler,
|
handler: pingHandler,
|
||||||
usablePreReg: true,
|
usablePreReg: true,
|
||||||
minParams: 1,
|
minParams: 1,
|
||||||
leaveClientActive: true,
|
leaveClientIdle: true,
|
||||||
},
|
},
|
||||||
"PONG": {
|
"PONG": {
|
||||||
handler: pongHandler,
|
handler: pongHandler,
|
||||||
usablePreReg: true,
|
usablePreReg: true,
|
||||||
minParams: 1,
|
minParams: 1,
|
||||||
leaveClientActive: true,
|
leaveClientIdle: true,
|
||||||
},
|
},
|
||||||
"PRIVMSG": {
|
"PRIVMSG": {
|
||||||
handler: privmsgHandler,
|
handler: privmsgHandler,
|
||||||
|
Loading…
Reference in New Issue
Block a user