aboutsummaryrefslogtreecommitdiff
path: root/cmd_cap.go
diff options
context:
space:
mode:
authorRunxi Yu <me@runxiyu.org>2024-12-09 06:59:55 +0800
committerRunxi Yu <me@runxiyu.org>2024-12-09 06:59:55 +0800
commitc62a30fdf616bd59d4822b730298180ad67a475a (patch)
treebbeb43882acc8cd2450f0a488a55ab538dcb70e0 /cmd_cap.go
parentCAP LS: Distinguish 302 (diff)
downloadmeseircd-c62a30fdf616bd59d4822b730298180ad67a475a.tar.gz
meseircd-c62a30fdf616bd59d4822b730298180ad67a475a.tar.zst
meseircd-c62a30fdf616bd59d4822b730298180ad67a475a.zip
CAP LS: Take version as integer
Diffstat (limited to 'cmd_cap.go')
-rw-r--r--cmd_cap.go10
1 files changed, 8 insertions, 2 deletions
diff --git a/cmd_cap.go b/cmd_cap.go
index c76bd57..ce70abc 100644
--- a/cmd_cap.go
+++ b/cmd_cap.go
@@ -1,6 +1,7 @@
package main
import (
+ "strconv"
"strings"
)
@@ -25,8 +26,13 @@ func handleClientCap(msg RMsg, client *Client) error {
client.State = ClientStateCapabilities
}
var err error
- if len(msg.Params) >= 2 && msg.Params[1] == "302" {
- err = client.Send(MakeMsg(self, "CAP", client.Nick, "LS", capls302))
+ if len(msg.Params) >= 2 {
+ capVersion, err := strconv.ParseUint(msg.Params[1], 10, 64)
+ if err == nil && capVersion >= 302 {
+ err = client.Send(MakeMsg(self, "CAP", client.Nick, "LS", capls302))
+ } else {
+ err = client.Send(MakeMsg(self, "CAP", client.Nick, "LS", capls))
+ }
} else {
err = client.Send(MakeMsg(self, "CAP", client.Nick, "LS", capls))
}