diff --git a/srcs/commands/channel/join.cpp b/srcs/commands/channel/join.cpp index aecb4ea..6ea357b 100644 --- a/srcs/commands/channel/join.cpp +++ b/srcs/commands/channel/join.cpp @@ -6,36 +6,12 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/02/09 15:40:33 by apommier #+# #+# */ -/* Updated: 2023/03/13 16:30:39 by apommier ### ########.fr */ +/* Updated: 2023/03/14 02:13:25 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ #include "../../../includes/ft_irc.hpp" - -// Commande: JOIN -// Paramètres: {,} [{,}] -// 1459 -// ERR_NEEDMOREPARAMS + ERR_BANNEDFROMCHAN -// ERR_INVITEONLYCHAN + ERR_BADCHANNELKEY -// ERR_CHANNELISFULL x ERR_BADCHANMASK ? + -// ERR_NOSUCHCHANNEL x ERR_TOOMANYCHANNELS x -// RPL_TOPIC - - // 2812 - // ERR_NEEDMOREPARAMS ERR_BANNEDFROMCHAN - // ERR_INVITEONLYCHAN ERR_BADCHANNELKEY - // ERR_CHANNELISFULL ERR_BADCHANMASK - // ERR_NOSUCHCHANNEL ERR_TOOMANYCHANNELS - // ERR_TOOMANYTARGETS ERR_UNAVAILRESOURCE - // RPL_TOPIC - -void leave_all(fdList &allFds, int userNbr) -{ - (void)allFds; - (void)userNbr; -} - int chan_check(fdList &allFds, int userNbr, int chanNbr, std::vector splitBuff) { std::string errorStr; @@ -125,11 +101,6 @@ void join_loop(fdList &allFds, std::vector splitBuff, int userNbr) split(splitBuff[1], ',', splitChan); split(splitBuff[1], ',', splitPwd); - if (splitBuff[1] == "0") - { - leave_all(allFds, userNbr); - return ; - } for (size_t i = 0; i < splitChan.size(); i++) { if (splitChan[i][0] != '#' && splitChan[i][0] != '&') diff --git a/srcs/commands/channel/notice.cpp b/srcs/commands/channel/notice.cpp index 9633ae8..21f3777 100644 --- a/srcs/commands/channel/notice.cpp +++ b/srcs/commands/channel/notice.cpp @@ -6,20 +6,12 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/02/14 21:24:55 by apommier #+# #+# */ -/* Updated: 2023/03/10 22:09:53 by apommier ### ########.fr */ +/* Updated: 2023/03/14 02:15:04 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ #include "../../../includes/ft_irc.hpp" -// Commande: PRIVMSG -// Paramètres: {,} -// ERR_NORECIPIENT ERR_NOTEXTTOSEND + -// ERR_CANNOTSENDTOCHAN ERR_NOTOPLEVEL -// ERR_WILDTOPLEVEL ERR_TOOMANYTARGETS -// ERR_NOSUCHNICK + -// RPL_AWAY - void send_notice_msg(fdList &allFds, std::string msg, std::string dest, int userNbr) { int pos; @@ -28,25 +20,27 @@ void send_notice_msg(fdList &allFds, std::string msg, std::string dest, int user fullMsg = ":" + allFds.userData[userNbr].nickname + "!" + allFds.userData[userNbr].userName + "@172.17.0.1 " + msg + "\r\n"; if (dest[0] == '&' || dest[0] == '#') { - if (is_joined(allFds, dest, userNbr) == -1) + pos = find_channel(allFds, dest); + if (pos == -1) return ; - if ((pos = find_channel(allFds, dest)) == -1) + if (allFds.channelList[pos].mode.n && is_joined(allFds, dest, userNbr) == -1 ) + return ; + if (allFds.channelList[pos].mode.m && !allFds.userData[userNbr].op + && !is_chan_op(allFds, &allFds.channelList[pos], userNbr) + && find_client_list(allFds.channelList[pos].verboseList, &allFds.userData[userNbr]) == -1) return ; for (size_t i = 0; i < allFds.channelList[pos].userList.size(); i++) - { - //std::cout << "send nickname " << allFds.channelList[pos].userList[i]->nickname << std::endl; - if (i != (size_t)userNbr) + { + if (&allFds.userData[userNbr] != allFds.channelList[pos].userList[i] && allFds.channelList[pos].userList[i]->mode.s) send(allFds.channelList[pos].userList[i]->fd, fullMsg.c_str(), fullMsg.size(), 0); - //std::cout << "loop here\n"; } return ; } - pos = find_user(allFds, dest); //return direct user fd - if (pos != -1) - { - send(allFds.userData[pos].fd, fullMsg.c_str(), fullMsg.size(), 0); + pos = find_user(allFds, dest); + if (pos == -1) return ; - } + if (allFds.userData[pos].mode.s) + send(allFds.userData[pos].fd, fullMsg.c_str(), fullMsg.size(), 0); } void NOTICE(std::string buffer, fdList &allFds, int userNbr) @@ -54,17 +48,15 @@ void NOTICE(std::string buffer, fdList &allFds, int userNbr) std::vector splitBuff; std::string msg; - //std::cout << "notice bufer= --" << buffer << std::endl; + if (!allFds.userData[userNbr].registered) + return ; split(buffer, ' ', splitBuff); if (splitBuff.size() < 2) return ; if (splitBuff.size() < 3) return ; - - std::cout << "notice =" << msg << std::endl; std::vector dest; split(splitBuff[1], ',', dest); for (size_t i = 0; i < dest.size(); i++) send_notice_msg(allFds, buffer, dest[i], userNbr); -} - +} \ No newline at end of file diff --git a/srcs/commands/not_done_cmd.cpp b/srcs/commands/not_done_cmd.cpp index 35efb1b..b657a95 100644 --- a/srcs/commands/not_done_cmd.cpp +++ b/srcs/commands/not_done_cmd.cpp @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/02/09 22:04:11 by apommier #+# #+# */ -/* Updated: 2023/03/13 02:33:34 by apommier ### ########.fr */ +/* Updated: 2023/03/14 02:11:01 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,39 +14,16 @@ void SERVER(std::string buffer, fdList &allFds, int userNbr) { + std::cout << "command not supported\n"; (void)buffer; (void)allFds; (void)userNbr; return ; } -// void OPER(std::string buffer, fdList &allFds, int userNbr) -// { -// (void)buffer; -// (void)allFds; -// (void)userNbr; -// return ; -// } - - - - - - -// void LIST(std::string buffer, fdList &allFds, int userNbr) -// { -// (void)buffer; -// (void)allFds; -// (void)userNbr; -// return ; -// } - - - - - void VERSION(std::string buffer, fdList &allFds, int userNbr) { + std::cout << "command not supported\n"; (void)buffer; (void)allFds; (void)userNbr; @@ -55,6 +32,7 @@ void VERSION(std::string buffer, fdList &allFds, int userNbr) void STATS(std::string buffer, fdList &allFds, int userNbr) { + std::cout << "command not supported\n"; (void)buffer; (void)allFds; (void)userNbr; @@ -63,6 +41,7 @@ void STATS(std::string buffer, fdList &allFds, int userNbr) void LINKS(std::string buffer, fdList &allFds, int userNbr) { + std::cout << "command not supported\n"; (void)buffer; (void)allFds; (void)userNbr; @@ -71,6 +50,7 @@ void LINKS(std::string buffer, fdList &allFds, int userNbr) void TIME(std::string buffer, fdList &allFds, int userNbr) { + std::cout << "command not supported\n"; (void)buffer; (void)allFds; (void)userNbr; @@ -79,6 +59,7 @@ void TIME(std::string buffer, fdList &allFds, int userNbr) void CONNECT(std::string buffer, fdList &allFds, int userNbr) { + std::cout << "command not supported\n"; (void)buffer; (void)allFds; (void)userNbr; @@ -87,6 +68,7 @@ void CONNECT(std::string buffer, fdList &allFds, int userNbr) void TRACE(std::string buffer, fdList &allFds, int userNbr) { + std::cout << "command not supported\n"; (void)buffer; (void)allFds; (void)userNbr; @@ -95,6 +77,7 @@ void TRACE(std::string buffer, fdList &allFds, int userNbr) void ADMIN(std::string buffer, fdList &allFds, int userNbr) { + std::cout << "command not supported\n"; (void)buffer; (void)allFds; (void)userNbr; @@ -103,32 +86,16 @@ void ADMIN(std::string buffer, fdList &allFds, int userNbr) void INFO(std::string buffer, fdList &allFds, int userNbr) { + std::cout << "command not supported\n"; (void)buffer; (void)allFds; (void)userNbr; return ; } -// void PRIVMSG(std::string buffer, fdList &allFds, int userNbr) -// { -// (void)buffer; -// (void)allFds; -// (void)userNbr; -// return ; -// } - -// void NOTICE(std::string buffer, fdList &allFds, int userNbr) -// { -// (void)buffer; -// (void)allFds; -// (void)userNbr; -// return ; -// } - - - void WHOIS(std::string buffer, fdList &allFds, int userNbr) { + std::cout << "command not supported\n"; (void)buffer; (void)allFds; (void)userNbr; @@ -137,26 +104,16 @@ void WHOIS(std::string buffer, fdList &allFds, int userNbr) void WHOWAS(std::string buffer, fdList &allFds, int userNbr) { + std::cout << "command not supported\n"; (void)buffer; (void)allFds; (void)userNbr; return ; } - - -// void PING(std::string buffer, fdList &allFds, int userNbr) -// { -// (void)buffer; -// (void)allFds; -// (void)userNbr; -// return ; -// } - - - void ERROR(std::string buffer, fdList &allFds, int userNbr) { + std::cout << "command not supported\n"; (void)buffer; (void)allFds; (void)userNbr; @@ -165,6 +122,7 @@ void ERROR(std::string buffer, fdList &allFds, int userNbr) void AWAY(std::string buffer, fdList &allFds, int userNbr) { + std::cout << "command not supported\n"; (void)buffer; (void)allFds; (void)userNbr; @@ -173,6 +131,7 @@ void AWAY(std::string buffer, fdList &allFds, int userNbr) void REHASH(std::string buffer, fdList &allFds, int userNbr) { + std::cout << "command not supported\n"; (void)buffer; (void)allFds; (void)userNbr; @@ -181,6 +140,7 @@ void REHASH(std::string buffer, fdList &allFds, int userNbr) void RESTART(std::string buffer, fdList &allFds, int userNbr) { + std::cout << "command not supported\n"; (void)buffer; (void)allFds; (void)userNbr; @@ -189,6 +149,7 @@ void RESTART(std::string buffer, fdList &allFds, int userNbr) void SUMMON(std::string buffer, fdList &allFds, int userNbr) { + std::cout << "command not supported\n"; (void)buffer; (void)allFds; (void)userNbr; @@ -197,6 +158,7 @@ void SUMMON(std::string buffer, fdList &allFds, int userNbr) void OPERWALL(std::string buffer, fdList &allFds, int userNbr) { + std::cout << "command not supported\n"; (void)buffer; (void)allFds; (void)userNbr; @@ -205,6 +167,7 @@ void OPERWALL(std::string buffer, fdList &allFds, int userNbr) void USERHOST(std::string buffer, fdList &allFds, int userNbr) { + std::cout << "command not supported\n"; (void)buffer; (void)allFds; (void)userNbr; @@ -213,6 +176,7 @@ void USERHOST(std::string buffer, fdList &allFds, int userNbr) void ISON(std::string buffer, fdList &allFds, int userNbr) { + std::cout << "command not supported\n"; (void)buffer; (void)allFds; (void)userNbr; diff --git a/srcs/commands/operator/wallops.cpp b/srcs/commands/operator/wallops.cpp index 368c842..5bb093c 100644 --- a/srcs/commands/operator/wallops.cpp +++ b/srcs/commands/operator/wallops.cpp @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/02/16 17:09:38 by apommier #+# #+# */ -/* Updated: 2023/03/13 16:36:47 by apommier ### ########.fr */ +/* Updated: 2023/03/14 06:23:21 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -30,7 +30,7 @@ void WALLOPS(std::string buffer, fdList &allFds, int userNbr) return ; } msg = ":" + allFds.userData[userNbr].nickname + " WALLOPS :" + buffer.substr(splitBuff[1].size() + std::string::npos + 1) + "\r\n"; - for (int i = 0; i < allFds.nbrUser; i++) + for (int i = 0; i < allFds.userData.size(); i++) { if (allFds.userData[i].op && allFds.userData[i].mode.s) send(allFds.userData[i].fd, msg.c_str(), msg.size(), 0);