hid: implement WALLOPS
This commit is contained in:
		
							parent
							
								
									4073b7329f
								
							
						
					
					
						commit
						f26e6361f3
					
				
							
								
								
									
										20
									
								
								xS/main.go
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								xS/main.go
									
									
									
									
									
								
							| @ -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}, | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user