diff --git a/includes/ft_irc.hpp b/includes/ft_irc.hpp index a6742fe..ce5229c 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/14 20:54:22 by apommier ### ########.fr */ +/* Updated: 2023/02/15 00:16:02 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,6 +20,7 @@ #include #include +#include #include //std::string #include //errno #include //std::cout | cerr @@ -150,6 +151,7 @@ struct fdList //&allFds in code | /!\ only one on the server | REFERENCE ONLY int alive; std::string password; + std::string creation_date; int nbrUser; functionTab parsingTab; }; diff --git a/srcs/commands/auth/auth_utils.cpp b/srcs/commands/auth/auth_utils.cpp index adae48a..b7713c7 100644 --- a/srcs/commands/auth/auth_utils.cpp +++ b/srcs/commands/auth/auth_utils.cpp @@ -6,50 +6,13 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/02/07 14:45:45 by apommier #+# #+# */ -/* Updated: 2023/02/13 12:54:35 by apommier ### ########.fr */ +/* Updated: 2023/02/15 00:14:50 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ #include "../../../includes/ft_irc.hpp" -void print_registered_msg(fdList &allFds, int userNbr) -{ - (void)allFds; - (void)userNbr; - std::string msg; - msg = ":irc.local 001 " + allFds.userData[userNbr].nickname + " : Welcome to the Internet Relay Network " + allFds.userData[userNbr].nickname + "!" + allFds.userData[userNbr].userName + "@" + allFds.userData[userNbr].hostName + "\n"; - send(allFds.userData[userNbr].fd, msg.c_str(), msg.size(), 0); - msg = ":irc.local 002 " + allFds.userData[userNbr].nickname + " : Your host is irc.local" + ", running version InspIRCd-3\n"; //+ allFds.userData[userNbr].nickname + "!" + allFds.userData[userNbr].userName + "@" + allFds.userData[userNbr].hostName; - send(allFds.userData[userNbr].fd, msg.c_str(), msg.size(), 0); - msg = ":irc.local 003 " + allFds.userData[userNbr].nickname + " : This server was created " + "09:58:11 Feb 13 2023\n";//; - send(allFds.userData[userNbr].fd, msg.c_str(), msg.size(), 0); - msg = ":irc.local 004 " + allFds.userData[userNbr].nickname + "irc.local " + "InspIRCd-3 " + "iosw " + "biklmnopstv\n"; - // !@" - // 002 RPL_YOURHOST - // "Your host is , running version " - // 003 RPL_CREATED - // "This server was created " - // 004 RPL_MYINFO - // " - // " - - - // ft_putstr_fd(allFds.userData[userNbr].fd, "-------------------WELCOME TO MY PERSONNAL IRC SERVER!-------------------" ); - // ft_putstr_fd(allFds.userData[userNbr].fd, "your nickname is |" + allFds.userData[userNbr].nickname ); - // ft_putstr_fd(allFds.userData[userNbr].fd, "your password is |" + allFds.userData[userNbr].password ); - // ft_putstr_fd(allFds.userData[userNbr].fd, "your username is |" + allFds.userData[userNbr].userName ); - // ft_putstr_fd(allFds.userData[userNbr].fd, "your realname is |" + allFds.userData[userNbr].realName ); - // ft_putstr_fd(allFds.userData[userNbr].fd, "your hostname is |" + allFds.userData[userNbr].hostName ); - // ft_putstr_fd(allFds.userData[userNbr].fd, "your servername is |" + allFds.userData[userNbr].serverName ); -} // void delete_client(fdList &allFds) // { diff --git a/srcs/commands/auth/connect_client.cpp b/srcs/commands/auth/connect_client.cpp index 6141ea4..45ffe45 100644 --- a/srcs/commands/auth/connect_client.cpp +++ b/srcs/commands/auth/connect_client.cpp @@ -6,18 +6,54 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/02/12 23:30:11 by apommier #+# #+# */ -/* Updated: 2023/02/14 02:19:19 by apommier ### ########.fr */ +/* Updated: 2023/02/15 00:15:32 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ #include "../../../includes/ft_irc.hpp" +void print_registered_msg(fdList &allFds, int userNbr) +{ + (void)allFds; + (void)userNbr; + + std::string msg; + msg = ":irc.local 001 " + allFds.userData[userNbr].nickname + " : Welcome to the Internet Relay Network " + allFds.userData[userNbr].nickname + "!" + allFds.userData[userNbr].userName + "@" + allFds.userData[userNbr].hostName + "\n"; + send(allFds.userData[userNbr].fd, msg.c_str(), msg.size(), 0); + msg = ":irc.local 002 " + allFds.userData[userNbr].nickname + " : Your host is irc.local" + ", running version InspIRCd-3\n"; //+ allFds.userData[userNbr].nickname + "!" + allFds.userData[userNbr].userName + "@" + allFds.userData[userNbr].hostName; + send(allFds.userData[userNbr].fd, msg.c_str(), msg.size(), 0); + msg = ":irc.local 003 " + allFds.userData[userNbr].nickname + " : This server was created " + allFds.creation_date + "\n";//; + send(allFds.userData[userNbr].fd, msg.c_str(), msg.size(), 0); + msg = ":irc.local 004 " + allFds.userData[userNbr].nickname + "irc.local " + "InspIRCd-3 " + "iosw " + "biklmnopstv\n"; + // !@" + // 002 RPL_YOURHOST + // "Your host is , running version " + // 003 RPL_CREATED + // "This server was created " + // 004 RPL_MYINFO + // " + // " + + + // ft_putstr_fd(allFds.userData[userNbr].fd, "-------------------WELCOME TO MY PERSONNAL IRC SERVER!-------------------" ); + // ft_putstr_fd(allFds.userData[userNbr].fd, "your nickname is |" + allFds.userData[userNbr].nickname ); + // ft_putstr_fd(allFds.userData[userNbr].fd, "your password is |" + allFds.userData[userNbr].password ); + // ft_putstr_fd(allFds.userData[userNbr].fd, "your username is |" + allFds.userData[userNbr].userName ); + // ft_putstr_fd(allFds.userData[userNbr].fd, "your realname is |" + allFds.userData[userNbr].realName ); + // ft_putstr_fd(allFds.userData[userNbr].fd, "your hostname is |" + allFds.userData[userNbr].hostName ); + // ft_putstr_fd(allFds.userData[userNbr].fd, "your servername is |" + allFds.userData[userNbr].serverName ); +} + void connect_client(fdList &allFds, int userNbr) { - // allFds.userData[userNbr].fd std::cout << "connect client start\n"; - // if (-1 == connect(allFds.userData[userNbr].fd, (struct sockaddr *)&allFds.userData[userNbr].addr, sizeof(allFds.userData[userNbr].addr))) - // ft_error("connect() error"); if (allFds.userData[userNbr].password.empty() || allFds.userData[userNbr].password != allFds.password) { diff --git a/srcs/commands/auth/nick.cpp b/srcs/commands/auth/nick.cpp index 2b0bc8f..199603c 100644 --- a/srcs/commands/auth/nick.cpp +++ b/srcs/commands/auth/nick.cpp @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/02/06 14:28:38 by apommier #+# #+# */ -/* Updated: 2023/02/14 01:25:31 by apommier ### ########.fr */ +/* Updated: 2023/02/15 15:41:43 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -23,7 +23,16 @@ void NICK(std::string buffer, fdList &allFds, int userNbr) if (splitBuff.size() < 2) { cmd_error(allFds, allFds.userData[userNbr].fd, "431 * NICK :No nickname given\n"); - //write(allFds.userData[user].fd, "ERR_NEEDMOREPARAMS", 18); + return ; + } + if (!not_contain_other(splitBuff[1], "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789`|^_-{}[]\\")) + { + cmd_error(allFds, allFds.userData[userNbr].fd, "432 * " + splitBuff[1] + " :Erroneous nickname\n"); + return ; + } + if (find_user(allFds, splitBuff[1]) != -1) + { + cmd_error(allFds, allFds.userData[userNbr].fd, "433 * " + splitBuff[1] + " :Nickname is already in use\n"); return ; } //if nickname ok then (another user has it? ) diff --git a/srcs/commands/auth/pass.cpp b/srcs/commands/auth/pass.cpp index 3662224..19cc4b2 100644 --- a/srcs/commands/auth/pass.cpp +++ b/srcs/commands/auth/pass.cpp @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/02/06 14:40:42 by apommier #+# #+# */ -/* Updated: 2023/02/14 18:46:53 by apommier ### ########.fr */ +/* Updated: 2023/02/15 15:42:16 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -19,16 +19,16 @@ void PASS(std::string buffer, fdList &allFds, int userNbr) std::string password; - if (allFds.userData[userNbr].registered) - { - cmd_error(allFds, allFds.userData[userNbr].fd, "462 * PASS :You may not reregister\n"); - return ; - } if (buffer.size() < 6)// ---PASS --- { cmd_error(allFds, allFds.userData[userNbr].fd, "461 * PASS :Not enough parameters\n"); return ; } + if (allFds.userData[userNbr].registered) + { + cmd_error(allFds, allFds.userData[userNbr].fd, "462 * PASS :You may not reregister\n"); + return ; + } // if (splitBuff.size() != 2) // { diff --git a/srcs/commands/channel/privmsg.cpp b/srcs/commands/channel/privmsg.cpp index 1693456..1867728 100644 --- a/srcs/commands/channel/privmsg.cpp +++ b/srcs/commands/channel/privmsg.cpp @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/02/11 08:53:03 by apommier #+# #+# */ -/* Updated: 2023/02/14 20:58:20 by apommier ### ########.fr */ +/* Updated: 2023/02/15 15:18:38 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -74,8 +74,8 @@ void send_msg(fdList &allFds, std::string msg, std::string dest, int userNbr) pos = find_user(allFds, dest); //return direct user fd if (pos != -1) { - send(allFds.userData[pos].fd, fullMsg.c_str(), fullMsg.size(), 0); + cmd_error(allFds, allFds.userData[userNbr].fd, "401 * PRIVMSG " + dest + " :No such nick/channel\n"); return ; } - cmd_error(allFds, allFds.userData[userNbr].fd, "401 * PRIVMSG " + dest + " :No such nick/channel\n"); + send(allFds.userData[pos].fd, fullMsg.c_str(), fullMsg.size(), 0); } \ No newline at end of file diff --git a/srcs/commands/channel_op/mode.cpp b/srcs/commands/channel_op/mode.cpp index cb33edb..6dd7940 100644 --- a/srcs/commands/channel_op/mode.cpp +++ b/srcs/commands/channel_op/mode.cpp @@ -3,10 +3,10 @@ /* ::: :::::::: */ /* mode.cpp :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: sadjigui +#+ +:+ +#+ */ +/* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/02/11 19:19:30 by apommier #+# #+# */ -/* Updated: 2023/02/13 00:23:55 by sadjigui ### ########.fr */ +/* Updated: 2023/02/14 23:28:49 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -15,7 +15,7 @@ int search_and_erase(std::string &str, std::string toFind) { // std::vector::iterator i = str.begin; - int i = 0; + int i = 1; //1 instead of 0 to skip +/- while (str[i] != 0) { if (toFind.find(str[i]) == std::string::npos) @@ -23,73 +23,130 @@ int search_and_erase(std::string &str, std::string toFind) else i++; } + std::cout << "splitbuff[2]after? = " << str << std::endl; return 1; } -void verify_option(fdList &allFds, std::string str, int i) + + +void do_chan_option(fdList &allFds, int userNbr, std::string opt /*, channel (string or direct reference or pointer but no copy)*/) { (void)allFds; - (void)i; - (void)str; - std::string find = "opsitnmlbvk"; - std::cout << "1 str = "<< str << std::endl; - search_and_erase(str, find); - std::cout << "2 str = "<< str << std::endl; - use_option(allFds, str, ) + (void)userNbr; + for (int i = 0; opt[i]; i++) + { + //call option + //switch ? if forest? map container ? 2 tab (name and function pointer) ? + // opt_i(int signe (= ou -), channel, user); + } + return; } -// int look_for_channel(fdList &allFds, std::string str) -// { -// if (allFds.chanelList[chanNbr.mode.k]) -// { -// if (splitBuff.size() < 3 || allFdschannelList[chanNbr].password != splitBuff[2]) -// { -// errorStr ="475* JOIN" + allFds.channelList[chanNbr].name+" :Cannot join channel(+k)\n"; -// cmd_error(allFds, allFds.userData[userNbr].fd, errorStr); -// } -// return 0; -// } -// } - - +void do_user_option(fdList &allFds, int userNbr, std::string opt) +{ + (void)allFds; + (void)userNbr; + for (int i = 0; opt[i]; i++) + { + //call option + //switch ? if forest? map container ? 2 tab (name and function pointer) ? + // opt_i(int signe (= ou -), user); + } + return; +} void MODE(std::string buffer, fdList &allFds, int userNbr) { - (void)buffer; - (void)allFds; (void)userNbr; - int i = 1; std::vector splitBuff; - std::cout << "---------------->" << std::endl; split(buffer, ' ', splitBuff); - std::vector::iterator ptr = splitBuff.begin(); - std::cout << "-------->" << splitBuff.size() << std::endl; - if (splitBuff.size() != 6) + if (splitBuff.size() < 3) { std::cout << "ERR_NEEDMOREPARAMS" << std::endl; return ; } - ptr++; - std::string str = *ptr; - if (str[0] == '#' || str[0] == '&') + //check if user is op? else error + //check if (splitBuff[2][0] == +/-) //splitbuff[2] always equal to {[+|-]|o|p|s|i|t|n|b|v} + //else ??? erreur j'imagine mais j'ai pas trouvé + if (splitBuff[1][0] == '#' || splitBuff[1][0] == '&') //splitbuff[1] always equal to or { - std::string cmd = str.substr(1, str.npos); - std::cout << "test = "<< str << std::endl; - if (find_channel(allFds, cmd) < 0) - std::cout << "Channel " << cmd <<" Not found" << std::endl; - while (ptr != splitBuff.end()) + if (find_channel(allFds, splitBuff[1]) == -1) //if true chan doesn't exist { - std::string str = *ptr; - if (str[0] == '#' || str[0] == '&') - { - // if (find_channel(allFds, str+1)) - std::cout << "test = "<< str << std::endl; - - } - verify_option(allFds, str, i); - ptr++; - i++; - } + std::cout << "chan doesn't exist" << std::endl; + // 403 ERR_NOSUCHCHANNEL + // " :No such channel" + return ; + }//else + //verify_option(allFds, str, i); //needed? + + std::cout << "splitbuff[2] = " << splitBuff[2] << std::endl; + + search_and_erase(splitBuff[2], "opsitnmlbvk"); + std::cout << "splitbuff[2] after = " << splitBuff[2] << std::endl; + //do_option one by one here (do_chan_opt)? + return ; } - return ; + else if ((find_user(allFds, splitBuff[1]) == -1)) + { + std::cout << "user doesn't exist" << std::endl; + // 401 ERR_NOSUCHNICK + // " :No such nick/channel" + return ; + } + search_and_erase(splitBuff[2], "iwso"); + //do_option one by one here (do_user_opt)? + } + +// void verify_option(fdList &allFds, std::string str, int i) +// { +// (void)allFds; +// (void)i; +// (void)str; +// std::string find = "opsitnmlbvk"; +// std::cout << "1 str = "<< str << std::endl; +// search_and_erase(str, find); +// std::cout << "2 str = "<< str << std::endl; +// //use_option(allFds, str, ) +// } + +// void MODE(std::string buffer, fdList &allFds, int userNbr) +// { +// (void)buffer; +// (void)allFds; +// (void)userNbr; +// int i = 1; +// std::vector splitBuff; +// std::cout << "---------------->" << std::endl; +// split(buffer, ' ', splitBuff); +// std::vector::iterator ptr = splitBuff.begin(); +// std::cout << "-------->" << splitBuff.size() << std::endl; +// if (splitBuff.size() != 6) +// { +// std::cout << "ERR_NEEDMOREPARAMS" << std::endl; +// return ; +// } +// ptr++; +// std::string str = *ptr; /*std::string str = splitBuff[1]; ⚠️ */ /*STR sert a rien |*ptr = str|*/ +// if (str[0] == '#' || str[0] == '&') +// { +// std::string cmd = str.substr(1, str.npos); //std::string cmd = (*ptr).substr(1, str.npos); //Not needed? need full channel's name with # or & +// std::cout << "test = "<< str << std::endl; //std::cout << "test = "<< *ptr << std::endl; +// if (find_channel(allFds, cmd) < 0) //find_channel(allFds, cmd) +// std::cout << "Channel " << cmd <<" Not found" << std::endl; +// while (ptr != splitBuff.end()) +// { +// std::string str = *ptr; +// if (str[0] == '#' || str[0] == '&') +// { +// // if (find_channel(allFds, str+1)) +// std::cout << "test = "<< str << std::endl; + +// } +// verify_option(allFds, str, i); +// ptr++; +// i++; +// } +// } +// return ; +// } \ No newline at end of file diff --git a/srcs/commands/operator/oper.cpp b/srcs/commands/operator/oper.cpp index 3e7d037..c5b46dc 100644 --- a/srcs/commands/operator/oper.cpp +++ b/srcs/commands/operator/oper.cpp @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/02/11 19:04:47 by apommier #+# #+# */ -/* Updated: 2023/02/11 20:04:53 by apommier ### ########.fr */ +/* Updated: 2023/02/15 15:23:13 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,11 +14,28 @@ void OPER(std::string buffer, fdList &allFds, int userNbr) { + int pos; std::vector splitBuff; + std::string msg; + split(buffer, ' ', splitBuff); - if (splitBuff.size() < 2) + if (splitBuff.size() < 3) { - /*change error*/cmd_error(allFds, allFds.userData[userNbr].fd, "431 * OPER :No nickname given\n"); + cmd_error(allFds, allFds.userData[userNbr].fd, "461 * OPER :Not enough parameters\n"); return ; } + if (splitBuff[2] != allFds.password) + { + cmd_error(allFds, allFds.userData[userNbr].fd, "464 * :Password incorrect\n"); + return ; + } + pos = find_user(allFds, splitBuff[1]); //return direct user fd + if (pos != -1) + { + cmd_error(allFds, allFds.userData[userNbr].fd, "401 * SQUIT " + splitBuff[1] + " :No such nick/channel\n"); + return ; + } + allFds.userData[pos].op = 1; + msg = "381 * " + allFds.userData[pos].nickname + " :You are now an IRC operator\n"; + send(allFds.userData[pos].fd, msg.c_str(), msg.size(), 0); } \ No newline at end of file diff --git a/srcs/commands/operator/squit.cpp b/srcs/commands/operator/squit.cpp index 0687523..4a1e326 100644 --- a/srcs/commands/operator/squit.cpp +++ b/srcs/commands/operator/squit.cpp @@ -6,24 +6,44 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/02/11 19:11:03 by apommier #+# #+# */ -/* Updated: 2023/02/12 14:23:39 by apommier ### ########.fr */ +/* Updated: 2023/02/15 15:10:43 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ #include "../../../includes/ft_irc.hpp" +//ERR_NOPRIVILEGES ERR_NOSUCHSERVER + void SQUIT(std::string buffer, fdList &allFds, int userNbr) { (void)buffer; (void)allFds; (void)userNbr; - - if (allFds.userData[userNbr].op) - allFds.alive = 0; - else + + std::vector splitBuff; + split(buffer, ' ', splitBuff); + if (splitBuff.size() < 2) { - std::cout << "Not op but okay i'll do it\n"; - allFds.alive = 0; + cmd_error(allFds, allFds.userData[userNbr].fd, "431 * SQUIT :Not enought argument\n"); + return ; } + if (!allFds.userData[userNbr].op) + { + cmd_error(allFds, allFds.userData[userNbr].fd, "481 * :Permission Denied- You're not an IRC operator\n"); + return ; + } + if (splitBuff[2] != "irc.local") + { + cmd_error(allFds, allFds.userData[userNbr].fd, "402 * " + splitBuff[2] + " :No such server\n"); + return ; + } + allFds.alive = 0; + // if (allFds.userData[userNbr].op) + // allFds.alive = 0; + // else + // { + // std::cout << "Not op but okay i'll do it\n"; + // allFds.alive = 0; + // } return ; } \ No newline at end of file diff --git a/srcs/commands/other/quit.cpp b/srcs/commands/other/quit.cpp index e2c4c9a..717d985 100644 --- a/srcs/commands/other/quit.cpp +++ b/srcs/commands/other/quit.cpp @@ -6,20 +6,49 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/02/11 19:10:26 by apommier #+# #+# */ -/* Updated: 2023/02/12 14:09:33 by apommier ### ########.fr */ +/* Updated: 2023/02/15 13:27:15 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ #include "../../../includes/ft_irc.hpp" +void send_quit_msg(fdList &allFds, int userNbr, std::string msg) +{ + std::string fullMsg; + + // if (msg.empty()) + // fullMsg = ":" + allFds.userData[userNbr].nickname + "!" + allFds.userData[userNbr].userName + "@" + allFds.userData[userNbr].ip + " QUIT :" + joined_chan.name + "\n"; + // else + fullMsg = ":" + allFds.userData[userNbr].nickname + "!" + allFds.userData[userNbr].userName + "@" + allFds.userData[userNbr].ip + " QUIT :" + msg + "\n"; + for (size_t i = 0; i < allFds.userData[userNbr].joinedChan.size(); i++) + { + //allFds.userData[userNbr].joinedChan[i]-> + //send(joined_chan.userList[i]->fd, fullMsg.c_str(), fullMsg.size(), 0); + + for (size_t j = 0; j < allFds.userData[userNbr].joinedChan[i]->userList.size(); j++) + { + //std::cout << "send nickname " << allFds.userData[userNbr].joinedChan[i]->userList[j]->nickname << std::endl; + if (allFds.userData[userNbr].joinedChan[i]->userList[j] != &allFds.userData[userNbr]) + send(allFds.userData[userNbr].joinedChan[i]->userList[j]->fd, fullMsg.c_str(), fullMsg.size(), 0); + else + std::cout << "hehe je quitte\n"; + std::cout << "loop here\n"; + } + } +} + void QUIT(std::string buffer, fdList &allFds, int userNbr) { std::vector splitBuff; split(buffer, ' ', splitBuff); if (splitBuff.size() == 2) { + send_quit_msg(allFds, userNbr, splitBuff[2]); //print message? + //:kinou2!kinou@172.17.0.1 QUIT :Quit: leaving } + else + send_quit_msg(allFds, userNbr, allFds.userData[userNbr].nickname); delete_user(allFds, userNbr); return ; } \ No newline at end of file diff --git a/srcs/start_server.cpp b/srcs/start_server.cpp index 28c0327..3ba032a 100644 --- a/srcs/start_server.cpp +++ b/srcs/start_server.cpp @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/12/06 21:44:20 by apommier #+# #+# */ -/* Updated: 2023/02/14 01:51:55 by apommier ### ########.fr */ +/* Updated: 2023/02/15 00:14:07 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -60,7 +60,9 @@ void initialize(char **av) // { // nbrRead = read() // } - + time_t timer; + time(&timer); + allFds.creation_date = ctime(&timer); allFds.epollFd = epoll_start(); //allFds.userData epoll_add(allFds.epollFd, allFds.serverFd);