hid: implement WALLOPS

This commit is contained in:
Přemysl Eric Janouch 2022-02-05 00:30:08 +01:00
parent ca245e4aca
commit bafd5ef221
Signed by: p
GPG Key ID: A0420B94F92B9493

View File

@ -2854,6 +2854,25 @@ func ircHandleLINKS(msg *message, c *client) {
c.sendReply(RPL_ENDOFLINKS, mask) c.sendReply(RPL_ENDOFLINKS, mask)
} }
func ircHandleWALLOPS(msg *message, c *client) {
if len(msg.params) < 1 {
c.sendReply(ERR_NEEDMOREPARAMS, msg.command)
return
}
if 0 == c.mode&ircUserModeOperator {
c.sendReply(ERR_NOPRIVILEGES)
return
}
// Our interpretation: anonymize the sender,
// and target all users who want to receive these messages.
for _, client := range users {
if client == c || 0 != client.mode&ircUserModeRxWallops {
client.sendf(":%s WALLOPS :%s", serverName, msg.params[0])
}
}
}
func ircHandleKILL(msg *message, c *client) { func ircHandleKILL(msg *message, c *client) {
if len(msg.params) < 2 { if len(msg.params) < 2 {
c.sendReply(ERR_NEEDMOREPARAMS, msg.command) c.sendReply(ERR_NEEDMOREPARAMS, msg.command)
@ -2908,6 +2927,7 @@ var ircHandlers = map[string]*ircCommand{
"ADMIN": {true, ircHandleADMIN, 0, 0}, "ADMIN": {true, ircHandleADMIN, 0, 0},
"STATS": {true, ircHandleSTATS, 0, 0}, "STATS": {true, ircHandleSTATS, 0, 0},
"LINKS": {true, ircHandleLINKS, 0, 0}, "LINKS": {true, ircHandleLINKS, 0, 0},
"WALLOPS": {true, ircHandleWALLOPS, 0, 0},
"MODE": {true, ircHandleMODE, 0, 0}, "MODE": {true, ircHandleMODE, 0, 0},
"PRIVMSG": {true, ircHandlePRIVMSG, 0, 0}, "PRIVMSG": {true, ircHandlePRIVMSG, 0, 0},