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."
Diffstat (limited to '')
-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; |