diff options
author | June McEnroe <june@causal.agency> | 2020-12-21 15:29:10 -0500 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2020-12-21 15:29:10 -0500 |
commit | 1829dc40c6c3af3768a9feaa99f4aabbb34eca23 (patch) | |
tree | 2086d7c0da70e649ef45be76e192afccccc8b806 | |
parent | Alphabetize STANDARDS sections (diff) | |
download | pounce-1829dc40c6c3af3768a9feaa99f4aabbb34eca23.tar.gz pounce-1829dc40c6c3af3768a9feaa99f4aabbb34eca23.zip |
Send CAP END if CAP LS response is empty
Or only unsupported caps. Or, as the corresponding commit in catgirl says, "if CAP LS doesn't list anything good."
-rw-r--r-- | state.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/state.c b/state.c index 14af068..41ffdd0 100644 --- a/state.c +++ b/state.c @@ -90,7 +90,11 @@ static void handleCap(struct Message *msg) { if (!strcmp(msg->params[1], "LS") || !strcmp(msg->params[1], "NEW")) { caps &= ~(CapSASL | CapSTS | CapUnsupported); - if (caps) serverFormat("CAP REQ :%s\r\n", capList(caps, NULL)); + if (caps) { + serverFormat("CAP REQ :%s\r\n", capList(caps, NULL)); + } else { + if (!(stateCaps & CapSASL)) serverFormat("CAP END\r\n"); + } } else if (!strcmp(msg->params[1], "ACK")) { stateCaps |= caps; |