From f404f7804c9a19dd16988e14f732b1c424fbbff7 Mon Sep 17 00:00:00 2001 From: Namonay Date: Tue, 30 Jan 2024 20:55:42 +0100 Subject: [PATCH] greg --- srcs/channel.cpp | 6 ++++-- srcs/server_functions.cpp | 8 +++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/srcs/channel.cpp b/srcs/channel.cpp index bfb76ac..6e01a6b 100644 --- a/srcs/channel.cpp +++ b/srcs/channel.cpp @@ -6,7 +6,7 @@ /* By: vvaas +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/01/21 10:36:21 by maldavid #+# #+# */ -/* Updated: 2024/01/30 20:15:29 by maldavid ### ########.fr */ +/* Updated: 2024/01/30 20:50:31 by vvaas ### ########.fr */ /* */ /******************************************************************************/ @@ -134,7 +134,7 @@ namespace irc void Channel::showModes(unstd::SharedPtr client) { - std::string modes = " +"; + std::string modes = _name + " +"; if(_invite_only) modes += 'i'; @@ -146,6 +146,8 @@ namespace irc modes += 'l'; if(modes.size() <= 2) return ; + if (modes.size() == _name.size() + 2) + return ; client->sendCode(RPL_CHANNELMODEIS, modes); } diff --git a/srcs/server_functions.cpp b/srcs/server_functions.cpp index a667ceb..65f3290 100644 --- a/srcs/server_functions.cpp +++ b/srcs/server_functions.cpp @@ -6,7 +6,7 @@ /* By: vvaas +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/01/22 17:31:06 by maldavid #+# #+# */ -/* Updated: 2024/01/30 20:21:11 by maldavid ### ########.fr */ +/* Updated: 2024/01/30 20:46:24 by vvaas ### ########.fr */ /* */ /******************************************************************************/ @@ -197,7 +197,7 @@ namespace irc else if(it->getChannelSize() != -1 && it->getChannelSize() >= static_cast(it->getNumberOfClients())) client->sendCode(ERR_CHANNELISFULL, "Channel is full"); else if(it->isInviteOnly() && !client->hasBeenInvitedTo(it->getName())) - client->sendCode(ERR_INVITEONLYCHAN, "channel is invite only and you have not been invited u looser"); + client->sendCode(ERR_INVITEONLYCHAN, it->getName()); else if(it->getPassword().size() == 0) it->addClient(client); else if(msg.getTokens().size() == 3 && it->getPassword().size() > 0 && msg.getTokens()[2] == it->getPassword()) @@ -495,7 +495,6 @@ namespace irc chan->showModes(client); return ; } - logs::report(log_message, "Mode parsing ok"); chan = getChannelByName(msg.getTokens()[1]); if(chan == NULL) { @@ -508,7 +507,10 @@ namespace irc return ; } if(msg.getTokens()[2][0] != '-' && msg.getTokens()[2][0] != '+') + { + client->sendCode(ERR_UNKNOWNMODE, "MODE : Invalid flags (missing +/-)"); return ; + } chan->changeMode(client, msg); }