Browse Source

bump irc-go for the IRCMessage rename

tags/v2.6.0-rc1
Shivaram Lingamneni 3 years ago
parent
commit
e957a89ee2

+ 1
- 1
go.mod View File

@@ -10,7 +10,7 @@ require (
10 10
 	github.com/go-sql-driver/mysql v1.5.0
11 11
 	github.com/go-test/deep v1.0.6 // indirect
12 12
 	github.com/gorilla/websocket v1.4.2
13
-	github.com/goshuirc/irc-go v0.0.0-20210214015142-9d703e6ac38a
13
+	github.com/goshuirc/irc-go v0.0.0-20210215162435-14cd697c0c8c
14 14
 	github.com/onsi/ginkgo v1.12.0 // indirect
15 15
 	github.com/onsi/gomega v1.9.0 // indirect
16 16
 	github.com/oragono/confusables v0.0.0-20201108231250-4ab98ab61fb1

+ 2
- 0
go.sum View File

@@ -32,6 +32,8 @@ github.com/goshuirc/irc-go v0.0.0-20210214005848-fcaabd19f360 h1:ChbmWPZwyfgsZd6
32 32
 github.com/goshuirc/irc-go v0.0.0-20210214005848-fcaabd19f360/go.mod h1:q/JhvvKLmif3y9q8MDQM+gRCnjEKnu5ClF298TTXJug=
33 33
 github.com/goshuirc/irc-go v0.0.0-20210214015142-9d703e6ac38a h1:PR1tw21nn93AwKmjEPA7IVHiT+ld9qgO1H32APCMvL0=
34 34
 github.com/goshuirc/irc-go v0.0.0-20210214015142-9d703e6ac38a/go.mod h1:q/JhvvKLmif3y9q8MDQM+gRCnjEKnu5ClF298TTXJug=
35
+github.com/goshuirc/irc-go v0.0.0-20210215162435-14cd697c0c8c h1:pOTMO5A1nszuxNyKieZa3owgDqCpN1OhOGbBg8EuLzk=
36
+github.com/goshuirc/irc-go v0.0.0-20210215162435-14cd697c0c8c/go.mod h1:q/JhvvKLmif3y9q8MDQM+gRCnjEKnu5ClF298TTXJug=
35 37
 github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=
36 38
 github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
37 39
 github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=

+ 3
- 3
irc/client.go View File

@@ -1662,7 +1662,7 @@ func (session *Session) sendFromClientInternal(blocking bool, serverTime time.Ti
1662 1662
 	return session.SendRawMessage(msg, blocking)
1663 1663
 }
1664 1664
 
1665
-func composeMultilineBatch(batchID, fromNickMask, fromAccount string, tags map[string]string, command, target string, message utils.SplitMessage) (result []ircmsg.IrcMessage) {
1665
+func composeMultilineBatch(batchID, fromNickMask, fromAccount string, tags map[string]string, command, target string, message utils.SplitMessage) (result []ircmsg.IRCMessage) {
1666 1666
 	batchStart := ircmsg.MakeMessage(tags, fromNickMask, "BATCH", "+"+batchID, caps.MultilineBatchType, target)
1667 1667
 	batchStart.SetTag("time", message.Time.Format(IRCv3TimestampFormat))
1668 1668
 	batchStart.SetTag("msgid", message.Msgid)
@@ -1702,7 +1702,7 @@ var (
1702 1702
 )
1703 1703
 
1704 1704
 // SendRawMessage sends a raw message to the client.
1705
-func (session *Session) SendRawMessage(message ircmsg.IrcMessage, blocking bool) error {
1705
+func (session *Session) SendRawMessage(message ircmsg.IRCMessage, blocking bool) error {
1706 1706
 	// use dumb hack to force the last param to be a trailing param if required
1707 1707
 	config := session.client.server.Config()
1708 1708
 	if config.Server.Compatibility.forceTrailing && commandsThatMustUseTrailing[message.Command] {
@@ -1764,7 +1764,7 @@ func (session *Session) Send(tags map[string]string, prefix string, command stri
1764 1764
 	return session.SendRawMessage(msg, false)
1765 1765
 }
1766 1766
 
1767
-func (session *Session) setTimeTag(msg *ircmsg.IrcMessage, serverTime time.Time) {
1767
+func (session *Session) setTimeTag(msg *ircmsg.IRCMessage, serverTime time.Time) {
1768 1768
 	if session.capabilities.Has(caps.ServerTime) && !msg.HasTag("time") {
1769 1769
 		if serverTime.IsZero() {
1770 1770
 			serverTime = time.Now()

+ 2
- 2
irc/commands.go View File

@@ -11,7 +11,7 @@ import (
11 11
 
12 12
 // Command represents a command accepted from a client.
13 13
 type Command struct {
14
-	handler        func(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool
14
+	handler        func(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool
15 15
 	usablePreReg   bool
16 16
 	allowedInBatch bool // allowed in client-to-server batches
17 17
 	minParams      int
@@ -19,7 +19,7 @@ type Command struct {
19 19
 }
20 20
 
21 21
 // Run runs this command with the given client/message.
22
-func (cmd *Command) Run(server *Server, client *Client, session *Session, msg ircmsg.IrcMessage) (exiting bool) {
22
+func (cmd *Command) Run(server *Server, client *Client, session *Session, msg ircmsg.IRCMessage) (exiting bool) {
23 23
 	rb := NewResponseBuffer(session)
24 24
 	rb.Label = GetLabel(msg)
25 25
 

+ 71
- 71
irc/handlers.go View File

@@ -138,7 +138,7 @@ func (server *Server) sendLoginSnomask(nickMask, accountName string) {
138 138
 }
139 139
 
140 140
 // AUTHENTICATE [<mechanism>|<data>|*]
141
-func authenticateHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
141
+func authenticateHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
142 142
 	session := rb.session
143 143
 	config := server.Config()
144 144
 	details := client.Details()
@@ -340,7 +340,7 @@ func authExternalHandler(server *Server, client *Client, mechanism string, value
340 340
 }
341 341
 
342 342
 // AWAY [<message>]
343
-func awayHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
343
+func awayHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
344 344
 	var isAway bool
345 345
 	var awayMessage string
346 346
 	if len(msg.Params) > 0 {
@@ -377,7 +377,7 @@ func dispatchAwayNotify(client *Client, isAway bool, awayMessage string) {
377 377
 }
378 378
 
379 379
 // BATCH {+,-}reference-tag type [params...]
380
-func batchHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
380
+func batchHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
381 381
 	tag := msg.Params[0]
382 382
 	fail := false
383 383
 	sendErrors := rb.session.batch.command != "NOTICE"
@@ -421,7 +421,7 @@ func batchHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Res
421 421
 }
422 422
 
423 423
 // BRB [message]
424
-func brbHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
424
+func brbHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
425 425
 	success, duration := client.brbTimer.Enable()
426 426
 	if !success {
427 427
 		rb.Add(nil, server.name, "FAIL", "BRB", "CANNOT_BRB", client.t("Your client does not support BRB"))
@@ -446,7 +446,7 @@ func brbHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Respo
446 446
 }
447 447
 
448 448
 // CAP <subcmd> [<caps>]
449
-func capHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
449
+func capHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
450 450
 	details := client.Details()
451 451
 	subCommand := strings.ToUpper(msg.Params[0])
452 452
 	toAdd := caps.NewSet()
@@ -564,7 +564,7 @@ func capHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Respo
564 564
 // e.g., CHATHISTORY #ircv3 AFTER id=ytNBbt565yt4r3err3 10
565 565
 // CHATHISTORY <target> BETWEEN <query> <query> <direction> [<limit>]
566 566
 // e.g., CHATHISTORY #ircv3 BETWEEN timestamp=YYYY-MM-DDThh:mm:ss.sssZ timestamp=YYYY-MM-DDThh:mm:ss.sssZ + 100
567
-func chathistoryHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) (exiting bool) {
567
+func chathistoryHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) (exiting bool) {
568 568
 	var items []history.Item
569 569
 	unknown_command := false
570 570
 	var target string
@@ -702,7 +702,7 @@ func chathistoryHandler(server *Server, client *Client, msg ircmsg.IrcMessage, r
702 702
 }
703 703
 
704 704
 // DEBUG <subcmd>
705
-func debugHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
705
+func debugHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
706 706
 	param := strings.ToUpper(msg.Params[0])
707 707
 
708 708
 	switch param {
@@ -775,7 +775,7 @@ func debugHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Res
775 775
 	return false
776 776
 }
777 777
 
778
-func defconHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
778
+func defconHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
779 779
 	if len(msg.Params) > 0 {
780 780
 		level, err := strconv.Atoi(msg.Params[0])
781 781
 		if err == nil && 1 <= level && level <= 5 {
@@ -823,7 +823,7 @@ func formatBanForListing(client *Client, key string, info IPBanInfo) string {
823 823
 
824 824
 // DLINE [ANDKILL] [MYSELF] [duration] <ip>/<net> [ON <server>] [reason [| oper reason]]
825 825
 // DLINE LIST
826
-func dlineHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
826
+func dlineHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
827 827
 	// check oper permissions
828 828
 	oper := client.Oper()
829 829
 	if !oper.HasRoleCapab("ban") {
@@ -962,7 +962,7 @@ func dlineHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Res
962 962
 }
963 963
 
964 964
 // EXTJWT <target> [service_name]
965
-func extjwtHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
965
+func extjwtHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
966 966
 	accountName := client.AccountName()
967 967
 	if accountName == "*" {
968 968
 		accountName = ""
@@ -1030,7 +1030,7 @@ func extjwtHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Re
1030 1030
 
1031 1031
 // HELP [<query>]
1032 1032
 // HELPOP [<query>]
1033
-func helpHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
1033
+func helpHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
1034 1034
 	if len(msg.Params) == 0 {
1035 1035
 		client.sendHelp("HELPOP", client.t(`HELPOP <argument>
1036 1036
 
@@ -1065,7 +1065,7 @@ Get an explanation of <argument>, or "index" for a list of help topics.`), rb)
1065 1065
 // e.g., HISTORY #ubuntu 10
1066 1066
 // HISTORY me 15
1067 1067
 // HISTORY #darwin 1h
1068
-func historyHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
1068
+func historyHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
1069 1069
 	config := server.Config()
1070 1070
 	if !config.History.Enabled {
1071 1071
 		rb.Notice(client.t("This command has been disabled by the server administrators"))
@@ -1093,7 +1093,7 @@ func historyHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *R
1093 1093
 }
1094 1094
 
1095 1095
 // INFO
1096
-func infoHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
1096
+func infoHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
1097 1097
 	nick := client.Nick()
1098 1098
 	// we do the below so that the human-readable lines in info can be translated.
1099 1099
 	for _, line := range infoString1 {
@@ -1133,7 +1133,7 @@ func infoHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Resp
1133 1133
 
1134 1134
 // INVITE <nickname> <channel>
1135 1135
 // UNINVITE <nickname> <channel>
1136
-func inviteHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
1136
+func inviteHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
1137 1137
 	invite := msg.Command == "INVITE"
1138 1138
 	nickname := msg.Params[0]
1139 1139
 	channelName := msg.Params[1]
@@ -1160,7 +1160,7 @@ func inviteHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Re
1160 1160
 }
1161 1161
 
1162 1162
 // ISON <nick>{ <nick>}
1163
-func isonHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
1163
+func isonHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
1164 1164
 	var nicks = msg.Params
1165 1165
 
1166 1166
 	ison := make([]string, 0, len(msg.Params))
@@ -1176,7 +1176,7 @@ func isonHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Resp
1176 1176
 }
1177 1177
 
1178 1178
 // JOIN <channel>{,<channel>} [<key>{,<key>}]
1179
-func joinHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
1179
+func joinHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
1180 1180
 	// #1417: allow `JOIN 0` with a confirmation code
1181 1181
 	if msg.Params[0] == "0" {
1182 1182
 		expectedCode := utils.ConfirmationCode("", rb.session.ctime)
@@ -1253,7 +1253,7 @@ func sendJoinError(client *Client, name string, rb *ResponseBuffer, err error) {
1253 1253
 }
1254 1254
 
1255 1255
 // SAJOIN [nick] #channel{,#channel}
1256
-func sajoinHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
1256
+func sajoinHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
1257 1257
 	var target *Client
1258 1258
 	var channelString string
1259 1259
 	if strings.HasPrefix(msg.Params[0], "#") {
@@ -1288,7 +1288,7 @@ func sajoinHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Re
1288 1288
 }
1289 1289
 
1290 1290
 // KICK <channel>{,<channel>} <user>{,<user>} [<comment>]
1291
-func kickHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
1291
+func kickHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
1292 1292
 	hasPrivs := client.HasRoleCapabs("samode")
1293 1293
 	channels := strings.Split(msg.Params[0], ",")
1294 1294
 	users := strings.Split(msg.Params[1], ",")
@@ -1339,7 +1339,7 @@ func kickHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Resp
1339 1339
 }
1340 1340
 
1341 1341
 // KILL <nickname> <comment>
1342
-func killHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
1342
+func killHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
1343 1343
 	nickname := msg.Params[0]
1344 1344
 	comment := "<no reason supplied>"
1345 1345
 	if len(msg.Params) > 1 {
@@ -1365,7 +1365,7 @@ func killHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Resp
1365 1365
 
1366 1366
 // KLINE [ANDKILL] [MYSELF] [duration] <mask> [ON <server>] [reason [| oper reason]]
1367 1367
 // KLINE LIST
1368
-func klineHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
1368
+func klineHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
1369 1369
 	details := client.Details()
1370 1370
 	// check oper permissions
1371 1371
 	oper := client.Oper()
@@ -1507,7 +1507,7 @@ func klineHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Res
1507 1507
 }
1508 1508
 
1509 1509
 // LANGUAGE <code>{ <code>}
1510
-func languageHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
1510
+func languageHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
1511 1511
 	nick := client.Nick()
1512 1512
 	alreadyDoneLanguages := make(map[string]bool)
1513 1513
 	var appliedLanguages []string
@@ -1561,7 +1561,7 @@ func languageHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *
1561 1561
 }
1562 1562
 
1563 1563
 // LIST [<channel>{,<channel>}] [<elistcond>{,<elistcond>}]
1564
-func listHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
1564
+func listHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
1565 1565
 	config := server.Config()
1566 1566
 	if time.Since(client.ctime) < config.Channels.ListDelay && client.Account() == "" && !client.HasMode(modes.Operator) {
1567 1567
 		remaining := time.Until(client.ctime.Add(config.Channels.ListDelay))
@@ -1649,13 +1649,13 @@ func listHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Resp
1649 1649
 }
1650 1650
 
1651 1651
 // LUSERS [<mask> [<server>]]
1652
-func lusersHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
1652
+func lusersHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
1653 1653
 	server.Lusers(client, rb)
1654 1654
 	return false
1655 1655
 }
1656 1656
 
1657 1657
 // MODE <target> [<modestring> [<mode arguments>...]]
1658
-func modeHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
1658
+func modeHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
1659 1659
 	if 0 < len(msg.Params[0]) && msg.Params[0][0] == '#' {
1660 1660
 		return cmodeHandler(server, client, msg, rb)
1661 1661
 	}
@@ -1663,7 +1663,7 @@ func modeHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Resp
1663 1663
 }
1664 1664
 
1665 1665
 // MODE <channel> [<modestring> [<mode arguments>...]]
1666
-func cmodeHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
1666
+func cmodeHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
1667 1667
 	channel := server.channels.Get(msg.Params[0])
1668 1668
 
1669 1669
 	if channel == nil {
@@ -1721,7 +1721,7 @@ func announceCmodeChanges(channel *Channel, applied modes.ModeChanges, source, a
1721 1721
 }
1722 1722
 
1723 1723
 // MODE <client> [<modestring> [<mode arguments>...]]
1724
-func umodeHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
1724
+func umodeHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
1725 1725
 	cDetails := client.Details()
1726 1726
 	target := server.clients.Get(msg.Params[0])
1727 1727
 	if target == nil {
@@ -1793,7 +1793,7 @@ func (server *Server) getCurrentNick(nick string) (result string) {
1793 1793
 }
1794 1794
 
1795 1795
 // MONITOR <subcmd> [params...]
1796
-func monitorHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
1796
+func monitorHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
1797 1797
 	handler, exists := monitorSubcommands[strings.ToLower(msg.Params[0])]
1798 1798
 
1799 1799
 	if !exists {
@@ -1805,7 +1805,7 @@ func monitorHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *R
1805 1805
 }
1806 1806
 
1807 1807
 // MONITOR - <target>{,<target>}
1808
-func monitorRemoveHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
1808
+func monitorRemoveHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
1809 1809
 	if len(msg.Params) < 2 {
1810 1810
 		rb.Add(nil, server.name, ERR_NEEDMOREPARAMS, client.Nick(), msg.Command, client.t("Not enough parameters"))
1811 1811
 		return false
@@ -1820,7 +1820,7 @@ func monitorRemoveHandler(server *Server, client *Client, msg ircmsg.IrcMessage,
1820 1820
 }
1821 1821
 
1822 1822
 // MONITOR + <target>{,<target>}
1823
-func monitorAddHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
1823
+func monitorAddHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
1824 1824
 	if len(msg.Params) < 2 {
1825 1825
 		rb.Add(nil, server.name, ERR_NEEDMOREPARAMS, client.Nick(), msg.Command, client.t("Not enough parameters"))
1826 1826
 		return false
@@ -1867,13 +1867,13 @@ func monitorAddHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb
1867 1867
 }
1868 1868
 
1869 1869
 // MONITOR C
1870
-func monitorClearHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
1870
+func monitorClearHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
1871 1871
 	server.monitorManager.RemoveAll(rb.session)
1872 1872
 	return false
1873 1873
 }
1874 1874
 
1875 1875
 // MONITOR L
1876
-func monitorListHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
1876
+func monitorListHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
1877 1877
 	nick := client.Nick()
1878 1878
 	monitorList := server.monitorManager.List(rb.session)
1879 1879
 
@@ -1898,7 +1898,7 @@ func monitorListHandler(server *Server, client *Client, msg ircmsg.IrcMessage, r
1898 1898
 }
1899 1899
 
1900 1900
 // MONITOR S
1901
-func monitorStatusHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
1901
+func monitorStatusHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
1902 1902
 	var online []string
1903 1903
 	var offline []string
1904 1904
 
@@ -1928,13 +1928,13 @@ func monitorStatusHandler(server *Server, client *Client, msg ircmsg.IrcMessage,
1928 1928
 }
1929 1929
 
1930 1930
 // MOTD
1931
-func motdHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
1931
+func motdHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
1932 1932
 	server.MOTD(client, rb)
1933 1933
 	return false
1934 1934
 }
1935 1935
 
1936 1936
 // NAMES [<channel>{,<channel>} [target]]
1937
-func namesHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
1937
+func namesHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
1938 1938
 	var channels []string
1939 1939
 	if len(msg.Params) > 0 {
1940 1940
 		channels = strings.Split(msg.Params[0], ",")
@@ -1968,7 +1968,7 @@ func namesHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Res
1968 1968
 }
1969 1969
 
1970 1970
 // NICK <nickname>
1971
-func nickHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
1971
+func nickHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
1972 1972
 	if client.registered {
1973 1973
 		if client.account == "" && server.Config().Accounts.NickReservation.ForbidAnonNickChanges {
1974 1974
 			rb.Add(nil, server.name, ERR_UNKNOWNERROR, client.Nick(), client.t("You may not change your nickname"))
@@ -1982,7 +1982,7 @@ func nickHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Resp
1982 1982
 }
1983 1983
 
1984 1984
 // helper to store a batched PRIVMSG in the session object
1985
-func absorbBatchedMessage(server *Server, client *Client, msg ircmsg.IrcMessage, batchTag string, histType history.ItemType, rb *ResponseBuffer) {
1985
+func absorbBatchedMessage(server *Server, client *Client, msg ircmsg.IRCMessage, batchTag string, histType history.ItemType, rb *ResponseBuffer) {
1986 1986
 	var errorCode, errorMessage string
1987 1987
 	defer func() {
1988 1988
 		if errorCode != "" {
@@ -2022,7 +2022,7 @@ func absorbBatchedMessage(server *Server, client *Client, msg ircmsg.IrcMessage,
2022 2022
 // NOTICE <target>{,<target>} <message>
2023 2023
 // PRIVMSG <target>{,<target>} <message>
2024 2024
 // TAGMSG <target>{,<target>}
2025
-func messageHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
2025
+func messageHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
2026 2026
 	histType, err := msgCommandToHistType(msg.Command)
2027 2027
 	if err != nil {
2028 2028
 		return false
@@ -2227,7 +2227,7 @@ func itemIsStorable(item *history.Item, config *Config) bool {
2227 2227
 }
2228 2228
 
2229 2229
 // NPC <target> <sourcenick> <message>
2230
-func npcHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
2230
+func npcHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
2231 2231
 	target := msg.Params[0]
2232 2232
 	fakeSource := msg.Params[1]
2233 2233
 	message := msg.Params[2:]
@@ -2238,7 +2238,7 @@ func npcHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Respo
2238 2238
 }
2239 2239
 
2240 2240
 // NPCA <target> <sourcenick> <message>
2241
-func npcaHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
2241
+func npcaHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
2242 2242
 	target := msg.Params[0]
2243 2243
 	fakeSource := msg.Params[1]
2244 2244
 	message := msg.Params[2:]
@@ -2249,7 +2249,7 @@ func npcaHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Resp
2249 2249
 }
2250 2250
 
2251 2251
 // OPER <name> [password]
2252
-func operHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
2252
+func operHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
2253 2253
 	if client.HasMode(modes.Operator) {
2254 2254
 		rb.Add(nil, server.name, ERR_UNKNOWNERROR, client.Nick(), "OPER", client.t("You're already opered-up!"))
2255 2255
 		return false
@@ -2334,7 +2334,7 @@ func applyOper(client *Client, oper *Oper, rb *ResponseBuffer) {
2334 2334
 }
2335 2335
 
2336 2336
 // DEOPER
2337
-func deoperHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
2337
+func deoperHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
2338 2338
 	if client.Oper() == nil {
2339 2339
 		rb.Notice(client.t("Insufficient oper privs"))
2340 2340
 		return false
@@ -2345,7 +2345,7 @@ func deoperHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Re
2345 2345
 }
2346 2346
 
2347 2347
 // PART <channel>{,<channel>} [<reason>]
2348
-func partHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
2348
+func partHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
2349 2349
 	channels := strings.Split(msg.Params[0], ",")
2350 2350
 	var reason string
2351 2351
 	if len(msg.Params) > 1 {
@@ -2365,7 +2365,7 @@ func partHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Resp
2365 2365
 }
2366 2366
 
2367 2367
 // PASS <password>
2368
-func passHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
2368
+func passHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
2369 2369
 	if client.registered {
2370 2370
 		rb.Add(nil, server.name, ERR_ALREADYREGISTRED, client.nick, client.t("You may not reregister"))
2371 2371
 		return false
@@ -2420,19 +2420,19 @@ func passHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Resp
2420 2420
 }
2421 2421
 
2422 2422
 // PING [params...]
2423
-func pingHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
2423
+func pingHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
2424 2424
 	rb.Add(nil, server.name, "PONG", server.name, msg.Params[0])
2425 2425
 	return false
2426 2426
 }
2427 2427
 
2428 2428
 // PONG [params...]
2429
-func pongHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
2429
+func pongHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
2430 2430
 	// client gets touched when they send this command, so we don't need to do anything
2431 2431
 	return false
2432 2432
 }
2433 2433
 
2434 2434
 // QUIT [<reason>]
2435
-func quitHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
2435
+func quitHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
2436 2436
 	reason := "Quit"
2437 2437
 	if len(msg.Params) > 0 {
2438 2438
 		reason += ": " + msg.Params[0]
@@ -2442,7 +2442,7 @@ func quitHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Resp
2442 2442
 }
2443 2443
 
2444 2444
 // REGISTER < email | * > <password>
2445
-func registerHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) (exiting bool) {
2445
+func registerHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) (exiting bool) {
2446 2446
 	config := server.Config()
2447 2447
 	if !config.Accounts.Registration.Enabled {
2448 2448
 		rb.Add(nil, server.name, "FAIL", "REGISTER", "DISALLOWED", client.t("Account registration is disabled"))
@@ -2509,7 +2509,7 @@ func registerHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *
2509 2509
 }
2510 2510
 
2511 2511
 // VERIFY <account> <code>
2512
-func verifyHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) (exiting bool) {
2512
+func verifyHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) (exiting bool) {
2513 2513
 	config := server.Config()
2514 2514
 	if !config.Accounts.Registration.Enabled {
2515 2515
 		rb.Add(nil, server.name, "FAIL", "VERIFY", "DISALLOWED", client.t("Account registration is disabled"))
@@ -2551,7 +2551,7 @@ func verifyHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Re
2551 2551
 }
2552 2552
 
2553 2553
 // REHASH
2554
-func rehashHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
2554
+func rehashHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
2555 2555
 	nick := client.Nick()
2556 2556
 	server.logger.Info("server", "REHASH command used by", nick)
2557 2557
 	err := server.rehash()
@@ -2569,7 +2569,7 @@ func rehashHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Re
2569 2569
 }
2570 2570
 
2571 2571
 // RELAYMSG <channel> <spoofed nick> :<message>
2572
-func relaymsgHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) (result bool) {
2572
+func relaymsgHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) (result bool) {
2573 2573
 	config := server.Config()
2574 2574
 	if !config.Server.Relaymsg.Enabled {
2575 2575
 		rb.Add(nil, server.name, "FAIL", "RELAYMSG", "NOT_ENABLED", client.t("RELAYMSG has been disabled"))
@@ -2638,7 +2638,7 @@ func relaymsgHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *
2638 2638
 }
2639 2639
 
2640 2640
 // RENAME <oldchan> <newchan> [<reason>]
2641
-func renameHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
2641
+func renameHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
2642 2642
 	oldName, newName := msg.Params[0], msg.Params[1]
2643 2643
 	var reason string
2644 2644
 	if 2 < len(msg.Params) {
@@ -2724,7 +2724,7 @@ func renameHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Re
2724 2724
 }
2725 2725
 
2726 2726
 // RESUME <token> [timestamp]
2727
-func resumeHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
2727
+func resumeHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
2728 2728
 	details := ResumeDetails{
2729 2729
 		PresentedToken: msg.Params[0],
2730 2730
 	}
@@ -2748,7 +2748,7 @@ func resumeHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Re
2748 2748
 }
2749 2749
 
2750 2750
 // SANICK <oldnick> <nickname>
2751
-func sanickHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
2751
+func sanickHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
2752 2752
 	targetNick := msg.Params[0]
2753 2753
 	target := server.clients.Get(targetNick)
2754 2754
 	if target == nil {
@@ -2760,7 +2760,7 @@ func sanickHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Re
2760 2760
 }
2761 2761
 
2762 2762
 // SCENE <target> <message>
2763
-func sceneHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
2763
+func sceneHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
2764 2764
 	target := msg.Params[0]
2765 2765
 	message := msg.Params[1:]
2766 2766
 
@@ -2770,7 +2770,7 @@ func sceneHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Res
2770 2770
 }
2771 2771
 
2772 2772
 // SETNAME <realname>
2773
-func setnameHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
2773
+func setnameHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
2774 2774
 	realname := msg.Params[0]
2775 2775
 	if len(msg.Params) != 1 {
2776 2776
 		// workaround for clients that turn unknown commands into raw IRC lines,
@@ -2798,19 +2798,19 @@ func setnameHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *R
2798 2798
 }
2799 2799
 
2800 2800
 // SUMMON [parameters]
2801
-func summonHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
2801
+func summonHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
2802 2802
 	rb.Add(nil, server.name, ERR_SUMMONDISABLED, client.Nick(), client.t("SUMMON has been disabled"))
2803 2803
 	return false
2804 2804
 }
2805 2805
 
2806 2806
 // TIME
2807
-func timeHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
2807
+func timeHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
2808 2808
 	rb.Add(nil, server.name, RPL_TIME, client.nick, server.name, time.Now().UTC().Format(time.RFC1123))
2809 2809
 	return false
2810 2810
 }
2811 2811
 
2812 2812
 // TOPIC <channel> [<topic>]
2813
-func topicHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
2813
+func topicHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
2814 2814
 	channel := server.channels.Get(msg.Params[0])
2815 2815
 	if channel == nil {
2816 2816
 		rb.Add(nil, server.name, ERR_NOSUCHCHANNEL, client.nick, utils.SafeErrorParam(msg.Params[0]), client.t("No such channel"))
@@ -2826,7 +2826,7 @@ func topicHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Res
2826 2826
 }
2827 2827
 
2828 2828
 // UNDLINE <ip>|<net>
2829
-func unDLineHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
2829
+func unDLineHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
2830 2830
 	// check oper permissions
2831 2831
 	oper := client.Oper()
2832 2832
 	if !oper.HasRoleCapab("ban") {
@@ -2859,7 +2859,7 @@ func unDLineHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *R
2859 2859
 }
2860 2860
 
2861 2861
 // UNKLINE <mask>
2862
-func unKLineHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
2862
+func unKLineHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
2863 2863
 	details := client.Details()
2864 2864
 	// check oper permissions
2865 2865
 	oper := client.Oper()
@@ -2889,7 +2889,7 @@ func unKLineHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *R
2889 2889
 }
2890 2890
 
2891 2891
 // USER <username> * 0 <realname>
2892
-func userHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
2892
+func userHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
2893 2893
 	if client.registered {
2894 2894
 		rb.Add(nil, server.name, ERR_ALREADYREGISTRED, client.Nick(), client.t("You may not reregister"))
2895 2895
 		return false
@@ -2944,7 +2944,7 @@ func operStatusVisible(client, target *Client, hasPrivs bool) bool {
2944 2944
 }
2945 2945
 
2946 2946
 // USERHOST <nickname>{ <nickname>}
2947
-func userhostHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
2947
+func userhostHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
2948 2948
 	hasPrivs := client.HasMode(modes.Operator)
2949 2949
 	returnedClients := make(ClientSet)
2950 2950
 
@@ -2992,20 +2992,20 @@ func userhostHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *
2992 2992
 }
2993 2993
 
2994 2994
 // USERS [parameters]
2995
-func usersHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
2995
+func usersHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
2996 2996
 	rb.Add(nil, server.name, ERR_USERSDISABLED, client.Nick(), client.t("USERS has been disabled"))
2997 2997
 	return false
2998 2998
 }
2999 2999
 
3000 3000
 // VERSION
3001
-func versionHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
3001
+func versionHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
3002 3002
 	rb.Add(nil, server.name, RPL_VERSION, client.nick, Ver, server.name)
3003 3003
 	server.RplISupport(client, rb)
3004 3004
 	return false
3005 3005
 }
3006 3006
 
3007 3007
 // WEBIRC <password> <gateway> <hostname> <ip> [:flag1 flag2=x flag3]
3008
-func webircHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
3008
+func webircHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
3009 3009
 	// only allow unregistered clients to use this command
3010 3010
 	if client.registered || client.proxiedIP != nil {
3011 3011
 		return false
@@ -3179,7 +3179,7 @@ func (client *Client) rplWhoReply(channel *Channel, target *Client, rb *Response
3179 3179
 }
3180 3180
 
3181 3181
 // WHO <mask> [<filter>%<fields>,<type>]
3182
-func whoHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
3182
+func whoHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
3183 3183
 	mask := msg.Params[0]
3184 3184
 	var err error
3185 3185
 	if mask == "" {
@@ -3287,7 +3287,7 @@ func whoHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Respo
3287 3287
 }
3288 3288
 
3289 3289
 // WHOIS [<target>] <mask>{,<mask>}
3290
-func whoisHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
3290
+func whoisHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
3291 3291
 	var masksString string
3292 3292
 	//var target string
3293 3293
 
@@ -3348,7 +3348,7 @@ func whoisHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Res
3348 3348
 }
3349 3349
 
3350 3350
 // WHOWAS <nickname> [<count> [<server>]]
3351
-func whowasHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
3351
+func whowasHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
3352 3352
 	nicknames := strings.Split(msg.Params[0], ",")
3353 3353
 
3354 3354
 	// 0 means "all the entries", as does a negative number
@@ -3382,7 +3382,7 @@ func whowasHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Re
3382 3382
 }
3383 3383
 
3384 3384
 // ZNC <module> [params]
3385
-func zncHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
3385
+func zncHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
3386 3386
 	params := msg.Params[1:]
3387 3387
 	// #1205: compatibility with Palaver, which sends `ZNC *playback :play ...`
3388 3388
 	if len(params) == 1 && strings.IndexByte(params[0], ' ') != -1 {
@@ -3393,13 +3393,13 @@ func zncHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Respo
3393 3393
 }
3394 3394
 
3395 3395
 // fake handler for unknown commands
3396
-func unknownCommandHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
3396
+func unknownCommandHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
3397 3397
 	rb.Add(nil, server.name, ERR_UNKNOWNCOMMAND, client.Nick(), utils.SafeErrorParam(msg.Command), client.t("Unknown command"))
3398 3398
 	return false
3399 3399
 }
3400 3400
 
3401 3401
 // fake handler for invalid utf8
3402
-func invalidUtf8Handler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
3402
+func invalidUtf8Handler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
3403 3403
 	rb.Add(nil, server.name, "FAIL", utils.SafeErrorParam(msg.Command), "INVALID_UTF8", client.t("Message rejected for containing invalid UTF-8"))
3404 3404
 	return false
3405 3405
 }

+ 4
- 4
irc/message_cache.go View File

@@ -42,7 +42,7 @@ type MessageCache struct {
42 42
 	splitMessage utils.SplitMessage
43 43
 }
44 44
 
45
-func addAllTags(msg *ircmsg.IrcMessage, tags map[string]string, serverTime time.Time, msgid, accountName string) {
45
+func addAllTags(msg *ircmsg.IRCMessage, tags map[string]string, serverTime time.Time, msgid, accountName string) {
46 46
 	msg.UpdateTags(tags)
47 47
 	msg.SetTag("time", serverTime.Format(IRCv3TimestampFormat))
48 48
 	if accountName != "*" {
@@ -73,7 +73,7 @@ func (m *MessageCache) Initialize(server *Server, serverTime time.Time, msgid st
73 73
 	m.command = command
74 74
 	m.params = params
75 75
 
76
-	var msg ircmsg.IrcMessage
76
+	var msg ircmsg.IRCMessage
77 77
 	config := server.Config()
78 78
 	if config.Server.Compatibility.forceTrailing && commandsThatMustUseTrailing[command] {
79 79
 		msg.ForceTrailing()
@@ -110,7 +110,7 @@ func (m *MessageCache) InitializeSplitMessage(server *Server, nickmask, accountN
110 110
 
111 111
 	if message.Is512() {
112 112
 		isTagmsg := command == "TAGMSG"
113
-		var msg ircmsg.IrcMessage
113
+		var msg ircmsg.IRCMessage
114 114
 		if forceTrailing {
115 115
 			msg.ForceTrailing()
116 116
 		}
@@ -136,7 +136,7 @@ func (m *MessageCache) InitializeSplitMessage(server *Server, nickmask, accountN
136 136
 			return
137 137
 		}
138 138
 	} else {
139
-		var msg ircmsg.IrcMessage
139
+		var msg ircmsg.IRCMessage
140 140
 		if forceTrailing {
141 141
 			msg.ForceTrailing()
142 142
 		}

+ 1
- 1
irc/monitor.go View File

@@ -105,7 +105,7 @@ func (manager *MonitorManager) List(session *Session) (nicks []string) {
105 105
 }
106 106
 
107 107
 var (
108
-	monitorSubcommands = map[string]func(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool{
108
+	monitorSubcommands = map[string]func(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool{
109 109
 		"-": monitorRemoveHandler,
110 110
 		"+": monitorAddHandler,
111 111
 		"c": monitorClearHandler,

+ 5
- 5
irc/responsebuffer.go View File

@@ -36,14 +36,14 @@ type ResponseBuffer struct {
36 36
 	// nested batch.)
37 37
 	nestedBatches []string
38 38
 
39
-	messages  []ircmsg.IrcMessage
39
+	messages  []ircmsg.IRCMessage
40 40
 	finalized bool
41 41
 	target    *Client
42 42
 	session   *Session
43 43
 }
44 44
 
45 45
 // GetLabel returns the label from the given message.
46
-func GetLabel(msg ircmsg.IrcMessage) string {
46
+func GetLabel(msg ircmsg.IRCMessage) string {
47 47
 	_, value := msg.GetTag(caps.LabelTagName)
48 48
 	return value
49 49
 }
@@ -57,7 +57,7 @@ func NewResponseBuffer(session *Session) *ResponseBuffer {
57 57
 	}
58 58
 }
59 59
 
60
-func (rb *ResponseBuffer) AddMessage(msg ircmsg.IrcMessage) {
60
+func (rb *ResponseBuffer) AddMessage(msg ircmsg.IRCMessage) {
61 61
 	if rb.finalized {
62 62
 		rb.target.server.logger.Error("internal", "message added to finalized ResponseBuffer, undefined behavior")
63 63
 		debug.PrintStack()
@@ -72,7 +72,7 @@ func (rb *ResponseBuffer) AddMessage(msg ircmsg.IrcMessage) {
72 72
 	rb.messages = append(rb.messages, msg)
73 73
 }
74 74
 
75
-func (rb *ResponseBuffer) setNestedBatchTag(msg *ircmsg.IrcMessage) {
75
+func (rb *ResponseBuffer) setNestedBatchTag(msg *ircmsg.IRCMessage) {
76 76
 	if 0 < len(rb.nestedBatches) {
77 77
 		msg.SetTag("batch", rb.nestedBatches[len(rb.nestedBatches)-1])
78 78
 	}
@@ -86,7 +86,7 @@ func (rb *ResponseBuffer) Add(tags map[string]string, prefix string, command str
86 86
 // Broadcast adds a standard new message to our queue, then sends an unlabeled copy
87 87
 // to all other sessions.
88 88
 func (rb *ResponseBuffer) Broadcast(tags map[string]string, prefix string, command string, params ...string) {
89
-	// can't reuse the IrcMessage object because of tag pollution :-\
89
+	// can't reuse the IRCMessage object because of tag pollution :-\
90 90
 	rb.Add(tags, prefix, command, params...)
91 91
 	for _, session := range rb.session.client.Sessions() {
92 92
 		if session != rb.session {

+ 1
- 1
irc/services.go View File

@@ -116,7 +116,7 @@ HELP returns information on the given command.`,
116 116
 }
117 117
 
118 118
 // generic handler for IRC commands like `/NICKSERV INFO`
119
-func serviceCmdHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
119
+func serviceCmdHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
120 120
 	service, ok := oragonoServicesByCommandAlias[msg.Command]
121 121
 	if !ok {
122 122
 		server.logger.Warning("internal", "can't handle unrecognized service", msg.Command)

+ 1
- 1
irc/uban.go View File

@@ -98,7 +98,7 @@ func parseUbanTarget(param string) (target ubanTarget, err error) {
98 98
 }
99 99
 
100 100
 // UBAN <subcommand> [target] [DURATION <duration>] [reason...]
101
-func ubanHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
101
+func ubanHandler(server *Server, client *Client, msg ircmsg.IRCMessage, rb *ResponseBuffer) bool {
102 102
 	subcommand := strings.ToLower(msg.Params[0])
103 103
 	params := msg.Params[1:]
104 104
 	var target ubanTarget

+ 26
- 26
vendor/github.com/goshuirc/irc-go/ircmsg/message.go View File

@@ -48,10 +48,10 @@ var (
48 48
 	ErrorBadParam       = errors.New("Cannot have an empty param, a param with spaces, or a param that starts with ':' before the last parameter")
49 49
 )
50 50
 
51
-// IrcMessage represents an IRC message, as defined by the RFCs and as
51
+// IRCMessage represents an IRC message, as defined by the RFCs and as
52 52
 // extended by the IRCv3 Message Tags specification with the introduction
53 53
 // of message tags.
54
-type IrcMessage struct {
54
+type IRCMessage struct {
55 55
 	Prefix         string
56 56
 	Command        string
57 57
 	Params         []string
@@ -64,12 +64,12 @@ type IrcMessage struct {
64 64
 // will be encoded as a "trailing parameter" (preceded by a colon). This is
65 65
 // almost never necessary and should not be used except when having to interact
66 66
 // with broken implementations that don't correctly interpret IRC messages.
67
-func (msg *IrcMessage) ForceTrailing() {
67
+func (msg *IRCMessage) ForceTrailing() {
68 68
 	msg.forceTrailing = true
69 69
 }
70 70
 
71 71
 // GetTag returns whether a tag is present, and if so, what its value is.
72
-func (msg *IrcMessage) GetTag(tagName string) (present bool, value string) {
72
+func (msg *IRCMessage) GetTag(tagName string) (present bool, value string) {
73 73
 	if len(tagName) == 0 {
74 74
 		return
75 75
 	} else if tagName[0] == '+' {
@@ -82,13 +82,13 @@ func (msg *IrcMessage) GetTag(tagName string) (present bool, value string) {
82 82
 }
83 83
 
84 84
 // HasTag returns whether a tag is present.
85
-func (msg *IrcMessage) HasTag(tagName string) (present bool) {
85
+func (msg *IRCMessage) HasTag(tagName string) (present bool) {
86 86
 	present, _ = msg.GetTag(tagName)
87 87
 	return
88 88
 }
89 89
 
90 90
 // SetTag sets a tag.
91
-func (msg *IrcMessage) SetTag(tagName, tagValue string) {
91
+func (msg *IRCMessage) SetTag(tagName, tagValue string) {
92 92
 	if len(tagName) == 0 {
93 93
 		return
94 94
 	} else if tagName[0] == '+' {
@@ -105,7 +105,7 @@ func (msg *IrcMessage) SetTag(tagName, tagValue string) {
105 105
 }
106 106
 
107 107
 // DeleteTag deletes a tag.
108
-func (msg *IrcMessage) DeleteTag(tagName string) {
108
+func (msg *IRCMessage) DeleteTag(tagName string) {
109 109
 	if len(tagName) == 0 {
110 110
 		return
111 111
 	} else if tagName[0] == '+' {
@@ -116,14 +116,14 @@ func (msg *IrcMessage) DeleteTag(tagName string) {
116 116
 }
117 117
 
118 118
 // UpdateTags is a convenience to set multiple tags at once.
119
-func (msg *IrcMessage) UpdateTags(tags map[string]string) {
119
+func (msg *IRCMessage) UpdateTags(tags map[string]string) {
120 120
 	for name, value := range tags {
121 121
 		msg.SetTag(name, value)
122 122
 	}
123 123
 }
124 124
 
125 125
 // AllTags returns all tags as a single map.
126
-func (msg *IrcMessage) AllTags() (result map[string]string) {
126
+func (msg *IRCMessage) AllTags() (result map[string]string) {
127 127
 	result = make(map[string]string, len(msg.tags)+len(msg.clientOnlyTags))
128 128
 	for name, value := range msg.tags {
129 129
 		result[name] = value
@@ -135,23 +135,23 @@ func (msg *IrcMessage) AllTags() (result map[string]string) {
135 135
 }
136 136
 
137 137
 // ClientOnlyTags returns the client-only tags (the tags with the + prefix).
138
-// The returned map may be internal storage of the IrcMessage object and
138
+// The returned map may be internal storage of the IRCMessage object and
139 139
 // should not be modified.
140
-func (msg *IrcMessage) ClientOnlyTags() map[string]string {
140
+func (msg *IRCMessage) ClientOnlyTags() map[string]string {
141 141
 	return msg.clientOnlyTags
142 142
 }
143 143
 
144 144
 // ParseLine creates and returns a message from the given IRC line.
145
-func ParseLine(line string) (ircmsg IrcMessage, err error) {
145
+func ParseLine(line string) (ircmsg IRCMessage, err error) {
146 146
 	return parseLine(line, 0, 0)
147 147
 }
148 148
 
149
-// ParseLineStrict creates and returns an IrcMessage from the given IRC line,
149
+// ParseLineStrict creates and returns an IRCMessage from the given IRC line,
150 150
 // taking the maximum length into account and truncating the message as appropriate.
151 151
 // If fromClient is true, it enforces the client limit on tag data length (4094 bytes),
152 152
 // allowing the server to return ERR_INPUTTOOLONG as appropriate. If truncateLen is
153 153
 // nonzero, it is the length at which the non-tag portion of the message is truncated.
154
-func ParseLineStrict(line string, fromClient bool, truncateLen int) (ircmsg IrcMessage, err error) {
154
+func ParseLineStrict(line string, fromClient bool, truncateLen int) (ircmsg IRCMessage, err error) {
155 155
 	maxTagDataLength := MaxlenTagData
156 156
 	if fromClient {
157 157
 		maxTagDataLength = MaxlenClientTagData
@@ -167,7 +167,7 @@ func trimInitialSpaces(str string) string {
167 167
 	return str[i:]
168 168
 }
169 169
 
170
-func parseLine(line string, maxTagDataLength int, truncateLen int) (ircmsg IrcMessage, err error) {
170
+func parseLine(line string, maxTagDataLength int, truncateLen int) (ircmsg IRCMessage, err error) {
171 171
 	if strings.IndexByte(line, '\x00') != -1 {
172 172
 		err = ErrorLineContainsBadChar
173 173
 		return
@@ -264,7 +264,7 @@ func parseLine(line string, maxTagDataLength int, truncateLen int) (ircmsg IrcMe
264 264
 }
265 265
 
266 266
 // helper to parse tags
267
-func (ircmsg *IrcMessage) parseTags(tags string) (err error) {
267
+func (ircmsg *IRCMessage) parseTags(tags string) (err error) {
268 268
 	for 0 < len(tags) {
269 269
 		tagEnd := strings.IndexByte(tags, ';')
270 270
 		endPos := tagEnd
@@ -297,8 +297,8 @@ func (ircmsg *IrcMessage) parseTags(tags string) (err error) {
297 297
 	return nil
298 298
 }
299 299
 
300
-// MakeMessage provides a simple way to create a new IrcMessage.
301
-func MakeMessage(tags map[string]string, prefix string, command string, params ...string) (ircmsg IrcMessage) {
300
+// MakeMessage provides a simple way to create a new IRCMessage.
301
+func MakeMessage(tags map[string]string, prefix string, command string, params ...string) (ircmsg IRCMessage) {
302 302
 	ircmsg.Prefix = prefix
303 303
 	ircmsg.Command = command
304 304
 	ircmsg.Params = params
@@ -306,8 +306,8 @@ func MakeMessage(tags map[string]string, prefix string, command string, params .
306 306
 	return ircmsg
307 307
 }
308 308
 
309
-// Line returns a sendable line created from an IrcMessage.
310
-func (ircmsg *IrcMessage) Line() (result string, err error) {
309
+// Line returns a sendable line created from an IRCMessage.
310
+func (ircmsg *IRCMessage) Line() (result string, err error) {
311 311
 	bytes, err := ircmsg.line(0, 0, 0, 0)
312 312
 	if err == nil {
313 313
 		result = string(bytes)
@@ -315,17 +315,17 @@ func (ircmsg *IrcMessage) Line() (result string, err error) {
315 315
 	return
316 316
 }
317 317
 
318
-// LineBytes returns a sendable line created from an IrcMessage.
319
-func (ircmsg *IrcMessage) LineBytes() (result []byte, err error) {
318
+// LineBytes returns a sendable line created from an IRCMessage.
319
+func (ircmsg *IRCMessage) LineBytes() (result []byte, err error) {
320 320
 	result, err = ircmsg.line(0, 0, 0, 0)
321 321
 	return
322 322
 }
323 323
 
324
-// LineBytesStrict returns a sendable line, as a []byte, created from an IrcMessage.
324
+// LineBytesStrict returns a sendable line, as a []byte, created from an IRCMessage.
325 325
 // fromClient controls whether the server-side or client-side tag length limit
326 326
 // is enforced. If truncateLen is nonzero, it is the length at which the
327 327
 // non-tag portion of the message is truncated.
328
-func (ircmsg *IrcMessage) LineBytesStrict(fromClient bool, truncateLen int) ([]byte, error) {
328
+func (ircmsg *IRCMessage) LineBytesStrict(fromClient bool, truncateLen int) ([]byte, error) {
329 329
 	var tagLimit, clientOnlyTagDataLimit, serverAddedTagDataLimit int
330 330
 	if fromClient {
331 331
 		// enforce client max tags:
@@ -345,8 +345,8 @@ func paramRequiresTrailing(param string) bool {
345 345
 	return len(param) == 0 || strings.IndexByte(param, ' ') != -1 || param[0] == ':'
346 346
 }
347 347
 
348
-// line returns a sendable line created from an IrcMessage.
349
-func (ircmsg *IrcMessage) line(tagLimit, clientOnlyTagDataLimit, serverAddedTagDataLimit, truncateLen int) ([]byte, error) {
348
+// line returns a sendable line created from an IRCMessage.
349
+func (ircmsg *IRCMessage) line(tagLimit, clientOnlyTagDataLimit, serverAddedTagDataLimit, truncateLen int) ([]byte, error) {
350 350
 	if len(ircmsg.Command) < 1 {
351 351
 		return nil, ErrorCommandMissing
352 352
 	}

+ 1
- 1
vendor/github.com/goshuirc/irc-go/ircmsg/tags.go View File

@@ -27,7 +27,7 @@ func init() {
27 27
 // EscapeTagValue takes a value, and returns an escaped message tag value.
28 28
 //
29 29
 // This function is automatically used when lines are created from an
30
-// IrcMessage, so you don't need to call it yourself before creating a line.
30
+// IRCMessage, so you don't need to call it yourself before creating a line.
31 31
 func EscapeTagValue(inString string) string {
32 32
 	return valtoescape.Replace(inString)
33 33
 }

+ 1
- 1
vendor/modules.txt View File

@@ -21,7 +21,7 @@ github.com/go-sql-driver/mysql
21 21
 # github.com/gorilla/websocket v1.4.2
22 22
 ## explicit
23 23
 github.com/gorilla/websocket
24
-# github.com/goshuirc/irc-go v0.0.0-20210214015142-9d703e6ac38a
24
+# github.com/goshuirc/irc-go v0.0.0-20210215162435-14cd697c0c8c
25 25
 ## explicit
26 26
 github.com/goshuirc/irc-go/ircfmt
27 27
 github.com/goshuirc/irc-go/ircmsg

Loading…
Cancel
Save