diff options
author | C. McEnroe | 2020-02-02 02:30:35 -0500 |
---|---|---|
committer | C. McEnroe | 2020-02-02 02:30:35 -0500 |
commit | 14066b79d424561b0ab4be74574edf6fae422378 (patch) | |
tree | 900d4d65fedc1f5b7b6fb3ad33d9f8b70698e5eb | |
parent | 09754ed91243f497065d888d19fc7c3c63ce19a9 (diff) |
Handle nickname errors
-rw-r--r-- | handle.c | 13 |
1 files changed, 13 insertions, 0 deletions
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 }, |