From f2725946e0658f078e6c76305f521409734425e7 Mon Sep 17 00:00:00 2001 From: Ladebeze66 Date: Sun, 19 May 2024 19:30:11 +0200 Subject: [PATCH] correctifs --- ft_irc3/.vscode/settings.json | 120 +++++------ ft_irc3/includes/AdditionalCommands.hpp | 11 +- ft_irc3/includes/Channel.hpp | 3 +- ft_irc3/includes/Client.hpp | 9 +- ft_irc3/includes/ClientManager.hpp | 13 +- ft_irc3/includes/CommandHandler.hpp | 13 +- ft_irc3/includes/ModeWhoHandler.hpp | 6 +- ft_irc3/includes/RPL.hpp | 221 ++++++++++++++++++++ ft_irc3/includes/Server.hpp | 3 +- ft_irc3/ircserv | Bin 0 -> 207752 bytes ft_irc3/logs/irc_server.log | 0 ft_irc3/obj/AdditionalCommands.o | Bin 0 -> 131192 bytes ft_irc3/obj/Channel.o | Bin 0 -> 58592 bytes ft_irc3/obj/Client.o | Bin 0 -> 5368 bytes ft_irc3/obj/ClientManager.o | Bin 0 -> 122368 bytes ft_irc3/obj/CommandHandler.o | Bin 0 -> 179272 bytes ft_irc3/obj/ModeWhoHandler.o | Bin 0 -> 93808 bytes ft_irc3/obj/Server.o | Bin 0 -> 113080 bytes ft_irc3/obj/Utils.o | Bin 0 -> 37984 bytes ft_irc3/obj/main.o | Bin 0 -> 4840 bytes ft_irc3/src/AdditionalCommands.cpp | 37 +++- ft_irc3/src/Client.cpp | 19 +- ft_irc3/src/ClientManager.cpp | 18 +- ft_irc3/src/CommandHandler.cpp | 259 ++++++++++++++++++------ ft_irc3/src/ModeWhoHandler.cpp | 28 +-- ft_irc3/src/Server.cpp | 103 ++++------ 26 files changed, 629 insertions(+), 234 deletions(-) create mode 100644 ft_irc3/includes/RPL.hpp create mode 100755 ft_irc3/ircserv create mode 100644 ft_irc3/logs/irc_server.log create mode 100644 ft_irc3/obj/AdditionalCommands.o create mode 100644 ft_irc3/obj/Channel.o create mode 100644 ft_irc3/obj/Client.o create mode 100644 ft_irc3/obj/ClientManager.o create mode 100644 ft_irc3/obj/CommandHandler.o create mode 100644 ft_irc3/obj/ModeWhoHandler.o create mode 100644 ft_irc3/obj/Server.o create mode 100644 ft_irc3/obj/Utils.o create mode 100644 ft_irc3/obj/main.o diff --git a/ft_irc3/.vscode/settings.json b/ft_irc3/.vscode/settings.json index 4649905..08b6cd5 100644 --- a/ft_irc3/.vscode/settings.json +++ b/ft_irc3/.vscode/settings.json @@ -1,65 +1,65 @@ { "files.associations": { - "array": "cpp", - "atomic": "cpp", - "bit": "cpp", - "*.tcc": "cpp", - "cctype": "cpp", - "clocale": "cpp", - "cmath": "cpp", - "compare": "cpp", - "concepts": "cpp", - "cstdarg": "cpp", - "cstddef": "cpp", - "cstdint": "cpp", - "cstdio": "cpp", - "cstdlib": "cpp", - "cstring": "cpp", - "cwchar": "cpp", - "cwctype": "cpp", - "deque": "cpp", - "map": "cpp", - "string": "cpp", - "unordered_map": "cpp", - "vector": "cpp", - "exception": "cpp", - "algorithm": "cpp", - "functional": "cpp", - "iterator": "cpp", - "memory": "cpp", - "memory_resource": "cpp", - "numeric": "cpp", - "random": "cpp", - "string_view": "cpp", - "system_error": "cpp", - "tuple": "cpp", - "type_traits": "cpp", - "utility": "cpp", - "fstream": "cpp", - "initializer_list": "cpp", - "iosfwd": "cpp", - "iostream": "cpp", - "istream": "cpp", - "limits": "cpp", - "new": "cpp", - "numbers": "cpp", - "ostream": "cpp", - "sstream": "cpp", - "stdexcept": "cpp", - "streambuf": "cpp", - "typeinfo": "cpp", - "list": "cpp", - "chrono": "cpp", - "condition_variable": "cpp", - "ctime": "cpp", - "set": "cpp", - "ratio": "cpp", - "mutex": "cpp", - "semaphore": "cpp", - "stop_token": "cpp", - "thread": "cpp", - "cinttypes": "cpp" -}, + "array": "cpp", + "atomic": "cpp", + "bit": "cpp", + "*.tcc": "cpp", + "cctype": "cpp", + "clocale": "cpp", + "cmath": "cpp", + "compare": "cpp", + "concepts": "cpp", + "cstdarg": "cpp", + "cstddef": "cpp", + "cstdint": "cpp", + "cstdio": "cpp", + "cstdlib": "cpp", + "cstring": "cpp", + "cwchar": "cpp", + "cwctype": "cpp", + "deque": "cpp", + "map": "cpp", + "string": "cpp", + "unordered_map": "cpp", + "vector": "cpp", + "exception": "cpp", + "algorithm": "cpp", + "functional": "cpp", + "iterator": "cpp", + "memory": "cpp", + "memory_resource": "cpp", + "numeric": "cpp", + "random": "cpp", + "string_view": "cpp", + "system_error": "cpp", + "tuple": "cpp", + "type_traits": "cpp", + "utility": "cpp", + "fstream": "cpp", + "initializer_list": "cpp", + "iosfwd": "cpp", + "iostream": "cpp", + "istream": "cpp", + "limits": "cpp", + "new": "cpp", + "numbers": "cpp", + "ostream": "cpp", + "sstream": "cpp", + "stdexcept": "cpp", + "streambuf": "cpp", + "typeinfo": "cpp", + "list": "cpp", + "chrono": "cpp", + "condition_variable": "cpp", + "ctime": "cpp", + "set": "cpp", + "ratio": "cpp", + "mutex": "cpp", + "semaphore": "cpp", + "stop_token": "cpp", + "thread": "cpp", + "cinttypes": "cpp" + }, "C_Cpp_Runner.cCompilerPath": "gcc", "C_Cpp_Runner.cppCompilerPath": "g++", "C_Cpp_Runner.debuggerPath": "gdb", diff --git a/ft_irc3/includes/AdditionalCommands.hpp b/ft_irc3/includes/AdditionalCommands.hpp index e5ecb10..9786d3d 100644 --- a/ft_irc3/includes/AdditionalCommands.hpp +++ b/ft_irc3/includes/AdditionalCommands.hpp @@ -6,7 +6,7 @@ /* By: fgras-ca +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/05/16 15:23:58 by fgras-ca #+# #+# */ -/* Updated: 2024/05/16 16:03:22 by fgras-ca ### ########.fr */ +/* Updated: 2024/05/19 19:18:11 by fgras-ca ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,16 +17,21 @@ #include "Server.hpp" #include "Channel.hpp" #include "Utils.hpp" - +#include "RPL.hpp" #include #include +#include +// Forward declarations class Server; class Client; class Channel; +void sendWelcomeMessages(Client *client, Server *server); +void sendMotd(Client *client, Server *server); +void broadcastChannelList(Client *client, Server *server); void handlePartCommand(Server *server, Client *client, const std::string &command); void handleNickCommand(Server *server, Client *client, const std::string &command); void handlePrivmsgCommand(Server *server, Client *client, const std::string &command); -#endif +#endif // ADDITIONALCOMMANDS_HPP diff --git a/ft_irc3/includes/Channel.hpp b/ft_irc3/includes/Channel.hpp index 66f689c..40e1514 100644 --- a/ft_irc3/includes/Channel.hpp +++ b/ft_irc3/includes/Channel.hpp @@ -6,7 +6,7 @@ /* By: fgras-ca +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/05/15 12:41:35 by fgras-ca #+# #+# */ -/* Updated: 2024/05/17 20:08:13 by fgras-ca ### ########.fr */ +/* Updated: 2024/05/19 15:14:50 by fgras-ca ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,6 +17,7 @@ #include #include #include +#include "RPL.hpp" class Client; diff --git a/ft_irc3/includes/Client.hpp b/ft_irc3/includes/Client.hpp index 0f7a33e..9462e8e 100644 --- a/ft_irc3/includes/Client.hpp +++ b/ft_irc3/includes/Client.hpp @@ -6,7 +6,7 @@ /* By: fgras-ca +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/05/15 12:15:42 by fgras-ca #+# #+# */ -/* Updated: 2024/05/17 17:21:39 by fgras-ca ### ########.fr */ +/* Updated: 2024/05/19 15:38:28 by fgras-ca ### ########.fr */ /* */ /* ************************************************************************** */ @@ -18,13 +18,15 @@ class Client { public: - Client(int fd, const std::string &nickname, const std::string &user); + Client(int fd, const std::string &nickname, const std::string &user, const std::string &host, const std::string &password, const std::string &realname); int getFd() const; const std::string &getNickname() const; void setNickname(const std::string &nickname); const std::string &getUser() const; void setUser(const std::string &user); + const std::string &getHost() const; + void setHost(const std::string &host); const std::string &getPassword() const; void setPassword(const std::string &password); const std::string &getRealName() const; @@ -38,10 +40,11 @@ private: int _fd; std::string _nickname; std::string _user; + std::string _host; std::string _password; std::string _realname; bool _authenticated; bool _operator; }; -#endif +#endif // CLIENT_HPP diff --git a/ft_irc3/includes/ClientManager.hpp b/ft_irc3/includes/ClientManager.hpp index 4e6a1d9..57342ad 100644 --- a/ft_irc3/includes/ClientManager.hpp +++ b/ft_irc3/includes/ClientManager.hpp @@ -6,7 +6,7 @@ /* By: fgras-ca +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/05/15 18:30:07 by fgras-ca #+# #+# */ -/* Updated: 2024/05/17 18:51:44 by fgras-ca ### ########.fr */ +/* Updated: 2024/05/19 18:56:44 by fgras-ca ### ########.fr */ /* */ /* ************************************************************************** */ @@ -18,24 +18,31 @@ #include "Client.hpp" #include "Channel.hpp" #include "Server.hpp" -#include #include "CommandHandler.hpp" +#include "AdditionalCommands.hpp" +#include "RPL.hpp" #include "Utils.hpp" + +#include #include #include #include #include #include #include +#include +#include +#include +#include class Server; +class Client; class ClientManager { public: ClientManager(Server *server); void acceptClient(); - void broadcastChannelList(Client *client); void handleClient(int client_fd); void removeClient(int client_fd); diff --git a/ft_irc3/includes/CommandHandler.hpp b/ft_irc3/includes/CommandHandler.hpp index 1ae423b..303c6e6 100644 --- a/ft_irc3/includes/CommandHandler.hpp +++ b/ft_irc3/includes/CommandHandler.hpp @@ -6,7 +6,7 @@ /* By: fgras-ca +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/05/15 18:14:12 by fgras-ca #+# #+# */ -/* Updated: 2024/05/17 17:10:38 by fgras-ca ### ########.fr */ +/* Updated: 2024/05/19 19:13:53 by fgras-ca ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,6 +20,7 @@ #include "AdditionalCommands.hpp" #include "ModeWhoHandler.hpp" #include "CommandHandler.hpp" +#include "RPL.hpp" #include #include @@ -27,6 +28,7 @@ class Server; class ModeWhoHandler; +class AdditinalCommands; class CommandHandler { @@ -35,7 +37,16 @@ private: public: CommandHandler(Server *server); + bool isValidNickname(const std::string& nickname); + bool isNicknameInUse(const std::string& nickname); + void handleNick(Client* client, const std::vector& tokens); + + void handleUser(Client* client, const std::vector& tokens); + void handlePingCommand(Client* client, const std::vector& tokens); void handleCommand(Client *client, const std::string &command); + void handleCapCommand(Client* client, const std::vector& tokens); + void handlePassCommand(Client* client, const std::vector& tokens); + void processCommand(Client *client, const std::string &command); void handleJoinCommand(Client *client, const std::string &channelName); std::string getUsersList(Channel *channel); diff --git a/ft_irc3/includes/ModeWhoHandler.hpp b/ft_irc3/includes/ModeWhoHandler.hpp index 6aa083b..711ccd9 100644 --- a/ft_irc3/includes/ModeWhoHandler.hpp +++ b/ft_irc3/includes/ModeWhoHandler.hpp @@ -6,7 +6,7 @@ /* By: fgras-ca +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/05/17 16:08:48 by fgras-ca #+# #+# */ -/* Updated: 2024/05/17 18:08:06 by fgras-ca ### ########.fr */ +/* Updated: 2024/05/19 15:15:39 by fgras-ca ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,6 +17,10 @@ #include "Client.hpp" #include "Channel.hpp" #include "Utils.hpp" +#include "RPL.hpp" + +#include +#include class Server; diff --git a/ft_irc3/includes/RPL.hpp b/ft_irc3/includes/RPL.hpp new file mode 100644 index 0000000..52990b2 --- /dev/null +++ b/ft_irc3/includes/RPL.hpp @@ -0,0 +1,221 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* RPL.hpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: fgras-ca +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/05/19 15:12:47 by fgras-ca #+# #+# */ +/* Updated: 2024/05/19 19:07:25 by fgras-ca ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef RPL_HPP +#define RPL_HPP + +#include +#include +#include "Client.hpp" + +#define SERVER_NAME "IRC_Server" +#define SERVER_VERSION "1.0" +#define USER_MODES "iw" +#define CHANNEL_MODES "nt" +#define CHANNEL_MODES_WITH_PARAMS "kl" + + + +// Macros pour accéder aux champs du client +#define CLIENT_FD(client) (client->getFd()) +#define CLIENT_NICK(client) ((client)->getNickname()) +#define CLIENT_USER(client) ((client)->getUser()) +#define CLIENT_HOST(client) ((client)->getHost()) + +// Fonctions pour générer les réponses RPL +inline std::string RPL_WELCOME(Client* client) { + std::ostringstream oss; + oss << ":" << SERVER_NAME << " 001 " << CLIENT_FD(client) + << " :Welcome to the Internet Relay Network " << CLIENT_NICK(client) + << "!" << CLIENT_USER(client) << "@" << CLIENT_HOST(client) << "\r\n"; + return oss.str(); +} + +inline std::string RPL_YOURHOST(Client* client) { + std::ostringstream oss; + oss << ":" << SERVER_NAME << " 002 " << CLIENT_FD(client) + << " :Your host is " << SERVER_NAME << ", running version " << SERVER_VERSION << "\r\n"; + return oss.str(); +} + +inline std::string RPL_CREATED(Client* client) { + std::ostringstream oss; + oss << ":" << SERVER_NAME << " 003 " << CLIENT_FD(client) + << " :This server was created " << __DATE__ << "\r\n"; + return oss.str(); +} + +inline std::string RPL_MYINFO(Client* client) { + std::ostringstream oss; + oss << ":" << SERVER_NAME << " 004 " << CLIENT_FD(client) << " " + << SERVER_NAME << " " << SERVER_VERSION << " " + << USER_MODES << " " << CHANNEL_MODES << " " + << CHANNEL_MODES_WITH_PARAMS << "\r\n"; + return oss.str(); +} + +inline std::string RPL_ISUPPORT(Client* client, const std::string& tokens) { + std::ostringstream oss; + oss << ":" << SERVER_NAME << " 005 " << CLIENT_FD(client) + << " " << tokens << " :are supported by this server\r\n"; + return oss.str(); +} + +inline std::string RPL_MOTDSTART(Client* client) { + std::ostringstream oss; + oss << ":" << SERVER_NAME << " 375 " << CLIENT_FD(client) + << " :- " << SERVER_NAME << " Message of the day - \r\n"; + return oss.str(); +} + +inline std::string RPL_MOTD(Client* client, const std::string& line) { + std::ostringstream oss; + oss << ":" << SERVER_NAME << " 372 " << CLIENT_FD(client) + << " :- " << line << "\r\n"; + return oss.str(); +} + +inline std::string RPL_ENDOFMOTD(Client* client) { + std::ostringstream oss; + oss << ":" << SERVER_NAME << " 376 " << CLIENT_FD(client) + << " :End of /MOTD command.\r\n"; + return oss.str(); +} + +inline std::string ERR_NOMOTD(Client* client) { + std::ostringstream oss; + oss << ":" << SERVER_NAME << " 422 " << CLIENT_FD(client) + << " :MOTD File is missing\r\n"; + return oss.str(); +} + +// RPL Channel List Messages +inline std::string RPL_LIST(Client* client, const std::string& channel, int numVisible, const std::string& topic) { + std::ostringstream oss; + oss << ":" << SERVER_NAME << " 322 " << CLIENT_FD(client) << " " << channel + << " " << numVisible << " :" << topic << "\r\n"; + return oss.str(); +} + +inline std::string RPL_LISTEND(Client* client) { + std::ostringstream oss; + oss << ":" << SERVER_NAME << " 323 " << CLIENT_FD(client) + << " :End of /LIST\r\n"; + return oss.str(); +} + +//RPL Password +// RPL Error Messages +inline std::string ERR_NEEDMOREPARAMS(Client* client, const std::string& command) +{ + std::ostringstream oss; + oss << ":" << SERVER_NAME << " 461 " << CLIENT_FD(client) << " " << command << " :Not enough parameters\r\n"; + return oss.str(); +} + +inline std::string ERR_ALREADYREGISTERED(Client* client) +{ + std::ostringstream oss; + oss << ":" << SERVER_NAME << " 462 " << CLIENT_FD(client) << " :You may not reregister\r\n"; + return oss.str(); +} + +inline std::string ERR_PASSWDMISMATCH(Client* client) +{ + std::ostringstream oss; + oss << ":" << SERVER_NAME << " 464 " << CLIENT_FD(client) << " :Password incorrect\r\n"; + return oss.str(); +} + +inline std::string ERR_NOTREGISTERED(Client* client) +{ + std::ostringstream oss; + oss << ":" << SERVER_NAME << " 451 " << CLIENT_FD(client) << " :You have not registered\r\n"; + return oss.str(); +} + +inline std::string ERR_NONICKNAMEGIVEN(Client* client) +{ + std::ostringstream oss; + oss << ":" << SERVER_NAME << " 431 " << CLIENT_FD(client) << " :No nickname given\r\n"; + return oss.str(); +} + +inline std::string ERR_ERRONEUSNICKNAME(Client* client, const std::string& nickname) +{ + std::ostringstream oss; + oss << ":" << SERVER_NAME << " 432 " << CLIENT_FD(client) << " " << nickname << " :Erroneous nickname\r\n"; + return oss.str(); +} + +inline std::string ERR_NICKNAMEINUSE(Client* client, const std::string& nickname) +{ + std::ostringstream oss; + oss << ":" << SERVER_NAME << " 433 " << CLIENT_FD(client) << " " << nickname << " :Nickname is already in use\r\n"; + return oss.str(); +} + +// RPL Error Messages +inline std::string ERR_NOORIGIN(Client* client) +{ + std::ostringstream oss; + oss << ":" << SERVER_NAME << " 409 " << CLIENT_FD(client) << " :No origin specified\r\n"; + return oss.str(); +} + +// PONG Reply +inline std::string RPL_PONG(const std::string& token) +{ + std::ostringstream oss; + oss << ":" << SERVER_NAME << " PONG " << SERVER_NAME << " " << token << "\r\n"; + return oss.str(); +} + +// ERR_UNKNOWNCOMMAND (421) +inline std::string ERR_UNKNOWNCOMMAND(Client* client, const std::string& command) +{ + std::ostringstream oss; + oss << ":" << SERVER_NAME << " 421 " << CLIENT_FD(client) << " " << command << " :Unknown command\r\n"; + return oss.str(); +} + +// RPL Channel List Messages +inline std::string RPL_LIST(int clientFd, const std::string& channel, int numVisible, const std::string& topic) +{ + std::ostringstream oss; + oss << ":" << SERVER_NAME << " 322 " << clientFd << " " << channel << " " << numVisible << " :" << topic << "\r\n"; + return oss.str(); +} + +inline std::string RPL_LISTEND(int clientFd) +{ + std::ostringstream oss; + oss << ":" << SERVER_NAME << " 323 " << clientFd << " :End of /LIST\r\n"; + return oss.str(); +} + +inline std::string ERR_NEEDMOREPARAMS(int clientFd, const std::string& command) +{ + std::ostringstream oss; + oss << ":" << SERVER_NAME << " 461 " << clientFd << " " << command << " :Not enough parameters\r\n"; + return oss.str(); +} + +inline std::string ERR_UNKNOWNCOMMAND(int clientFd, const std::string& command) +{ + std::ostringstream oss; + oss << ":" << SERVER_NAME << " 421 " << clientFd << " " << command << " :Unknown command\r\n"; + return oss.str(); +} + + +#endif // RPL_HPP diff --git a/ft_irc3/includes/Server.hpp b/ft_irc3/includes/Server.hpp index 3dd93e3..0d071dc 100644 --- a/ft_irc3/includes/Server.hpp +++ b/ft_irc3/includes/Server.hpp @@ -6,7 +6,7 @@ /* By: fgras-ca +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/05/15 12:15:13 by fgras-ca #+# #+# */ -/* Updated: 2024/05/17 20:03:06 by fgras-ca ### ########.fr */ +/* Updated: 2024/05/19 16:30:56 by fgras-ca ### ########.fr */ /* */ /* ************************************************************************** */ @@ -19,6 +19,7 @@ #include "ClientManager.hpp" #include "CommandHandler.hpp" #include "AdditionalCommands.hpp" +#include "RPL.hpp" #include #include diff --git a/ft_irc3/ircserv b/ft_irc3/ircserv new file mode 100755 index 0000000000000000000000000000000000000000..7508ad628015cd72054b82bff3cc07ca76d7e371 GIT binary patch literal 207752 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 literal 0 HcmV?d00001 diff --git a/ft_irc3/obj/Channel.o b/ft_irc3/obj/Channel.o new file mode 100644 index 0000000000000000000000000000000000000000..a5a03f397c318860cc465a99ba5f8a2a15e728e7 GIT binary patch literal 58592 zcmeHw4SZF_weL;>5*1B~s8p$jNGX0aCXr986@;S)K}-p$)K(86IU%X}B00gJqO?#Y z1uTABYZZIB-c+f@&th$D6cn`7rrN92Qj8UAC{$DR_2&8L<*hZdX7<{1X0p#leEr?u z@6C^MX7+#9nzd%lnl-a`_8hK{&AK2vE6Y%0DldclTU7ow%4D&x@n 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 DEwdW> literal 0 HcmV?d00001 diff --git a/ft_irc3/obj/ClientManager.o b/ft_irc3/obj/ClientManager.o new file mode 100644 index 0000000000000000000000000000000000000000..d4b69bf8c523a09259958a92c9f05cbb427839bb GIT binary patch literal 122368 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 z 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 literal 0 HcmV?d00001 diff --git a/ft_irc3/obj/ModeWhoHandler.o b/ft_irc3/obj/ModeWhoHandler.o new file mode 100644 index 0000000000000000000000000000000000000000..30531d0c8e14275da644ffdc572dbd0f2b65c47a GIT binary patch literal 93808 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 literal 0 HcmV?d00001 diff --git a/ft_irc3/obj/main.o b/ft_irc3/obj/main.o new file mode 100644 index 0000000000000000000000000000000000000000..3beabb47d2a3ba9f7a90fb79e47cff1b08361902 GIT binary patch literal 4840 zcmbuDUu+ab7{KT5D6LZ91XQFzicx|h>s?zAu#!T#vQ0~AdaW9;8Mk{&yW#HkvbzUY zOf{sIa5*m_7<`ZyUL?`@;)5{;1p*1`3&d!|7d0W8)If~H7h)RE@0*>un=ZFR;zxF8 z=QrQK{bp`v%Ug;5o^U8cgoMZrQtJsy$n4_Ua~FH;A}h#pru#7T7s2({(zSn&sKwus z>ap8R;H3EF+&`6yTKx1+Xi{ov!P6T+OD!g5!E6pGz?}@|2eN#Cs|yYhEv)kBc}fv+u&oj$Uaw&>qi_5l0(0 zwzrbj&YWetJD|}V=ZIyec950>u?(qHLhJWt2{{#RC`QP|aKq&YxfX8tC_-+s=R4tT zg!~*~QL(i5%AW4-?X4R|#`0M=-x`lA9ZGCdJkPrEH{05jSjRIQGus7lkHUo>_Y91X zFd>(aMc_hN?KLEHbg+MjgbLBdGe}xmnj4!=!s|T+9lTKffIixi#FFUoaQEVc>U1RX zQwTH({MI}P9c5lZ!XEvL7%!uWunq5Jb~x6F9OMbSiSa=;jHIq${Ymy0T&|d zMggn~V^*F(X_-vI9p}+6(*Wvm{9)GP-v;nz$h)5YngIS}0DnG!=K}at0KXi-zYE|u z1NdqvalQB27{F5j_2~@IA4U$BU$g-I$pB6=nweGfT#nHFNw?!T^Cf#^kpU`aT+M4M)y?P=s1gw2bb07l?q8VDIS0AQ{ z*+}*hUxImUHu8_`8Besbg%y3Jc4Bmd~QM0fuxmo5`#TMNh?VcL~|{8 zF`yb`(;ZJ7W*zqhO7%h^9*?(qxj|}XcD!CZW{8%M?@(W|-HUKjNtu#GSO;`K*^C2O`LWyY(zbvPVpq>LJ6)XAHttgMNtW6Nl(Q%}jg6*lJo1 zg*q4=y|75UBGHs%(Fs^3X|RIwx$~7g=TJk9YOYa$#a7#kaY^HuF$aemN)KP)$njfB z@Bz;8Txga!?r$i<54I?}*RXR$)_)^_&u}jMh@J6dfd2bF{WZM*L4f|poIeZg61c>B zeJ1HImG}*b4c1>Yxe{5TX`m-u56 zwkABngTy)mnbRC)rd0Y zI7G26uQRUe)F|ji&ZS@nI|G~zppQoj)ofdv)BuD4)OOVi{E|_266xO z=P!V$m+&F_qV0o$y7lK1FY1i-M;l=$xCRV!iuel9#1j(wpu)u8e+?*$@3TKqCqAw} zVK3sBfnod@T(U%Ye4JldMEykj9t?_SS+Db+f_kHV-E)BPuNq(aq>J0PdS=zT$X|d9 z@PI!3_OEmMvqF)#e*4dX*PFkyynY34hx3Q$v9K5Qs~4M@pi_`po*16N_>=V8Bdb@c cS-v40_q~|EewbH1`<49vrLM!cEPnfc0Vw2vWdHyG literal 0 HcmV?d00001 diff --git a/ft_irc3/src/AdditionalCommands.cpp b/ft_irc3/src/AdditionalCommands.cpp index ddec897..3655143 100644 --- a/ft_irc3/src/AdditionalCommands.cpp +++ b/ft_irc3/src/AdditionalCommands.cpp @@ -6,12 +6,47 @@ /* By: fgras-ca +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/05/16 15:27:29 by fgras-ca #+# #+# */ -/* Updated: 2024/05/17 20:15:14 by fgras-ca ### ########.fr */ +/* Updated: 2024/05/19 19:22:28 by fgras-ca ### ########.fr */ /* */ /* ************************************************************************** */ #include "AdditionalCommands.hpp" +void sendWelcomeMessages(Client *client, Server *server) { + server->sendToClient(client->getFd(), RPL_WELCOME(client)); + server->sendToClient(client->getFd(), RPL_YOURHOST(client)); + server->sendToClient(client->getFd(), RPL_CREATED(client)); + server->sendToClient(client->getFd(), RPL_MYINFO(client)); + server->sendToClient(client->getFd(), RPL_ISUPPORT(client, "MODES=EXAMPLE")); + + sendMotd(client, server); +} + +void sendMotd(Client *client, Server *server) { + std::ifstream motdFile("motd.txt"); + if (motdFile.is_open()) { + std::string line; + server->sendToClient(client->getFd(), RPL_MOTDSTART(client)); + while (std::getline(motdFile, line)) { + server->sendToClient(client->getFd(), RPL_MOTD(client, line)); + } + server->sendToClient(client->getFd(), RPL_ENDOFMOTD(client)); + motdFile.close(); + } else { + server->sendToClient(client->getFd(), ERR_NOMOTD(client)); + } +} + +void broadcastChannelList(Client *client, Server *server) +{ + std::map &channels = server->getChannels(); + for (std::map::iterator it = channels.begin(); it != channels.end(); ++it) + { + server->sendToClient(client->getFd(), RPL_LIST(client->getFd(), it->first, it->second->getClients().size(), "Existing channel")); + } + server->sendToClient(client->getFd(), RPL_LISTEND(client->getFd())); +} + // Fonction pour gérer la commande PART void handlePartCommand(Server *server, Client *client, const std::string &command) { diff --git a/ft_irc3/src/Client.cpp b/ft_irc3/src/Client.cpp index caaa524..8216760 100644 --- a/ft_irc3/src/Client.cpp +++ b/ft_irc3/src/Client.cpp @@ -6,17 +6,16 @@ /* By: fgras-ca +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/05/15 12:17:42 by fgras-ca #+# #+# */ -/* Updated: 2024/05/17 17:20:02 by fgras-ca ### ########.fr */ +/* Updated: 2024/05/19 15:38:46 by fgras-ca ### ########.fr */ /* */ /* ************************************************************************** */ #include "Client.hpp" -Client::Client(int fd, const std::string &nickname, const std::string &user) - : _fd(fd), _nickname(nickname), _user(user), _authenticated(false), _operator(false) +Client::Client(int fd, const std::string &nickname, const std::string &user, const std::string &host, const std::string &password, const std::string &realname) + : _fd(fd), _nickname(nickname), _user(user), _host(host), _password(password), _realname(realname), _authenticated(false), _operator(false) { } - int Client::getFd() const { return _fd; @@ -42,6 +41,16 @@ void Client::setUser(const std::string &user) _user = user; } +const std::string &Client::getHost() const +{ + return _host; +} + +void Client::setHost(const std::string &host) +{ + _host = host; +} + const std::string &Client::getPassword() const { return _password; @@ -86,6 +95,8 @@ void Client::setOperator(bool isOperator) + + /*Client::Client(int fd) Description: Constructeur de la classe Client. Initialise le client avec le descripteur de fichier fourni. diff --git a/ft_irc3/src/ClientManager.cpp b/ft_irc3/src/ClientManager.cpp index 9f39981..426e767 100644 --- a/ft_irc3/src/ClientManager.cpp +++ b/ft_irc3/src/ClientManager.cpp @@ -6,7 +6,7 @@ /* By: fgras-ca +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/05/15 18:32:23 by fgras-ca #+# #+# */ -/* Updated: 2024/05/17 18:53:09 by fgras-ca ### ########.fr */ +/* Updated: 2024/05/19 18:55:55 by fgras-ca ### ########.fr */ /* */ /* ************************************************************************** */ @@ -26,7 +26,8 @@ void ClientManager::acceptClient() return; } - _server->_clients[client_fd] = new Client(client_fd, "", ""); // Initialize with default values + Client *newClient = new Client(client_fd, "", "", "", "", ""); // Fournir six arguments + _server->_clients[client_fd] = newClient; struct pollfd client_pollfd; client_pollfd.fd = client_fd; client_pollfd.events = POLLIN; @@ -35,16 +36,8 @@ void ClientManager::acceptClient() std::stringstream ss; ss << "Client connected: " << client_fd; _server->log(ss.str(), GREEN); -} -void ClientManager::broadcastChannelList(Client *client) { - std::map &channels = _server->getChannels(); - for (std::map::iterator it = channels.begin(); it != channels.end(); ++it) { - std::stringstream channelMsg; - channelMsg << ":server 322 " << client->getNickname() << " " << it->first << " :Existing channel\r\n"; - _server->sendToClient(client->getFd(), channelMsg.str()); - } - _server->sendToClient(client->getFd(), ":server 323 " + client->getNickname() + " :End of /LIST\r\n"); + sendWelcomeMessages(newClient, _server); } void ClientManager::handleClient(int client_fd) @@ -69,12 +62,10 @@ void ClientManager::handleClient(int client_fd) while (std::getline(message_stream, line)) { - // Suppression des caractères de fin de ligne line.erase(std::remove(line.begin(), line.end(), '\r'), line.end()); line.erase(std::remove(line.begin(), line.end(), '\n'), line.end()); _server->_commandHandler->handleCommand(client, line); - broadcastChannelList(_server->_clients[client_fd]); } } @@ -83,7 +74,6 @@ void ClientManager::removeClient(int client_fd) Client *client = _server->_clients[client_fd]; if (client) { - // Retirer le client de tous les canaux auxquels il appartient std::map::iterator it = _server->_channels.begin(); while (it != _server->_channels.end()) { diff --git a/ft_irc3/src/CommandHandler.cpp b/ft_irc3/src/CommandHandler.cpp index 36d3a07..480b1b8 100644 --- a/ft_irc3/src/CommandHandler.cpp +++ b/ft_irc3/src/CommandHandler.cpp @@ -6,7 +6,7 @@ /* By: fgras-ca +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/05/15 18:26:34 by fgras-ca #+# #+# */ -/* Updated: 2024/05/17 20:05:16 by fgras-ca ### ########.fr */ +/* Updated: 2024/05/19 19:13:14 by fgras-ca ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,77 +17,191 @@ CommandHandler::CommandHandler(Server *server) { } -void CommandHandler::handleCommand(Client *client, const std::string &command) +void CommandHandler::handleCommand(Client* client, const std::string& command) { std::vector tokens = split(command, " \n\r\t"); - if (tokens.empty()) - { + if (tokens.empty()) { return; } std::string commandType = tokens[0]; - if (commandType == "CAP") - {} - else if (commandType == "PASS") - { - if (tokens.size() > 1 && tokens[1] == _server->_password) - { - client->setPassword(tokens[1]); - _server->sendToClient(client->getFd(), ":server 001 " + client->getNickname() + " :Password accepted!\r\n"); - _server->log("Client " + client->getNickname() + " provided correct password.", GREEN); - _server->sendChannelListToClient(client); - } - else - { - _server->sendToClient(client->getFd(), ":server 464 " + client->getNickname() + " :Invalid password\r\n"); - _server->log("Client " + client->getNickname() + " failed authentication password.", RED); - } - } - else if (commandType == "NICK") - { - if (tokens.size() > 1) - { - client->setNickname(tokens[1]); - std::stringstream ss; - ss << "Client " << client->getFd() << " Nickname: " << tokens[1]; - _server->log(ss.str(), GREEN); - _server->sendToClient(client->getFd(), ":" + tokens[1] + " NICK " + tokens[1] + "\r\n"); - } - } - else if (commandType == "USER") - { - if (tokens.size() > 4) - { - client->setUser(tokens[1]); - client->setRealName(tokens[4].substr(1)); // remove leading ':' - if (client->getPassword() == _server->_password && !client->getNickname().empty()) - { - client->authenticate(); - std::stringstream welcomeMsg; - welcomeMsg << ":server 001 " << client->getNickname() << " :Welcome to the IRC server!\r\n"; - _server->sendToClient(client->getFd(), welcomeMsg.str()); - - _server->log("Client " + client->getNickname() + " authenticated.", GREEN); - _server->sendChannelListToClient(client); - } - } - } - else - { - if (!client->isAuthenticated()) - { - _server->sendToClient(client->getFd(), ":server 451 " + client->getNickname() + " :Please provide the password first\r\n"); - _server->log("Client " + client->getNickname() + " failed authentication.", RED); - } - else - { + if (commandType == "CAP") { + handleCapCommand(client, tokens); + } else if (commandType == "PASS") { + handlePassCommand(client, tokens); + } else if (commandType == "NICK") { + handleNick(client, tokens); + } else if (commandType == "USER") { + handleUser(client, tokens); + } else { + if (!client->isAuthenticated()) { + _server->sendToClient(client->getFd(), ERR_NOTREGISTERED(client)); + _server->log("Client " + client->getNickname() + " attempted to send a command before registering.", RED); + } else { processCommand(client, command); } } std::cout << "Client " << client->getFd() << " " << client->getNickname() << " " << client->getUser() << " " << client->getPassword() << " " << client->getRealName() << std::endl; } +void CommandHandler::handleCapCommand(Client* client, const std::vector& tokens) +{ + if (tokens.size() < 2) + { + _server->sendToClient(client->getFd(), ERR_NEEDMOREPARAMS(client->getFd(), "CAP")); + return; + } + + std::string subcommand = tokens[1]; + + if (subcommand == "LS") + { + // Example for CAP LS response + std::vector capLines; + capLines.push_back("multi-prefix extended-join account-notify batch invite-notify tls"); + capLines.push_back("cap-notify server-time example.org/dummy-cap=dummyvalue example.org/second-dummy-cap"); + capLines.push_back("userhost-in-names sasl=EXTERNAL,DH-AES,DH-BLOWFISH,ECDSA-NIST256P-CHALLENGE,PLAIN"); + + for (size_t i = 0; i < capLines.size(); ++i) + { + std::ostringstream oss; + oss << ":irc.example.com CAP " << client->getNickname() << " LS"; + if (i != capLines.size() - 1) + oss << " * :"; + else + oss << " :"; + oss << capLines[i] << "\r\n"; + _server->sendToClient(client->getFd(), oss.str()); + } + } + else if (subcommand == "LIST") + { + // Example for CAP LIST response + std::ostringstream oss; + oss << ":irc.example.com CAP " << client->getNickname() << " LIST :example.org/example-cap example.org/second-example-cap account-notify invite-notify batch example.org/third-example-cap\r\n"; + _server->sendToClient(client->getFd(), oss.str()); + } + else if (subcommand == "REQ") + { + if (tokens.size() < 3) + { + _server->sendToClient(client->getFd(), ERR_NEEDMOREPARAMS(client->getFd(), "CAP")); + return; + } + + // Example for CAP REQ response + std::string requestedCaps = tokens[2]; + std::ostringstream ackResponse; + ackResponse << ":irc.example.com CAP " << client->getNickname() << " ACK :" << requestedCaps << "\r\n"; + _server->sendToClient(client->getFd(), ackResponse.str()); + } + else if (subcommand == "END") + { + // Example for CAP END response + _server->sendToClient(client->getFd(), ":irc.example.com CAP " + client->getNickname() + " END\r\n"); + } + else + { + // Unknown CAP subcommand + _server->sendToClient(client->getFd(), ERR_UNKNOWNCOMMAND(client->getFd(), "CAP")); + } +} + +void CommandHandler::handlePassCommand(Client* client, const std::vector& tokens) +{ + if (tokens.size() < 2) { + _server->sendToClient(client->getFd(), ERR_NEEDMOREPARAMS(client, "PASS")); + return; + } + + if (client->isAuthenticated()) { + _server->sendToClient(client->getFd(), ERR_ALREADYREGISTERED(client)); + return; + } + + if (tokens[1] == _server->_password) { + client->setPassword(tokens[1]); + _server->sendToClient(client->getFd(), ":server NOTICE * :Password accepted\r\n"); + _server->log("Client " + client->getNickname() + " provided correct password.", GREEN); + } else { + _server->sendToClient(client->getFd(), ERR_PASSWDMISMATCH(client)); + _server->log("Client " + client->getNickname() + " failed authentication password.", RED); + // Optionally disconnect the client here + } +} + +bool CommandHandler::isValidNickname(const std::string& nickname) +{ + // Implement nickname validation according to IRC protocol + if (nickname.empty() || nickname[0] == '#' || nickname[0] == ':' || nickname.find(' ') != std::string::npos) { + return false; + } + return true; +} + +bool CommandHandler::isNicknameInUse(const std::string& nickname) +{ + for (std::map::iterator it = _server->_clients.begin(); it != _server->_clients.end(); ++it) { + if (it->second->getNickname() == nickname) { + return true; + } + } + return false; +} + +void CommandHandler::handleNick(Client* client, const std::vector& tokens) +{ + if (tokens.size() < 2) { + _server->sendToClient(client->getFd(), ERR_NONICKNAMEGIVEN(client)); + return; + } + + std::string newNick = tokens[1]; + + if (!isValidNickname(newNick)) { + _server->sendToClient(client->getFd(), ERR_ERRONEUSNICKNAME(client, newNick)); + return; + } + + if (isNicknameInUse(newNick)) { + _server->sendToClient(client->getFd(), ERR_NICKNAMEINUSE(client, newNick)); + return; + } + + std::string oldNick = client->getNickname(); + client->setNickname(newNick); + + if (!oldNick.empty()) { + _server->broadcast(":" + oldNick + " NICK " + newNick + "\r\n"); + } + + _server->sendToClient(client->getFd(), ":" + newNick + " NICK " + newNick + "\r\n"); + _server->log("Client " + oldNick + " changed nickname to " + newNick, GREEN); +} + +void CommandHandler::handleUser(Client* client, const std::vector& tokens) +{ + if (tokens.size() < 5) { + _server->sendToClient(client->getFd(), ERR_NEEDMOREPARAMS(client, "USER")); + return; + } + + if (client->isAuthenticated()) { + _server->sendToClient(client->getFd(), ERR_ALREADYREGISTERED(client)); + return; + } + + client->setUser(tokens[1]); + client->setRealName(tokens[4].substr(1)); // remove leading ':' + + if (client->getPassword() == _server->_password && !client->getNickname().empty()) { + client->authenticate(); + sendWelcomeMessages(client, _server); + _server->log("Client " + client->getNickname() + " authenticated.", GREEN); + } +} + void CommandHandler::processCommand(Client *client, const std::string &command) { if (command.find("JOIN") == 0) @@ -116,12 +230,19 @@ void CommandHandler::processCommand(Client *client, const std::string &command) { ModeWhoHandler whoHandler(_server); whoHandler.handleWhoCommand(client, command); + } + else if (command.find("PING") == 0) + { + std::vector tokens = split(command, " "); + handlePingCommand(client, tokens); + } + else if (command.find("LIST") == 0) + { + broadcastChannelList(client, _server); } else { - std::stringstream ss; - ss << ":server 421 " << client->getNickname() << " " << command << " :Unknown command\r\n"; - _server->sendToClient(client->getFd(), ss.str()); + _server->sendToClient(client->getFd(), ERR_UNKNOWNCOMMAND(client, command)); _server->log("Message from client " + client->getNickname() + ": " + command, MAGENTA); } } @@ -155,9 +276,6 @@ void CommandHandler::handleJoinCommand(Client *client, const std::string &channe _server->log(ss.str(), MAGENTA); } - - - std::string CommandHandler::getUsersList(Channel *channel) { std::vector clients = channel->getClients(); @@ -172,3 +290,14 @@ std::string CommandHandler::getUsersList(Channel *channel) ss << "\r\n"; return ss.str(); } + +void CommandHandler::handlePingCommand(Client* client, const std::vector& tokens) +{ + if (tokens.size() < 2) { + _server->sendToClient(client->getFd(), ERR_NEEDMOREPARAMS(client, "PING")); + return; + } + + std::string token = tokens[1]; + _server->sendToClient(client->getFd(), RPL_PONG(token)); +} diff --git a/ft_irc3/src/ModeWhoHandler.cpp b/ft_irc3/src/ModeWhoHandler.cpp index cbc98a2..ef39134 100644 --- a/ft_irc3/src/ModeWhoHandler.cpp +++ b/ft_irc3/src/ModeWhoHandler.cpp @@ -6,22 +6,12 @@ /* By: fgras-ca +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/05/17 16:09:20 by fgras-ca #+# #+# */ -/* Updated: 2024/05/17 18:24:34 by fgras-ca ### ########.fr */ +/* Updated: 2024/05/18 16:41:10 by fgras-ca ### ########.fr */ /* */ /* ************************************************************************** */ #include "ModeWhoHandler.hpp" #include "Channel.hpp" -#include -#include - -// Couleurs ANSI pour les logs -#define RESET "\033[0m" -#define GREEN "\033[32m" -#define YELLOW "\033[33m" -#define RED "\033[31m" -#define BLUE "\033[34m" -#define MAGENTA "\033[35m" ModeWhoHandler::ModeWhoHandler(Server *server) : _server(server) @@ -37,7 +27,7 @@ void ModeWhoHandler::handleModeCommand(Client *client, const std::string &comman std::map &channels = _server->getChannels(); if (channels.find(channelName) == channels.end()) { - _server->sendToClient(client->getFd(), ":server 403 " + client->getNickname() + " " + channelName + " :No such channel\r\n"); + _server->sendToClient(client->getFd(), ":" SERVER_NAME " 403 " + client->getNickname() + " " + channelName + " :No such channel\r\n"); return; } @@ -55,12 +45,12 @@ void ModeWhoHandler::handleModeCommand(Client *client, const std::string &comman } else { - _server->sendToClient(client->getFd(), ":server 401 " + client->getNickname() + " " + user + " :No such nick/channel\r\n"); + _server->sendToClient(client->getFd(), ":" SERVER_NAME " 401 " + client->getNickname() + " " + user + " :No such nick/channel\r\n"); } } else { - _server->sendToClient(client->getFd(), ":server 482 " + client->getNickname() + " " + channelName + " :You're not channel operator\r\n"); + _server->sendToClient(client->getFd(), ":" SERVER_NAME " 482 " + client->getNickname() + " " + channelName + " :You're not channel operator\r\n"); } } } @@ -74,7 +64,7 @@ void ModeWhoHandler::handleWhoCommand(Client *client, const std::string &command std::map &channels = _server->getChannels(); if (channels.find(channelName) == channels.end()) { - _server->sendToClient(client->getFd(), ":server 403 " + client->getNickname() + " " + channelName + " :No such channel\r\n"); + _server->sendToClient(client->getFd(), ":" SERVER_NAME " 403 " + client->getNickname() + " " + channelName + " :No such channel\r\n"); return; } @@ -84,12 +74,12 @@ void ModeWhoHandler::handleWhoCommand(Client *client, const std::string &command for (size_t i = 0; i < channelClients.size(); ++i) { std::stringstream whoMsg; - whoMsg << ":server 352 " << client->getNickname() << " " << channelName << " " << channelClients[i]->getNickname() << " " - << channelClients[i]->getUser() << " " << _server->getPassword() << " " << channelClients[i]->getRealName() << "\r\n"; + whoMsg << ":" SERVER_NAME " 352 " << client->getNickname() << " " << channelName << " " << channelClients[i]->getNickname() << " " + << channelClients[i]->getUser() << " " << channelClients[i]->getHost() << " " << _server->getPassword() << " " << channelClients[i]->getRealName() << "\r\n"; _server->sendToClient(client->getFd(), whoMsg.str()); } std::stringstream endOfWhoMsg; - endOfWhoMsg << ":server 315 " << client->getNickname() << " " << channelName << " :End of /WHO list.\r\n"; + endOfWhoMsg << ":" SERVER_NAME " 315 " << client->getNickname() << " " << channelName << " :End of /WHO list.\r\n"; _server->sendToClient(client->getFd(), endOfWhoMsg.str()); -} +} \ No newline at end of file diff --git a/ft_irc3/src/Server.cpp b/ft_irc3/src/Server.cpp index 9f7d52e..d41bd4e 100644 --- a/ft_irc3/src/Server.cpp +++ b/ft_irc3/src/Server.cpp @@ -6,7 +6,7 @@ /* By: fgras-ca +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/05/15 12:17:12 by fgras-ca #+# #+# */ -/* Updated: 2024/05/17 20:03:44 by fgras-ca ### ########.fr */ +/* Updated: 2024/05/19 19:21:54 by fgras-ca ### ########.fr */ /* */ /* ************************************************************************** */ @@ -72,6 +72,13 @@ void Server::run() server_pollfd.revents = 0; _poll_fds.push_back(server_pollfd); + // Ajout de l'entrée pour les commandes serveur + struct pollfd stdin_pollfd; + stdin_pollfd.fd = STDIN_FILENO; + stdin_pollfd.events = POLLIN; + stdin_pollfd.revents = 0; + _poll_fds.push_back(stdin_pollfd); + while (true) { int poll_count = poll(&_poll_fds[0], _poll_fds.size(), -1); @@ -89,57 +96,59 @@ void Server::run() { _clientManager->acceptClient(); } + else if (_poll_fds[i].fd == STDIN_FILENO) + { + handleServerCommands(); + } else { _clientManager->handleClient(_poll_fds[i].fd); } } } - - handleServerCommands(); } } +std::map &Server::getChannels() +{ + return _channels; +} + +const std::string &Server::getPassword() const +{ + return _password; +} + void Server::handleServerCommands() { - fd_set readfds; - FD_ZERO(&readfds); - FD_SET(STDIN_FILENO, &readfds); - struct timeval tv = {0, 0}; // non-blocking + std::string command; + std::getline(std::cin, command); - int activity = select(STDIN_FILENO + 1, &readfds, NULL, NULL, &tv); - - if (activity > 0 && FD_ISSET(STDIN_FILENO, &readfds)) + if (command == "quit") { - std::string command; - std::getline(std::cin, command); - - if (command == "quit") + log("Server shutting down.", YELLOW); + exit(EXIT_SUCCESS); + } + else if (command == "channels") + { + log("Listing all channels:", BLUE); + for (std::map::iterator it = _channels.begin(); it != _channels.end(); ++it) { - log("Server shutting down.", YELLOW); - exit(EXIT_SUCCESS); + log(it->first, BLUE); } - else if (command == "channels") + } + else if (command == "clients") + { + log("Listing all clients:", BLUE); + for (std::map::iterator it = _clients.begin(); it != _clients.end(); ++it) { - log("Listing all channels:", BLUE); - for (std::map::iterator it = _channels.begin(); it != _channels.end(); ++it) - { - log(it->first, BLUE); - } - } - else if (command == "clients") - { - log("Listing all clients:", BLUE); - for (std::map::iterator it = _clients.begin(); it != _clients.end(); ++it) - { - log(it->second->getNickname(), BLUE); - } - } - else - { - log("Unknown server command.", RED); + log(it->second->getNickname(), BLUE); } } + else + { + log("Unknown server command.", RED); + } } void Server::log(const std::string &message, const std::string &color) @@ -147,7 +156,6 @@ void Server::log(const std::string &message, const std::string &color) std::cout << color << message << "\033[0m" << std::endl; } - void Server::sendToClient(int client_fd, const std::string &message) { int result = send(client_fd, message.c_str(), message.length(), 0); @@ -165,11 +173,6 @@ void Server::sendToClient(int client_fd, const std::string &message) } } -const std::string &Server::getPassword() const -{ - return _password; -} - void Server::broadcast(const std::string &message) { for (std::map::iterator it = _clients.begin(); it != _clients.end(); ++it) @@ -178,16 +181,6 @@ void Server::broadcast(const std::string &message) } } -std::map &Server::getChannels() -{ - return _channels; -} - -std::map &Server::getClients() -{ - return _clients; -} - Client* Server::getClientByName(const std::string &name) { for (std::map::iterator it = _clients.begin(); it != _clients.end(); ++it) @@ -205,17 +198,11 @@ void Server::sendChannelListToClient(Client *client) std::map &channels = getChannels(); for (std::map::iterator it = channels.begin(); it != channels.end(); ++it) { - std::stringstream channelMsg; - channelMsg << ":server 322 " << client->getNickname() << " " << it->first << " :" << it->second->getClients().size() << "\r\n"; - sendToClient(client->getFd(), channelMsg.str()); + sendToClient(client->getFd(), RPL_LIST(client->getFd(), it->first, it->second->getClients().size(), "Existing channel")); } - std::stringstream endOfListMsg; - endOfListMsg << ":server 323 " << client->getNickname() << " :End of /LIST\r\n"; - sendToClient(client->getFd(), endOfListMsg.str()); + sendToClient(client->getFd(), RPL_LISTEND(client->getFd())); } - - /* Explications des Fonctions Server::Server(int port, const std::string &password)