diff options
Diffstat (limited to '')
-rw-r--r-- | server.c | 2 | ||||
-rw-r--r-- | state.c | 14 |
2 files changed, 15 insertions, 1 deletions
diff --git a/server.c b/server.c index a304db0..5d985cb 100644 --- a/server.c +++ b/server.c @@ -159,7 +159,7 @@ void serverLogin( void serverAuth(void) { assert(authPlain); - serverFormat("AUTHENTICATE %s\r\nCAP END\r\n", authPlain); + serverFormat("AUTHENTICATE %s\r\n", authPlain); free(authPlain); authPlain = NULL; } 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 }, |