diff options
Diffstat (limited to 'state.c')
-rw-r--r-- | state.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/state.c b/state.c index 01829a4..c63a6b2 100644 --- a/state.c +++ b/state.c @@ -130,6 +130,16 @@ static void handleAuthenticate(struct Message *msg) { serverAuth(); } +static void handleReplyLoggedIn(struct Message *msg) { + (void)msg; + serverFormat("CAP END\r\n"); +} + +static void handleErrorSASLFail(struct Message *msg) { + if (!msg->params[1]) errx(EX_PROTOCOL, "RPL_SASLFAIL without message"); + errx(EX_CONFIG, "%s", msg->params[1]); +} + static void handleReplyWelcome(struct Message *msg) { if (!msg->params[1]) errx(EX_PROTOCOL, "RPL_WELCOME without message"); set(&intro.origin, msg->origin); @@ -233,6 +243,10 @@ static const struct { { "005", handleReplyISupport }, { "332", handleReplyTopic }, { "433", handleErrorNicknameInUse }, + { "900", handleReplyLoggedIn }, + { "904", handleErrorSASLFail }, + { "905", handleErrorSASLFail }, + { "906", handleErrorSASLFail }, { "AUTHENTICATE", handleAuthenticate }, { "CAP", handleCap }, { "ERROR", handleError }, |