mirror of
https://github.com/ergochat/ergo.git
synced 2025-02-16 21:50:39 +01:00
handlers: Make sure all functions have appropriate comments
This commit is contained in:
parent
52e3dde77a
commit
ca6a162696
@ -34,7 +34,7 @@ import (
|
|||||||
"github.com/tidwall/buntdb"
|
"github.com/tidwall/buntdb"
|
||||||
)
|
)
|
||||||
|
|
||||||
// accHandler parses the ACC command.
|
// ACC [REGISTER|VERIFY] ...
|
||||||
func accHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
func accHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
||||||
subcommand := strings.ToLower(msg.Params[0])
|
subcommand := strings.ToLower(msg.Params[0])
|
||||||
|
|
||||||
@ -49,7 +49,7 @@ func accHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// accRegisterHandler parses the ACC REGISTER command.
|
// ACC REGISTER <accountname> [callback_namespace:]<callback> [cred_type] :<credential>
|
||||||
func accRegisterHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
func accRegisterHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
||||||
// make sure reg is enabled
|
// make sure reg is enabled
|
||||||
if !server.accountRegistration.Enabled {
|
if !server.accountRegistration.Enabled {
|
||||||
@ -258,7 +258,7 @@ func accRegisterHandler(server *Server, client *Client, msg ircmsg.IrcMessage) b
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// authenticateHandler parses the AUTHENTICATE command (for SASL authentication).
|
// AUTHENTICATE [<mechanism>|<data>|*]
|
||||||
func authenticateHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
func authenticateHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
||||||
// sasl abort
|
// sasl abort
|
||||||
if !server.accountAuthenticationEnabled || len(msg.Params) == 1 && msg.Params[0] == "*" {
|
if !server.accountAuthenticationEnabled || len(msg.Params) == 1 && msg.Params[0] == "*" {
|
||||||
@ -346,7 +346,7 @@ func authenticateHandler(server *Server, client *Client, msg ircmsg.IrcMessage)
|
|||||||
return exiting
|
return exiting
|
||||||
}
|
}
|
||||||
|
|
||||||
// authPlainHandler parses the SASL PLAIN mechanism.
|
// AUTHENTICATE PLAIN
|
||||||
func authPlainHandler(server *Server, client *Client, mechanism string, value []byte) bool {
|
func authPlainHandler(server *Server, client *Client, mechanism string, value []byte) bool {
|
||||||
splitValue := bytes.Split(value, []byte{'\000'})
|
splitValue := bytes.Split(value, []byte{'\000'})
|
||||||
|
|
||||||
@ -415,7 +415,7 @@ func authPlainHandler(server *Server, client *Client, mechanism string, value []
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// authExternalHandler parses the SASL EXTERNAL mechanism.
|
// AUTHENTICATE EXTERNAL
|
||||||
func authExternalHandler(server *Server, client *Client, mechanism string, value []byte) bool {
|
func authExternalHandler(server *Server, client *Client, mechanism string, value []byte) bool {
|
||||||
if client.certfp == "" {
|
if client.certfp == "" {
|
||||||
client.Send(nil, server.name, ERR_SASLFAIL, client.nick, client.t("SASL authentication failed, you are not connecting with a certificate"))
|
client.Send(nil, server.name, ERR_SASLFAIL, client.nick, client.t("SASL authentication failed, you are not connecting with a certificate"))
|
||||||
@ -574,13 +574,13 @@ func capHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// csHandler handles the /CS and /CHANSERV commands
|
// CHANSERV [...]
|
||||||
func csHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
func csHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
||||||
server.chanservPrivmsgHandler(client, strings.Join(msg.Params, " "))
|
server.chanservPrivmsgHandler(client, strings.Join(msg.Params, " "))
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// DEBUG GCSTATS/NUMGOROUTINE/etc
|
// DEBUG <subcmd>
|
||||||
func debugHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
func debugHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
||||||
if !client.flags[modes.Operator] {
|
if !client.flags[modes.Operator] {
|
||||||
return false
|
return false
|
||||||
@ -842,7 +842,7 @@ func dlineHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
|||||||
return killClient
|
return killClient
|
||||||
}
|
}
|
||||||
|
|
||||||
// helpHandler returns the appropriate help for the given query.
|
// HELP [<query>]
|
||||||
func helpHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
func helpHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
||||||
argument := strings.ToLower(strings.TrimSpace(strings.Join(msg.Params, " ")))
|
argument := strings.ToLower(strings.TrimSpace(strings.Join(msg.Params, " ")))
|
||||||
|
|
||||||
@ -1399,7 +1399,7 @@ func modeHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
|||||||
return umodeHandler(server, client, msg)
|
return umodeHandler(server, client, msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
// MODE <target> [<modestring> [<mode arguments>...]]
|
// MODE <channel> [<modestring> [<mode arguments>...]]
|
||||||
func cmodeHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
func cmodeHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
||||||
channelName, err := CasefoldChannel(msg.Params[0])
|
channelName, err := CasefoldChannel(msg.Params[0])
|
||||||
channel := server.channels.Get(channelName)
|
channel := server.channels.Get(channelName)
|
||||||
@ -1460,7 +1460,7 @@ func cmodeHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// MODE <target> [<modestring> [<mode arguments>...]]
|
// MODE <client> [<modestring> [<mode arguments>...]]
|
||||||
func umodeHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
func umodeHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
||||||
nickname, err := CasefoldName(msg.Params[0])
|
nickname, err := CasefoldName(msg.Params[0])
|
||||||
target := server.clients.Get(nickname)
|
target := server.clients.Get(nickname)
|
||||||
@ -1517,6 +1517,7 @@ func umodeHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MONITOR <subcmd> [params...]
|
||||||
func monitorHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
func monitorHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
||||||
handler, exists := metadataSubcommands[strings.ToLower(msg.Params[0])]
|
handler, exists := metadataSubcommands[strings.ToLower(msg.Params[0])]
|
||||||
|
|
||||||
@ -1528,6 +1529,7 @@ func monitorHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool
|
|||||||
return handler(server, client, msg)
|
return handler(server, client, msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MONITOR - <target>{,<target>}
|
||||||
func monitorRemoveHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
func monitorRemoveHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
||||||
if len(msg.Params) < 2 {
|
if len(msg.Params) < 2 {
|
||||||
client.Send(nil, server.name, ERR_NEEDMOREPARAMS, client.Nick(), msg.Command, client.t("Not enough parameters"))
|
client.Send(nil, server.name, ERR_NEEDMOREPARAMS, client.Nick(), msg.Command, client.t("Not enough parameters"))
|
||||||
@ -1546,6 +1548,7 @@ func monitorRemoveHandler(server *Server, client *Client, msg ircmsg.IrcMessage)
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MONITOR + <target>{,<target>}
|
||||||
func monitorAddHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
func monitorAddHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
||||||
if len(msg.Params) < 2 {
|
if len(msg.Params) < 2 {
|
||||||
client.Send(nil, server.name, ERR_NEEDMOREPARAMS, client.Nick(), msg.Command, client.t("Not enough parameters"))
|
client.Send(nil, server.name, ERR_NEEDMOREPARAMS, client.Nick(), msg.Command, client.t("Not enough parameters"))
|
||||||
@ -1596,11 +1599,13 @@ func monitorAddHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bo
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MONITOR C
|
||||||
func monitorClearHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
func monitorClearHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
||||||
server.monitorManager.RemoveAll(client)
|
server.monitorManager.RemoveAll(client)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MONITOR L
|
||||||
func monitorListHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
func monitorListHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
||||||
monitorList := server.monitorManager.List(client)
|
monitorList := server.monitorManager.List(client)
|
||||||
|
|
||||||
@ -1623,6 +1628,7 @@ func monitorListHandler(server *Server, client *Client, msg ircmsg.IrcMessage) b
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MONITOR S
|
||||||
func monitorStatusHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
func monitorStatusHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
||||||
var online []string
|
var online []string
|
||||||
var offline []string
|
var offline []string
|
||||||
@ -1652,14 +1658,8 @@ func monitorStatusHandler(server *Server, client *Client, msg ircmsg.IrcMessage)
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// MOTD [<target>]
|
// MOTD
|
||||||
func motdHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
func motdHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
||||||
//TODO(dan): hook this up when we have multiple servers I guess???
|
|
||||||
//var target string
|
|
||||||
//if len(msg.Params) > 0 {
|
|
||||||
// target = msg.Params[0]
|
|
||||||
//}
|
|
||||||
|
|
||||||
server.MOTD(client)
|
server.MOTD(client)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
@ -1739,7 +1739,7 @@ func noticeHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// NPC <target> <sourcenick> <text to be sent>
|
// NPC <target> <sourcenick> <message>
|
||||||
func npcHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
func npcHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
||||||
target := msg.Params[0]
|
target := msg.Params[0]
|
||||||
fakeSource := msg.Params[1]
|
fakeSource := msg.Params[1]
|
||||||
@ -1758,7 +1758,7 @@ func npcHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// NPCA <target> <sourcenick> <text to be sent>
|
// NPCA <target> <sourcenick> <message>
|
||||||
func npcaHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
func npcaHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
||||||
target := msg.Params[0]
|
target := msg.Params[0]
|
||||||
fakeSource := msg.Params[1]
|
fakeSource := msg.Params[1]
|
||||||
@ -1776,7 +1776,7 @@ func npcaHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// nsHandler handles the /NS and /NICKSERV commands
|
// NICKSERV [params...]
|
||||||
func nsHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
func nsHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
||||||
server.nickservPrivmsgHandler(client, strings.Join(msg.Params, " "))
|
server.nickservPrivmsgHandler(client, strings.Join(msg.Params, " "))
|
||||||
return false
|
return false
|
||||||
@ -1887,13 +1887,13 @@ func passHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// PING <server1> [<server2>]
|
// PING [params...]
|
||||||
func pingHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
func pingHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
||||||
client.Send(nil, server.name, "PONG", msg.Params...)
|
client.Send(nil, server.name, "PONG", msg.Params...)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// PONG <server> [ <server2> ]
|
// PONG [params...]
|
||||||
func pongHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
func pongHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
||||||
// client gets touched when they send this command, so we don't need to do anything
|
// client gets touched when they send this command, so we don't need to do anything
|
||||||
return false
|
return false
|
||||||
@ -2146,7 +2146,7 @@ func sanickHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
|||||||
return performNickChange(server, client, target, msg.Params[1])
|
return performNickChange(server, client, target, msg.Params[1])
|
||||||
}
|
}
|
||||||
|
|
||||||
// SCENE <target> <text to be sent>
|
// SCENE <target> <message>
|
||||||
func sceneHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
func sceneHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
||||||
target := msg.Params[0]
|
target := msg.Params[0]
|
||||||
message := msg.Params[1]
|
message := msg.Params[1]
|
||||||
@ -2222,17 +2222,8 @@ func tagmsgHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// TIME [<server>]
|
// TIME
|
||||||
func timeHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
func timeHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
||||||
var target string
|
|
||||||
if len(msg.Params) > 0 {
|
|
||||||
target = msg.Params[0]
|
|
||||||
}
|
|
||||||
casefoldedTarget, err := Casefold(target)
|
|
||||||
if (target != "") && err != nil || (casefoldedTarget != server.nameCasefolded) {
|
|
||||||
client.Send(nil, server.name, ERR_NOSUCHSERVER, client.nick, target, client.t("No such server"))
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
client.Send(nil, server.name, RPL_TIME, client.nick, server.name, time.Now().Format(time.RFC1123))
|
client.Send(nil, server.name, RPL_TIME, client.nick, server.name, time.Now().Format(time.RFC1123))
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
@ -2256,7 +2247,7 @@ func topicHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// UNDLINE
|
// UNDLINE <ip>|<net>
|
||||||
func unDLineHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
func unDLineHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
||||||
// check oper permissions
|
// check oper permissions
|
||||||
if !client.class.Capabilities["oper:local_unban"] {
|
if !client.class.Capabilities["oper:local_unban"] {
|
||||||
@ -2319,7 +2310,7 @@ func unDLineHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// UNKLINE
|
// UNKLINE <mask>
|
||||||
func unKLineHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
func unKLineHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
||||||
// check oper permissions
|
// check oper permissions
|
||||||
if !client.class.Capabilities["oper:local_unban"] {
|
if !client.class.Capabilities["oper:local_unban"] {
|
||||||
@ -2401,7 +2392,7 @@ func userHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// USERHOST <nickname> [<nickname> <nickname> ...]
|
// USERHOST <nickname>{ <nickname>}
|
||||||
func userhostHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
func userhostHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
||||||
returnedNicks := make(map[string]bool)
|
returnedNicks := make(map[string]bool)
|
||||||
|
|
||||||
@ -2439,18 +2430,8 @@ func userhostHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// VERSION [<server>]
|
// VERSION
|
||||||
func versionHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
func versionHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
||||||
var target string
|
|
||||||
if len(msg.Params) > 0 {
|
|
||||||
target = msg.Params[0]
|
|
||||||
}
|
|
||||||
casefoldedTarget, err := Casefold(target)
|
|
||||||
if target != "" && (err != nil || casefoldedTarget != server.nameCasefolded) {
|
|
||||||
client.Send(nil, server.name, ERR_NOSUCHSERVER, client.nick, target, client.t("No such server"))
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
client.Send(nil, server.name, RPL_VERSION, client.nick, Ver, server.name)
|
client.Send(nil, server.name, RPL_VERSION, client.nick, Ver, server.name)
|
||||||
client.RplISupport()
|
client.RplISupport()
|
||||||
return false
|
return false
|
||||||
@ -2508,7 +2489,7 @@ func webircHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
// WHO [ <mask> [ "o" ] ]
|
// WHO [<mask> [o]]
|
||||||
func whoHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
func whoHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
||||||
if msg.Params[0] == "" {
|
if msg.Params[0] == "" {
|
||||||
client.Send(nil, server.name, ERR_UNKNOWNERROR, client.nick, "WHO", client.t("First param must be a mask or channel"))
|
client.Send(nil, server.name, ERR_UNKNOWNERROR, client.nick, "WHO", client.t("First param must be a mask or channel"))
|
||||||
@ -2551,7 +2532,7 @@ func whoHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// WHOIS [ <target> ] <mask> *( "," <mask> )
|
// WHOIS [<target>] <mask>{,<mask>}
|
||||||
func whoisHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
func whoisHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
||||||
var masksString string
|
var masksString string
|
||||||
//var target string
|
//var target string
|
||||||
|
Loading…
x
Reference in New Issue
Block a user