diff options
author | June McEnroe <june@causal.agency> | 2020-02-02 02:30:35 -0500 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2020-02-02 02:30:35 -0500 |
commit | 14066b79d424561b0ab4be74574edf6fae422378 (patch) | |
tree | 900d4d65fedc1f5b7b6fb3ad33d9f8b70698e5eb | |
parent | Call reset_shell_mode on err (diff) | |
download | test-14066b79d424561b0ab4be74574edf6fae422378.tar.gz test-14066b79d424561b0ab4be74574edf6fae422378.zip |
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 }, |