summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorC. McEnroe2020-02-06 03:44:49 -0500
committerC. McEnroe2020-02-06 03:44:49 -0500
commit1e6e533538f5c18adc64f21155cb76277dcb2a9b (patch)
tree89959898564df8e0e3240c21ae0b5edf3decfd56
parent306e2b5c5b34ec3349a4bba3fe0e2ec9d427ad8a (diff)
Send CAP END if CAP LS doesn't list anything good
-rw-r--r--handle.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/handle.c b/handle.c
index e636434..cb080e9 100644
--- a/handle.c
+++ b/handle.c
@@ -98,7 +98,11 @@ static void handleCap(struct Message *msg) {
enum Cap caps = capParse(msg->params[2]);
if (!strcmp(msg->params[1], "LS")) {
caps &= ~CapSASL;
- ircFormat("CAP REQ :%s\r\n", capList(caps));
+ if (caps) {
+ ircFormat("CAP REQ :%s\r\n", capList(caps));
+ } else {
+ if (!(self.caps & CapSASL)) ircFormat("CAP END\r\n");
+ }
} else if (!strcmp(msg->params[1], "ACK")) {
self.caps |= caps;
if (caps & CapSASL) {