From 14066b79d424561b0ab4be74574edf6fae422378 Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Sun, 2 Feb 2020 02:30:35 -0500 Subject: [PATCH] Handle nickname errors --- handle.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/handle.c b/handle.c index 9157419..350a636 100644 --- a/handle.c +++ b/handle.c @@ -85,6 +85,17 @@ static const struct tm *tagTime(const struct Message *msg) { typedef void Handler(struct Message *msg); +static void handleErrorNicknameInUse(struct Message *msg) { + if (self.nick) return; + require(msg, false, 2); + ircFormat("NICK :%s_\r\n", msg->params[1]); +} + +static void handleErrorErroneousNickname(struct Message *msg) { + require(msg, false, 3); + errx(EX_CONFIG, "%s: %s", msg->params[1], msg->params[2]); +} + static void handleCap(struct Message *msg) { require(msg, false, 3); enum Cap caps = capParse(msg->params[2]); @@ -178,6 +189,8 @@ static const struct Handler { { "001", handleReplyWelcome }, { "005", handleReplyISupport }, { "372", handleReplyMOTD }, + { "432", handleErrorErroneousNickname }, + { "433", handleErrorNicknameInUse }, { "900", handleReplyLoggedIn }, { "904", handleErrorSASLFail }, { "905", handleErrorSASLFail },