From 9874d3d7e94ebb8d558a97721ca4374b90f59e74 Mon Sep 17 00:00:00 2001 From: kinou-p Date: Sun, 12 Feb 2023 13:29:48 +0100 Subject: [PATCH] add commands files --- Makefile | 16 +++++++- includes/ft_irc.hpp | 2 +- srcs/client_request.cpp | 2 +- srcs/commands/auth/user.cpp | 54 ++++++++++++------------- srcs/commands/channel_op/invite.cpp | 21 ++++++++++ srcs/commands/channel_op/kick.cpp | 21 ++++++++++ srcs/commands/channel_op/mode.cpp | 21 ++++++++++ srcs/commands/channel_op/topic.cpp | 21 ++++++++++ srcs/commands/not_done_cmd.cpp | 63 +++++------------------------ srcs/commands/operator/oper.cpp | 24 +++++++++++ srcs/commands/other/quit.cpp | 21 ++++++++++ srcs/commands/other/squit.cpp | 21 ++++++++++ srcs/commands/parse_commands.cpp | 2 +- srcs/server_loop.cpp | 3 +- 14 files changed, 208 insertions(+), 84 deletions(-) create mode 100644 srcs/commands/channel_op/invite.cpp create mode 100644 srcs/commands/channel_op/kick.cpp create mode 100644 srcs/commands/channel_op/mode.cpp create mode 100644 srcs/commands/channel_op/topic.cpp create mode 100644 srcs/commands/operator/oper.cpp create mode 100644 srcs/commands/other/quit.cpp create mode 100644 srcs/commands/other/squit.cpp diff --git a/Makefile b/Makefile index 2400002..6f679cb 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ # By: apommier +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2022/12/01 17:27:29 by apommier #+# #+# # -# Updated: 2023/02/11 10:41:15 by apommier ### ########.fr # +# Updated: 2023/02/11 20:18:32 by apommier ### ########.fr # # # # **************************************************************************** # @@ -18,15 +18,29 @@ SRCS := main.cpp\ client_request.cpp\ new_connection.cpp\ server_loop.cpp\ +\ commands/cmd_utils.cpp\ commands/parse_commands.cpp\ +\ commands/auth/nick.cpp\ commands/auth/pass.cpp\ commands/auth/user.cpp\ commands/auth/auth_utils.cpp\ +\ commands/channel/channel_utils.cpp\ commands/channel/join.cpp\ commands/channel/privmsg.cpp\ +\ + commands/other/quit.cpp\ + commands/other/squit.cpp\ +\ + commands/channel_op/invite.cpp\ + commands/channel_op/kick.cpp\ + commands/channel_op/mode.cpp\ + commands/channel_op/topic.cpp\ +\ + commands/operator/oper.cpp\ +\ commands/not_done_cmd.cpp #special (temporary) CC = c++ diff --git a/includes/ft_irc.hpp b/includes/ft_irc.hpp index 0ce6a98..867d3e2 100644 --- a/includes/ft_irc.hpp +++ b/includes/ft_irc.hpp @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/12/01 17:27:37 by apommier #+# #+# */ -/* Updated: 2023/02/11 14:48:19 by apommier ### ########.fr */ +/* Updated: 2023/02/11 22:49:29 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/srcs/client_request.cpp b/srcs/client_request.cpp index e034879..4f2f9f2 100644 --- a/srcs/client_request.cpp +++ b/srcs/client_request.cpp @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/12/09 22:34:36 by apommier #+# #+# */ -/* Updated: 2023/02/11 13:20:49 by apommier ### ########.fr */ +/* Updated: 2023/02/11 23:53:10 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/srcs/commands/auth/user.cpp b/srcs/commands/auth/user.cpp index ff8dee3..a39cabf 100644 --- a/srcs/commands/auth/user.cpp +++ b/srcs/commands/auth/user.cpp @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/02/06 14:40:39 by apommier #+# #+# */ -/* Updated: 2023/02/11 12:57:50 by apommier ### ########.fr */ +/* Updated: 2023/02/11 22:44:06 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -22,34 +22,34 @@ void USER(std::string buffer, fdList &allFds, int userNbr) (void)buffer; (void)allFds; (void)userNbr; - // if (allFds.userData[userNbr].registered == 1) - // { - // cmd_error(allFds, allFds.userData[userNbr].fd, "462 * USER :You may not reregister\n"); - // return ; - // } + if (allFds.userData[userNbr].registered == 1) + { + cmd_error(allFds, allFds.userData[userNbr].fd, "462 * USER :You may not reregister\n"); + return ; + } - // std::string realName = buffer.substr(buffer.find_first_of(":") + 1 , buffer.npos); - // std::vector splitBuff; + std::string realName = buffer.substr(buffer.find_first_of(":") + 1 , buffer.npos); + std::vector splitBuff; - // buffer.resize(buffer.size() - realName.size()); - // std::cout << "Buffer in userNbr = ---" << buffer << "---" << std::endl; - // std::cout << "realname in userNbr = ---" << realName << "---" << std::endl; - // split(buffer, ' ', splitBuff); - // if (splitBuff.size() < 4) - // { - // cmd_error(allFds, allFds.userData[userNbr].fd, "461 * USER :Not enough parameters\n"); - // //write(allFds.userData[userNbr].fd, "ERR_NEEDMOREPARAMS", 18); - // return ; - // } - // allFds.userData[userNbr].userName = splitBuff[1]; - // allFds.userData[userNbr].hostName = splitBuff[2]; - // allFds.userData[userNbr].serverName = splitBuff[3]; + buffer.resize(buffer.size() - realName.size()); + std::cout << "Buffer in userNbr = ---" << buffer << "---" << std::endl; + std::cout << "realname in userNbr = ---" << realName << "---" << std::endl; + split(buffer, ' ', splitBuff); + if (splitBuff.size() < 4) + { + cmd_error(allFds, allFds.userData[userNbr].fd, "461 * USER :Not enough parameters\n"); + //write(allFds.userData[userNbr].fd, "ERR_NEEDMOREPARAMS", 18); + return ; + } + allFds.userData[userNbr].userName = splitBuff[1]; + allFds.userData[userNbr].hostName = splitBuff[2]; + allFds.userData[userNbr].serverName = splitBuff[3]; - // allFds.userData[userNbr].realName = realName; - // if (!allFds.userData[userNbr].nickname.empty()) - // { - // allFds.userData[userNbr].registered = 1; - // print_registered_msg(allFds, userNbr); - // } + allFds.userData[userNbr].realName = realName; + if (!allFds.userData[userNbr].nickname.empty()) + { + allFds.userData[userNbr].registered = 1; + print_registered_msg(allFds, userNbr); + } } \ No newline at end of file diff --git a/srcs/commands/channel_op/invite.cpp b/srcs/commands/channel_op/invite.cpp new file mode 100644 index 0000000..3c8c227 --- /dev/null +++ b/srcs/commands/channel_op/invite.cpp @@ -0,0 +1,21 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* invite.cpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/02/11 19:19:56 by apommier #+# #+# */ +/* Updated: 2023/02/11 20:06:47 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../../../includes/ft_irc.hpp" + +void INVITE(std::string buffer, fdList &allFds, int userNbr) +{ + (void)buffer; + (void)allFds; + (void)userNbr; + return ; +} \ No newline at end of file diff --git a/srcs/commands/channel_op/kick.cpp b/srcs/commands/channel_op/kick.cpp new file mode 100644 index 0000000..5172677 --- /dev/null +++ b/srcs/commands/channel_op/kick.cpp @@ -0,0 +1,21 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* kick.cpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/02/11 19:19:32 by apommier #+# #+# */ +/* Updated: 2023/02/11 20:06:32 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../../../includes/ft_irc.hpp" + +void KICK(std::string buffer, fdList &allFds, int userNbr) +{ + (void)buffer; + (void)allFds; + (void)userNbr; + return ; +} \ No newline at end of file diff --git a/srcs/commands/channel_op/mode.cpp b/srcs/commands/channel_op/mode.cpp new file mode 100644 index 0000000..590010e --- /dev/null +++ b/srcs/commands/channel_op/mode.cpp @@ -0,0 +1,21 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* mode.cpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/02/11 19:19:30 by apommier #+# #+# */ +/* Updated: 2023/02/11 20:05:40 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../../../includes/ft_irc.hpp" + +void MODE(std::string buffer, fdList &allFds, int userNbr) +{ + (void)buffer; + (void)allFds; + (void)userNbr; + return ; +} diff --git a/srcs/commands/channel_op/topic.cpp b/srcs/commands/channel_op/topic.cpp new file mode 100644 index 0000000..5059cf8 --- /dev/null +++ b/srcs/commands/channel_op/topic.cpp @@ -0,0 +1,21 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* topic.cpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/02/11 19:19:52 by apommier #+# #+# */ +/* Updated: 2023/02/11 20:05:50 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../../../includes/ft_irc.hpp" + +void TOPIC(std::string buffer, fdList &allFds, int userNbr) +{ + (void)buffer; + (void)allFds; + (void)userNbr; + return ; +} \ No newline at end of file diff --git a/srcs/commands/not_done_cmd.cpp b/srcs/commands/not_done_cmd.cpp index af02cba..ece4d8c 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/02/11 08:53:59 by apommier ### ########.fr */ +/* Updated: 2023/02/11 20:06:45 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,29 +20,13 @@ void SERVER(std::string buffer, fdList &allFds, int userNbr) return ; } -void OPER(std::string buffer, fdList &allFds, int userNbr) -{ - (void)buffer; - (void)allFds; - (void)userNbr; - return ; -} - -void QUIT(std::string buffer, fdList &allFds, int userNbr) -{ - (void)buffer; - (void)allFds; - (void)userNbr; - return ; -} - -void SQUIT(std::string buffer, fdList &allFds, int userNbr) -{ - (void)buffer; - (void)allFds; - (void)userNbr; - return ; -} +// void OPER(std::string buffer, fdList &allFds, int userNbr) +// { +// (void)buffer; +// (void)allFds; +// (void)userNbr; +// return ; +// } void PART(std::string buffer, fdList &allFds, int userNbr) { @@ -52,21 +36,8 @@ void PART(std::string buffer, fdList &allFds, int userNbr) return ; } -void MODE(std::string buffer, fdList &allFds, int userNbr) -{ - (void)buffer; - (void)allFds; - (void)userNbr; - return ; -} -void TOPIC(std::string buffer, fdList &allFds, int userNbr) -{ - (void)buffer; - (void)allFds; - (void)userNbr; - return ; -} + void NAMES(std::string buffer, fdList &allFds, int userNbr) { @@ -84,21 +55,9 @@ void LIST(std::string buffer, fdList &allFds, int userNbr) return ; } -void INVITE(std::string buffer, fdList &allFds, int userNbr) -{ - (void)buffer; - (void)allFds; - (void)userNbr; - return ; -} -void KICK(std::string buffer, fdList &allFds, int userNbr) -{ - (void)buffer; - (void)allFds; - (void)userNbr; - return ; -} + + void VERSION(std::string buffer, fdList &allFds, int userNbr) { diff --git a/srcs/commands/operator/oper.cpp b/srcs/commands/operator/oper.cpp new file mode 100644 index 0000000..3e7d037 --- /dev/null +++ b/srcs/commands/operator/oper.cpp @@ -0,0 +1,24 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* oper.cpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/02/11 19:04:47 by apommier #+# #+# */ +/* Updated: 2023/02/11 20:04:53 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../../../includes/ft_irc.hpp" + +void OPER(std::string buffer, fdList &allFds, int userNbr) +{ + std::vector splitBuff; + split(buffer, ' ', splitBuff); + if (splitBuff.size() < 2) + { + /*change error*/cmd_error(allFds, allFds.userData[userNbr].fd, "431 * OPER :No nickname given\n"); + return ; + } +} \ No newline at end of file diff --git a/srcs/commands/other/quit.cpp b/srcs/commands/other/quit.cpp new file mode 100644 index 0000000..102d922 --- /dev/null +++ b/srcs/commands/other/quit.cpp @@ -0,0 +1,21 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* quit.cpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/02/11 19:10:26 by apommier #+# #+# */ +/* Updated: 2023/02/11 19:10:44 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../../../includes/ft_irc.hpp" + +void QUIT(std::string buffer, fdList &allFds, int userNbr) +{ + (void)buffer; + (void)allFds; + (void)userNbr; + return ; +} \ No newline at end of file diff --git a/srcs/commands/other/squit.cpp b/srcs/commands/other/squit.cpp new file mode 100644 index 0000000..4d39df5 --- /dev/null +++ b/srcs/commands/other/squit.cpp @@ -0,0 +1,21 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* squit.cpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/02/11 19:11:03 by apommier #+# #+# */ +/* Updated: 2023/02/11 19:11:22 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../../../includes/ft_irc.hpp" + +void SQUIT(std::string buffer, fdList &allFds, int userNbr) +{ + (void)buffer; + (void)allFds; + (void)userNbr; + return ; +} \ No newline at end of file diff --git a/srcs/commands/parse_commands.cpp b/srcs/commands/parse_commands.cpp index fc7ffde..745aaf9 100644 --- a/srcs/commands/parse_commands.cpp +++ b/srcs/commands/parse_commands.cpp @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/12/06 22:01:25 by apommier #+# #+# */ -/* Updated: 2023/02/11 15:11:24 by apommier ### ########.fr */ +/* Updated: 2023/02/11 22:51:59 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/srcs/server_loop.cpp b/srcs/server_loop.cpp index cb944e4..545a913 100644 --- a/srcs/server_loop.cpp +++ b/srcs/server_loop.cpp @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/12/06 21:58:13 by apommier #+# #+# */ -/* Updated: 2023/02/11 14:06:49 by apommier ### ########.fr */ +/* Updated: 2023/02/11 23:51:32 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -24,6 +24,7 @@ void start_loop(fdList &allFds) std::cout << "serverFd: " << allFds.serverFd << std::endl; while (alive) { + std::cout << "loop" << std::endl; //std::cout << "\n\n\nwhile alive event loop" << std::endl; //std::cout << "in loop nbr user = " << allFds.nbrUser << std::endl; eventNbr = epoll_wait(allFds.epollFd, allFds.events, MAX_EVENTS, 5000);