add \r on all send/reply

This commit is contained in:
kinou-p 2023-03-10 22:31:37 +01:00
parent 56357333d6
commit b13d229824
22 changed files with 116 additions and 114 deletions

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/02/12 23:30:11 by apommier #+# #+# */ /* Created: 2023/02/12 23:30:11 by apommier #+# #+# */
/* Updated: 2023/03/09 05:01:54 by apommier ### ########.fr */ /* Updated: 2023/03/10 22:19:44 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -18,13 +18,13 @@ void print_registered_msg(fdList &allFds, int userNbr)
(void)userNbr; (void)userNbr;
std::string msg; 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"; 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 + "\r\n";
send(allFds.userData[userNbr].fd, msg.c_str(), msg.size(), 0); 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; msg = ":irc.local 002 " + allFds.userData[userNbr].nickname + " : Your host is irc.local" + ", running version InspIRCd-3\r\n"; //+ allFds.userData[userNbr].nickname + "!" + allFds.userData[userNbr].userName + "@" + allFds.userData[userNbr].hostName;
send(allFds.userData[userNbr].fd, msg.c_str(), msg.size(), 0); 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";//<date>; msg = ":irc.local 003 " + allFds.userData[userNbr].nickname + " : This server was created " + allFds.creation_date + "\r\n";//<date>;
send(allFds.userData[userNbr].fd, msg.c_str(), msg.size(), 0); 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"; msg = ":irc.local 004 " + allFds.userData[userNbr].nickname + "irc.local " + "InspIRCd-3 " + "iosw " + "biklmnopstv\r\n";
//<servername> <version> <available user modes> <available channel modes //<servername> <version> <available user modes> <available channel modes
send(allFds.userData[userNbr].fd, msg.c_str(), msg.size(), 0); send(allFds.userData[userNbr].fd, msg.c_str(), msg.size(), 0);
@ -58,7 +58,7 @@ void connect_client(fdList &allFds, int userNbr)
if (allFds.userData[userNbr].password.empty() || allFds.userData[userNbr].password != allFds.password) if (allFds.userData[userNbr].password.empty() || allFds.userData[userNbr].password != allFds.password)
{ {
std::cout << "password= " << allFds.userData[userNbr].password << std::endl; std::cout << "password= " << allFds.userData[userNbr].password << std::endl;
cmd_error(allFds, allFds.userData[userNbr].fd, "464 * :Password incorrect\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "464 * :Password incorrect\r\n");
return ; return ;
} }
//464 ERR_PASSWDMISMATCH //464 ERR_PASSWDMISMATCH

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/02/06 14:28:38 by apommier #+# #+# */ /* Created: 2023/02/06 14:28:38 by apommier #+# #+# */
/* Updated: 2023/02/15 15:41:43 by apommier ### ########.fr */ /* Updated: 2023/03/10 22:20:28 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -22,17 +22,17 @@ void NICK(std::string buffer, fdList &allFds, int userNbr)
split(buffer, ' ', splitBuff); split(buffer, ' ', splitBuff);
if (splitBuff.size() < 2) if (splitBuff.size() < 2)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "431 * NICK :No nickname given\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "431 * NICK :No nickname given\r\n");
return ; return ;
} }
if (!not_contain_other(splitBuff[1], "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789`|^_-{}[]\\")) if (!not_contain_other(splitBuff[1], "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789`|^_-{}[]\\"))
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "432 * " + splitBuff[1] + " :Erroneous nickname\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "432 * " + splitBuff[1] + " :Erroneous nickname\r\n");
return ; return ;
} }
if (find_user(allFds, splitBuff[1]) != -1) if (find_user(allFds, splitBuff[1]) != -1)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "433 * " + splitBuff[1] + " :Nickname is already in use\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "433 * " + splitBuff[1] + " :Nickname is already in use\r\n");
return ; return ;
} }
//if nickname ok then (another user has it? ) //if nickname ok then (another user has it? )

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/02/06 14:40:42 by apommier #+# #+# */ /* Created: 2023/02/06 14:40:42 by apommier #+# #+# */
/* Updated: 2023/02/15 15:42:16 by apommier ### ########.fr */ /* Updated: 2023/03/10 22:21:05 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -21,12 +21,12 @@ void PASS(std::string buffer, fdList &allFds, int userNbr)
if (buffer.size() < 6)// ---PASS --- if (buffer.size() < 6)// ---PASS ---
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "461 * PASS :Not enough parameters\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "461 * PASS :Not enough parameters\r\n");
return ; return ;
} }
if (allFds.userData[userNbr].registered) if (allFds.userData[userNbr].registered)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "462 * PASS :You may not reregister\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "462 * PASS :You may not reregister\r\n");
return ; return ;
} }

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/02/06 14:40:39 by apommier #+# #+# */ /* Created: 2023/02/06 14:40:39 by apommier #+# #+# */
/* Updated: 2023/03/10 20:59:45 by apommier ### ########.fr */ /* Updated: 2023/03/10 22:21:18 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -22,7 +22,7 @@ void USER(std::string buffer, fdList &allFds, int userNbr)
if (allFds.userData[userNbr].registered == 1) if (allFds.userData[userNbr].registered == 1)
{ {
// " + allFds.userData[userNbr].nickname + " // " + allFds.userData[userNbr].nickname + "
cmd_error(allFds, allFds.userData[userNbr].fd, "462 " + allFds.userData[userNbr].nickname + " USER :You may not reregister\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "462 " + allFds.userData[userNbr].nickname + " USER :You may not reregister\r\n");
return ; return ;
} }
@ -36,7 +36,7 @@ void USER(std::string buffer, fdList &allFds, int userNbr)
split(buffer, ' ', splitBuff); split(buffer, ' ', splitBuff);
if (splitBuff.size() < 4) if (splitBuff.size() < 4)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "461 " + allFds.userData[userNbr].nickname + "USER :Not enough parameters\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "461 " + allFds.userData[userNbr].nickname + "USER :Not enough parameters\r\n");
//write(allFds.userData[userNbr].fd, "ERR_NEEDMOREPARAMS", 18); //write(allFds.userData[userNbr].fd, "ERR_NEEDMOREPARAMS", 18);
return ; return ;
} }

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/02/09 17:21:57 by apommier #+# #+# */ /* Created: 2023/02/09 17:21:57 by apommier #+# #+# */
/* Updated: 2023/03/09 05:17:20 by apommier ### ########.fr */ /* Updated: 2023/03/10 22:21:38 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -22,12 +22,12 @@ int is_chan_op(fdList &allFds, channelData *chanName, int userNbr)
while (start != pastEnd) while (start != pastEnd)
{ {
//std::cout << "result in find chan = " << pastEnd - start << std::endl; //std::cout << "result in find chan = " << pastEnd - start << std::endl;
std::cout << "test = " << chanName->opList[pastEnd - start - 1]->nickname << "---\n"; //std::cout << "test = " << chanName->opList[pastEnd - start - 1]->nickname << "---\n";
if (chanName->opList[pastEnd - start - 1]->nickname == allFds.userData[userNbr].nickname) if (chanName->opList[pastEnd - start - 1]->nickname == allFds.userData[userNbr].nickname)
return (1); return (1);
start++; start++;
} }
std::cout << "chan not found in is op\n"; //std::cout << "chan not found in is op\n";
return (0); return (0);
} }

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/02/09 15:40:33 by apommier #+# #+# */ /* Created: 2023/02/09 15:40:33 by apommier #+# #+# */
/* Updated: 2023/03/10 21:26:08 by apommier ### ########.fr */ /* Updated: 2023/03/10 22:22:44 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -41,13 +41,13 @@ int chan_check(fdList &allFds, int userNbr, int chanNbr, std::vector<std::string
std::string errorStr; std::string errorStr;
if (find_client_list(allFds.channelList[chanNbr].banList, &allFds.userData[userNbr]) != -1) if (find_client_list(allFds.channelList[chanNbr].banList, &allFds.userData[userNbr]) != -1)
{ {
errorStr = "474 " + allFds.userData[userNbr].nickname + " JOIN " + allFds.channelList[chanNbr].name + " :Cannot join channel (+b)\n"; errorStr = "474 " + allFds.userData[userNbr].nickname + " JOIN " + allFds.channelList[chanNbr].name + " :Cannot join channel (+b)\r\n";
cmd_error(allFds, allFds.userData[userNbr].fd, errorStr); //ERR_INVITEONLYCHAN cmd_error(allFds, allFds.userData[userNbr].fd, errorStr); //ERR_INVITEONLYCHAN
return (0); return (0);
} }
else if (allFds.channelList[chanNbr].mode.i && find_client_list(allFds.channelList[chanNbr].invitedList, &allFds.userData[userNbr]) == -1) else if (allFds.channelList[chanNbr].mode.i && find_client_list(allFds.channelList[chanNbr].invitedList, &allFds.userData[userNbr]) == -1)
{ {
errorStr = "461 " + allFds.userData[userNbr].nickname + " JOIN " + allFds.channelList[chanNbr].name + " :Cannot join channel (+i)\n"; errorStr = "461 " + allFds.userData[userNbr].nickname + " JOIN " + allFds.channelList[chanNbr].name + " :Cannot join channel (+i)\r\n";
cmd_error(allFds, allFds.userData[userNbr].fd, errorStr); //ERR_INVITEONLYCHAN cmd_error(allFds, allFds.userData[userNbr].fd, errorStr); //ERR_INVITEONLYCHAN
return (0); return (0);
} }
@ -55,14 +55,14 @@ int chan_check(fdList &allFds, int userNbr, int chanNbr, std::vector<std::string
{ {
if (splitBuff.size() < 3 || allFds.channelList[chanNbr].password != splitBuff[2]) if (splitBuff.size() < 3 || allFds.channelList[chanNbr].password != splitBuff[2])
{ {
errorStr = "475 " + allFds.userData[userNbr].nickname + " JOIN " + allFds.channelList[chanNbr].name + " :Cannot join channel (+k)\n"; errorStr = "475 " + allFds.userData[userNbr].nickname + " JOIN " + allFds.channelList[chanNbr].name + " :Cannot join channel (+k)\r\n";
cmd_error(allFds, allFds.userData[userNbr].fd, errorStr); //ERR_BADCHANNELKEY cmd_error(allFds, allFds.userData[userNbr].fd, errorStr); //ERR_BADCHANNELKEY
} }
return (0); return (0);
} }
if (allFds.channelList[chanNbr].mode.l && allFds.channelList[chanNbr].userList.size() >= (size_t)allFds.channelList[chanNbr].maxUser) if (allFds.channelList[chanNbr].mode.l && allFds.channelList[chanNbr].userList.size() >= (size_t)allFds.channelList[chanNbr].maxUser)
{ {
errorStr = "471 " + allFds.userData[userNbr].nickname + " JOIN " + allFds.channelList[chanNbr].name + " :Cannot join channel (+l)\n"; errorStr = "471 " + allFds.userData[userNbr].nickname + " JOIN " + allFds.channelList[chanNbr].name + " :Cannot join channel (+l)\r\n";
cmd_error(allFds, allFds.userData[userNbr].fd, errorStr); //ERR_CHANNELISFULL cmd_error(allFds, allFds.userData[userNbr].fd, errorStr); //ERR_CHANNELISFULL
return (0); return (0);
} }
@ -77,7 +77,7 @@ void join_or_create(std::string buffer, fdList &allFds, int userNbr)
channelData joined_chan; channelData joined_chan;
std::vector<std::string> splitBuff; std::vector<std::string> splitBuff;
std::cout << "JOINORCREATE\n"; //std::cout << "JOINORCREATE\n";
split(buffer, ' ', splitBuff); split(buffer, ' ', splitBuff);
chanNbr = find_channel(allFds, splitBuff[1]); chanNbr = find_channel(allFds, splitBuff[1]);
if (chanNbr != -1) //chan already exist if (chanNbr != -1) //chan already exist
@ -93,10 +93,10 @@ void join_or_create(std::string buffer, fdList &allFds, int userNbr)
} }
else //chan doesn't exist yet else //chan doesn't exist yet
{ {
std::cout << "new chan\n"; //std::cout << "new chan\n";
channelData new_chan; channelData new_chan;
if (splitBuff[1][0] != '#' && splitBuff[1][0] != '&') if (splitBuff[1][0] != '#' && splitBuff[1][0] != '&')
cmd_error(allFds, allFds.userData[userNbr].fd, "476 " + allFds.userData[userNbr].nickname + " " + splitBuff[1] + " :Bad Channel Mask\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "476 " + allFds.userData[userNbr].nickname + " " + splitBuff[1] + " :Bad Channel Mask\r\n");
new_chan.name = splitBuff[1]; new_chan.name = splitBuff[1];
//new_chan.nbrUser = 1; //new_chan.nbrUser = 1;
new_chan.opList.push_back(&allFds.userData[userNbr]); new_chan.opList.push_back(&allFds.userData[userNbr]);
@ -112,7 +112,7 @@ void join_or_create(std::string buffer, fdList &allFds, int userNbr)
// } // }
std::string fullMsg; std::string fullMsg;
fullMsg = ":" + allFds.userData[userNbr].nickname + "!" + allFds.userData[userNbr].userName + "@" + allFds.userData[userNbr].ip + " JOIN :" + joined_chan.name + "\n"; fullMsg = ":" + allFds.userData[userNbr].nickname + "!" + allFds.userData[userNbr].userName + "@" + allFds.userData[userNbr].ip + " JOIN :" + joined_chan.name + "\r\n";
for (size_t i = 0; i < joined_chan.userList.size(); i++) for (size_t i = 0; i < joined_chan.userList.size(); i++)
{ {
send(joined_chan.userList[i]->fd, fullMsg.c_str(), fullMsg.size(), 0); send(joined_chan.userList[i]->fd, fullMsg.c_str(), fullMsg.size(), 0);
@ -122,7 +122,7 @@ void join_or_create(std::string buffer, fdList &allFds, int userNbr)
if (chanNbr == -1) if (chanNbr == -1)
chanNbr = find_channel(allFds, splitBuff[1]); chanNbr = find_channel(allFds, splitBuff[1]);
if (!allFds.channelList[chanNbr].topic.empty()) if (!allFds.channelList[chanNbr].topic.empty())
cmd_reply(allFds, allFds.userData[userNbr].fd, "332 TOPIC " + allFds.channelList[chanNbr].name + " :" + allFds.channelList[chanNbr].topic + "\n"); cmd_reply(allFds, allFds.userData[userNbr].fd, "332 TOPIC " + allFds.channelList[chanNbr].name + " :" + allFds.channelList[chanNbr].topic + "\r\n");
//else //else
// cmd_error(allFds, allFds.userData[userNbr].fd, "NOTICE 331 TOPIC " + allFds.channelList[chanNbr].name + " :No topic is set\n"); // cmd_error(allFds, allFds.userData[userNbr].fd, "NOTICE 331 TOPIC " + allFds.channelList[chanNbr].name + " :No topic is set\n");
// if (chanNbr == -1) // if (chanNbr == -1)
@ -157,7 +157,7 @@ void join_loop(fdList &allFds, std::vector<std::string> splitBuff, int userNbr)
if (splitChan[i][0] != '#' && splitChan[i][0] != '&') if (splitChan[i][0] != '#' && splitChan[i][0] != '&')
{ {
//error bad channel name //error bad channel name
buffer = "476 " + allFds.userData[userNbr].nickname + " JOIN " + splitChan[i] + " ::Bad Channel Mask\n"; buffer = "476 " + allFds.userData[userNbr].nickname + " JOIN " + splitChan[i] + " ::Bad Channel Mask\r\n";
cmd_error(allFds, allFds.userData[userNbr].fd, buffer); cmd_error(allFds, allFds.userData[userNbr].fd, buffer);
//:Bad Channel Mask //:Bad Channel Mask
//std::cout << "bad chan mask\n"; //std::cout << "bad chan mask\n";
@ -185,7 +185,7 @@ void JOIN(std::string buffer, fdList &allFds, int userNbr)
std::cout << "userNbr= " << userNbr << std::endl; std::cout << "userNbr= " << userNbr << std::endl;
if (!allFds.userData[userNbr].registered) if (!allFds.userData[userNbr].registered)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "451 " + allFds.userData[userNbr].nickname + " JOIN :You have not registered\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "451 " + allFds.userData[userNbr].nickname + " JOIN :You have not registered\r\n");
return ; return ;
} }
split(buffer, ' ', splitBuff); split(buffer, ' ', splitBuff);
@ -193,7 +193,7 @@ void JOIN(std::string buffer, fdList &allFds, int userNbr)
{ {
/*change error*/ /*change error*/
//std::cout << "JOIN : need more param\n"; //std::cout << "JOIN : need more param\n";
cmd_error(allFds, allFds.userData[userNbr].fd, "461 " + allFds.userData[userNbr].nickname + " JOIN :Not enough parameters\n"); //ERR_NEEDMOREPARAMS cmd_error(allFds, allFds.userData[userNbr].fd, "461 " + allFds.userData[userNbr].nickname + " JOIN :Not enough parameters\r\n"); //ERR_NEEDMOREPARAMS
return ; return ;
} }
join_loop(allFds, splitBuff, userNbr); join_loop(allFds, splitBuff, userNbr);

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/02/14 21:24:55 by apommier #+# #+# */ /* Created: 2023/02/14 21:24:55 by apommier #+# #+# */
/* Updated: 2023/03/09 05:18:13 by apommier ### ########.fr */ /* Updated: 2023/03/10 22:09:53 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -25,7 +25,7 @@ void send_notice_msg(fdList &allFds, std::string msg, std::string dest, int user
int pos; int pos;
std::string fullMsg; std::string fullMsg;
fullMsg = ":" + allFds.userData[userNbr].nickname + "!" + allFds.userData[userNbr].userName + "@172.17.0.1 " + msg + "\n"; fullMsg = ":" + allFds.userData[userNbr].nickname + "!" + allFds.userData[userNbr].userName + "@172.17.0.1 " + msg + "\r\n";
if (dest[0] == '&' || dest[0] == '#') if (dest[0] == '&' || dest[0] == '#')
{ {
if (is_joined(allFds, dest, userNbr) == -1) if (is_joined(allFds, dest, userNbr) == -1)

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/02/19 22:10:07 by apommier #+# #+# */ /* Created: 2023/02/19 22:10:07 by apommier #+# #+# */
/* Updated: 2023/03/10 21:20:26 by apommier ### ########.fr */ /* Updated: 2023/03/10 22:23:22 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -19,12 +19,12 @@ void leave_chan(fdList &allFds, std::string chan, int userNbr, std::string msg)
if ((chanPos = find_channel(allFds, chan)) == -1) if ((chanPos = find_channel(allFds, chan)) == -1)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "401 " + allFds.userData[userNbr].nickname + " PART " + chan + " :No such channel\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "401 " + allFds.userData[userNbr].nickname + " PART " + chan + " :No such channel\r\n");
return ; return ;
} }
if (is_joined(allFds, chan, userNbr) == -1) if (is_joined(allFds, chan, userNbr) == -1)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "422 " + allFds.userData[userNbr].nickname + " " + chan + " :You're not on that channel\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "422 " + allFds.userData[userNbr].nickname + " " + chan + " :You're not on that channel\r\n");
return ; return ;
} }
//del_user_in_chan(&allFds.userData[userNbr], &allFds.channelList[chanPos]); //del_user_in_chan(&allFds.userData[userNbr], &allFds.channelList[chanPos]);
@ -40,9 +40,9 @@ void leave_chan(fdList &allFds, std::string chan, int userNbr, std::string msg)
//reply = ":" + allFds.userData[userNbr].nickname + "!" + allFds.userData[userNbr].userName + "@" + allFds.userData[userNbr].ip + " PART :" + allFds.channelList[chanPos].name + "\n"; //reply = ":" + allFds.userData[userNbr].nickname + "!" + allFds.userData[userNbr].userName + "@" + allFds.userData[userNbr].ip + " PART :" + allFds.channelList[chanPos].name + "\n";
reply = ":" + allFds.userData[userNbr].nickname + "!" + allFds.userData[userNbr].userName + "@" + allFds.userData[userNbr].ip; reply = ":" + allFds.userData[userNbr].nickname + "!" + allFds.userData[userNbr].userName + "@" + allFds.userData[userNbr].ip;
if (!msg.empty()) if (!msg.empty())
reply += " PART " + allFds.channelList[chanPos].name + " " + msg + "\n"; reply += " PART " + allFds.channelList[chanPos].name + " " + msg + "\r\n";
else else
reply += " PART :" + allFds.channelList[chanPos].name + "\n"; reply += " PART :" + allFds.channelList[chanPos].name + "\r\n";
//:awd!kinou@172.17.0.1 PART :#test tcpdump //:awd!kinou@172.17.0.1 PART :#test tcpdump
//:awd!kinou@127.0.0.1 PART :#test //:awd!kinou@127.0.0.1 PART :#test
@ -71,13 +71,13 @@ void PART(std::string buffer, fdList &allFds, int userNbr)
if (!allFds.userData[userNbr].registered) if (!allFds.userData[userNbr].registered)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "451 " + allFds.userData[userNbr].nickname + " PART :You have not registered\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "451 " + allFds.userData[userNbr].nickname + " PART :You have not registered\r\n");
return ; return ;
} }
split(buffer, ' ', splitBuff); split(buffer, ' ', splitBuff);
if (splitBuff.size() < 2) if (splitBuff.size() < 2)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "431 " + allFds.userData[userNbr].nickname + " PART :Not enought argument\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "431 " + allFds.userData[userNbr].nickname + " PART :Not enought argument\r\n");
return ; return ;
} }
split(splitBuff[1], ',', splitChan); split(splitBuff[1], ',', splitChan);

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/02/11 08:53:03 by apommier #+# #+# */ /* Created: 2023/02/11 08:53:03 by apommier #+# #+# */
/* Updated: 2023/03/10 21:04:49 by apommier ### ########.fr */ /* Updated: 2023/03/10 22:11:34 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -27,19 +27,19 @@ void PRIVMSG(std::string buffer, fdList &allFds, int userNbr)
if (!allFds.userData[userNbr].registered) if (!allFds.userData[userNbr].registered)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "451 " + allFds.userData[userNbr].nickname + " PRIVMSG :You have not registered\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "451 " + allFds.userData[userNbr].nickname + " PRIVMSG :You have not registered\r\n");
return ; return ;
} }
//std::cout << "privmsg bufer= --" << buffer << std::endl; //std::cout << "privmsg bufer= --" << buffer << std::endl;
split(buffer, ' ', splitBuff); split(buffer, ' ', splitBuff);
if (splitBuff.size() < 2) if (splitBuff.size() < 2)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "431 " + allFds.userData[userNbr].nickname + " PRIVMSG :Not enought argument\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "431 " + allFds.userData[userNbr].nickname + " PRIVMSG :Not enought argument\r\n");
return ; return ;
} }
if (splitBuff.size() < 3) if (splitBuff.size() < 3)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "412 " + allFds.userData[userNbr].nickname + " PRIVMSG :No text to send\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "412 " + allFds.userData[userNbr].nickname + " PRIVMSG :No text to send\r\n");
return ; return ;
} }
//std::cout << "privmsg =" << msg << std::endl; //std::cout << "privmsg =" << msg << std::endl;
@ -54,18 +54,18 @@ void send_msg(fdList &allFds, std::string msg, std::string dest, int userNbr)
int pos; int pos;
std::string fullMsg; std::string fullMsg;
fullMsg = ":" + allFds.userData[userNbr].nickname + "!" + allFds.userData[userNbr].userName + "@172.17.0.1 " + msg + "\n"; fullMsg = ":" + allFds.userData[userNbr].nickname + "!" + allFds.userData[userNbr].userName + "@172.17.0.1 " + msg + "\r\n";
if (dest[0] == '&' || dest[0] == '#') if (dest[0] == '&' || dest[0] == '#')
{ {
pos = find_channel(allFds, dest); pos = find_channel(allFds, dest);
if (pos == -1) if (pos == -1)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "401 " + allFds.userData[userNbr].nickname + " PRIVMSG " + dest + " :No such channel\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "401 " + allFds.userData[userNbr].nickname + " PRIVMSG " + dest + " :No such channel\r\n");
return ; return ;
} }
if (allFds.channelList[pos].mode.n && is_joined(allFds, dest, userNbr) == -1 ) if (allFds.channelList[pos].mode.n && is_joined(allFds, dest, userNbr) == -1 )
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "442 " + allFds.userData[userNbr].nickname + " PRIVMSG " + dest + " :You're not on that channel\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "442 " + allFds.userData[userNbr].nickname + " PRIVMSG " + dest + " :You're not on that channel\r\n");
return ; return ;
} }
// if (find_client_list(allFds.channelList[pos].verboseList, &allFds.userData[userNbr]) != -1) // if (find_client_list(allFds.channelList[pos].verboseList, &allFds.userData[userNbr]) != -1)
@ -76,7 +76,7 @@ void send_msg(fdList &allFds, std::string msg, std::string dest, int userNbr)
&& !is_chan_op(allFds, &allFds.channelList[pos], userNbr) && !is_chan_op(allFds, &allFds.channelList[pos], userNbr)
&& find_client_list(allFds.channelList[pos].verboseList, &allFds.userData[userNbr]) == -1) && find_client_list(allFds.channelList[pos].verboseList, &allFds.userData[userNbr]) == -1)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "404 " + allFds.userData[userNbr].nickname + " PRIVMSG " + dest + " :Cannot send to channel\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "404 " + allFds.userData[userNbr].nickname + " PRIVMSG " + dest + " :Cannot send to channel\r\n");
return ; return ;
} }
for (size_t i = 0; i < allFds.channelList[pos].userList.size(); i++) for (size_t i = 0; i < allFds.channelList[pos].userList.size(); i++)
@ -96,7 +96,7 @@ void send_msg(fdList &allFds, std::string msg, std::string dest, int userNbr)
//std::cout << "pos of user = " << pos << std::endl; //std::cout << "pos of user = " << pos << std::endl;
if (pos == -1) if (pos == -1)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "401 " + allFds.userData[userNbr].nickname + " PRIVMSG " + dest + " :No such nick\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "401 " + allFds.userData[userNbr].nickname + " PRIVMSG " + dest + " :No such nick\r\n");
return ; return ;
} }
if (allFds.userData[pos].mode.s) if (allFds.userData[pos].mode.s)

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/02/11 19:19:56 by apommier #+# #+# */ /* Created: 2023/02/11 19:19:56 by apommier #+# #+# */
/* Updated: 2023/03/10 21:04:49 by apommier ### ########.fr */ /* Updated: 2023/03/10 22:24:11 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -30,28 +30,28 @@ void INVITE(std::string buffer, fdList &allFds, int userNbr)
if (!allFds.userData[userNbr].registered) if (!allFds.userData[userNbr].registered)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "451 " + allFds.userData[userNbr].nickname + " INVITE :You have not registered\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "451 " + allFds.userData[userNbr].nickname + " INVITE :You have not registered\r\n");
return ; return ;
} }
split(buffer, ' ', splitBuff); split(buffer, ' ', splitBuff);
if (splitBuff.size() < 3) if (splitBuff.size() < 3)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "461 " + allFds.userData[userNbr].nickname + " INVITE :Not enough parameters\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "461 " + allFds.userData[userNbr].nickname + " INVITE :Not enough parameters\r\n");
return ; return ;
} }
if ((invitedNbr = find_user(allFds, splitBuff[1])) == -1) if ((invitedNbr = find_user(allFds, splitBuff[1])) == -1)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "401 " + allFds.userData[userNbr].nickname + " " + splitBuff[1] + " :No such nick\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "401 " + allFds.userData[userNbr].nickname + " " + splitBuff[1] + " :No such nick\r\n");
return ; return ;
} }
if (is_joined(allFds, splitBuff[2], userNbr) == -1) if (is_joined(allFds, splitBuff[2], userNbr) == -1)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "422 " + allFds.userData[userNbr].nickname + " " + splitBuff[2] + " :You're not on that channel\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "422 " + allFds.userData[userNbr].nickname + " " + splitBuff[2] + " :You're not on that channel\r\n");
return ; return ;
} }
if (is_joined(allFds, splitBuff[2], invitedNbr) != -1) if (is_joined(allFds, splitBuff[2], invitedNbr) != -1)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "443 " + allFds.userData[userNbr].nickname + " " + splitBuff[1] + " " + splitBuff[2] + " :is already on channel\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "443 " + allFds.userData[userNbr].nickname + " " + splitBuff[1] + " " + splitBuff[2] + " :is already on channel\r\n");
return ; return ;
} }
// if (is_joined(allFds, splitBuff[2], invitedNbr) != -1) // if (is_joined(allFds, splitBuff[2], invitedNbr) != -1)
@ -63,18 +63,18 @@ void INVITE(std::string buffer, fdList &allFds, int userNbr)
{ {
chan = allFds.channelList[chanNbr]; chan = allFds.channelList[chanNbr];
if (!is_chan_op(allFds, &chan, userNbr)) if (!is_chan_op(allFds, &chan, userNbr))
cmd_error(allFds, allFds.userData[userNbr].fd, "482 " + allFds.userData[userNbr].nickname + " " + splitBuff[2] + " :You're not channel operator\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "482 " + allFds.userData[userNbr].nickname + " " + splitBuff[2] + " :You're not channel operator\r\n");
return ; return ;
} }
else if (!allFds.userData[userNbr].op) else if (!allFds.userData[userNbr].op)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "482 " + allFds.userData[userNbr].nickname + " " + splitBuff[2] + " :You're not channel operator\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "482 " + allFds.userData[userNbr].nickname + " " + splitBuff[2] + " :You're not channel operator\r\n");
return ; return ;
} }
std::cout << "invite him !!!!" << splitBuff[1] << " to " << splitBuff[2] << std::endl; std::cout << "invite him !!!!" << splitBuff[1] << " to " << splitBuff[2] << std::endl;
//RPL_INVITING //RPL_INVITING
//RPL_AWAY //RPL_AWAY
chan.invitedList.push_back(&allFds.userData[invitedNbr]);//set authorization to join chan.invitedList.push_back(&allFds.userData[invitedNbr]);//set authorization to join
msg = "341 " + allFds.userData[userNbr].nickname + " " + chan.name + " " + splitBuff[1] + "\n"; msg = "341 " + allFds.userData[userNbr].nickname + " " + chan.name + " " + splitBuff[1] + "\r\n";
cmd_reply(allFds, allFds.userData[userNbr].fd, msg); cmd_reply(allFds, allFds.userData[userNbr].fd, msg);
} }

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/02/11 19:19:32 by apommier #+# #+# */ /* Created: 2023/02/11 19:19:32 by apommier #+# #+# */
/* Updated: 2023/03/10 21:21:43 by apommier ### ########.fr */ /* Updated: 2023/03/10 22:12:00 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -25,30 +25,30 @@ void KICK(std::string buffer, fdList &allFds, int userNbr)
if (!allFds.userData[userNbr].registered) if (!allFds.userData[userNbr].registered)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "451 " + allFds.userData[userNbr].nickname + " KICK :You have not registered\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "451 " + allFds.userData[userNbr].nickname + " KICK :You have not registered\r\n");
return ; return ;
} }
split(buffer, ' ', splitBuff); split(buffer, ' ', splitBuff);
if (splitBuff.size() < 3) if (splitBuff.size() < 3)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "431 " + allFds.userData[userNbr].nickname + " KICK :Not enought argument\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "431 " + allFds.userData[userNbr].nickname + " KICK :Not enought argument\r\n");
return ; return ;
} }
if ((chanPos = find_channel(allFds, splitBuff[1])) == -1) if ((chanPos = find_channel(allFds, splitBuff[1])) == -1)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "401 " + allFds.userData[userNbr].nickname + " KICK " + splitBuff[1] + " :No such channel\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "401 " + allFds.userData[userNbr].nickname + " KICK " + splitBuff[1] + " :No such channel\r\n");
return ; return ;
} }
if (!allFds.userData[userNbr].op && is_joined(allFds, splitBuff[1], userNbr) == -1) if (!allFds.userData[userNbr].op && is_joined(allFds, splitBuff[1], userNbr) == -1)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "422 " + allFds.userData[userNbr].nickname + " " + splitBuff[1] + " :You're not on that channel\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "422 " + allFds.userData[userNbr].nickname + " " + splitBuff[1] + " :You're not on that channel\r\n");
return ; return ;
} }
if ((find_user(allFds, splitBuff[2])) == -1) if ((find_user(allFds, splitBuff[2])) == -1)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "401 " + allFds.userData[userNbr].nickname + " KICK " + splitBuff[1] + " :No such nick\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "401 " + allFds.userData[userNbr].nickname + " KICK " + splitBuff[1] + " :No such nick\r\n");
return ; return ;
} }
@ -57,7 +57,7 @@ void KICK(std::string buffer, fdList &allFds, int userNbr)
chan = allFds.channelList[chanPos]; chan = allFds.channelList[chanPos];
if (!is_chan_op(allFds, &chan, userNbr) && !allFds.userData[userNbr].op) if (!is_chan_op(allFds, &chan, userNbr) && !allFds.userData[userNbr].op)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "482 " + allFds.userData[userNbr].nickname + " " + splitBuff[1] + " :You're not channel operator\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "482 " + allFds.userData[userNbr].nickname + " " + splitBuff[1] + " :You're not channel operator\r\n");
return ; return ;
} }
} }
@ -68,7 +68,7 @@ void KICK(std::string buffer, fdList &allFds, int userNbr)
{ {
return ; return ;
} }
kickMsg = allFds.userData[userPos].nickname + " have been kicked by " + allFds.userData[userNbr].nickname + "\n"; kickMsg = allFds.userData[userPos].nickname + " have been kicked by " + allFds.userData[userNbr].nickname + "\r\n";
PART("PART " + splitBuff[1] + " has been kicked by " + allFds.userData[userNbr].nickname, allFds, userPos); PART("PART " + splitBuff[1] + " has been kicked by " + allFds.userData[userNbr].nickname, allFds, userPos);
//del_user_in_chan(&allFds.userData[userPos], &allFds.channelList[chanPos]); //del_user_in_chan(&allFds.userData[userPos], &allFds.channelList[chanPos]);
//del_chan_in_user(&allFds.userData[userPos], &allFds.channelList[chanPos]); //del_chan_in_user(&allFds.userData[userPos], &allFds.channelList[chanPos]);

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/02/11 19:19:52 by apommier #+# #+# */ /* Created: 2023/02/11 19:19:52 by apommier #+# #+# */
/* Updated: 2023/03/10 21:04:49 by apommier ### ########.fr */ /* Updated: 2023/03/10 22:25:05 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -21,18 +21,18 @@ void TOPIC(std::string buffer, fdList &allFds, int userNbr)
std::cout << "topic im here1\n";//RPL_NOTOPIC //RPL_TOPIC std::cout << "topic im here1\n";//RPL_NOTOPIC //RPL_TOPIC
if (!allFds.userData[userNbr].registered) if (!allFds.userData[userNbr].registered)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "451 " + allFds.userData[userNbr].nickname + " TOPIC :You have not registered\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "451 " + allFds.userData[userNbr].nickname + " TOPIC :You have not registered\r\n");
return ; return ;
} }
split(buffer, ' ', splitBuff); split(buffer, ' ', splitBuff);
if (splitBuff.size() < 2) if (splitBuff.size() < 2)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "461 " + allFds.userData[userNbr].nickname + " TOPIC :Not enough parameters\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "461 " + allFds.userData[userNbr].nickname + " TOPIC :Not enough parameters\r\n");
return ; return ;
} }
if (is_joined(allFds, splitBuff[1], userNbr) == -1) if (is_joined(allFds, splitBuff[1], userNbr) == -1)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "422 " + allFds.userData[userNbr].nickname + " " + splitBuff[1] + " :You're not on that channel\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "422 " + allFds.userData[userNbr].nickname + " " + splitBuff[1] + " :You're not on that channel\r\n");
return ; return ;
} }
if ((chanNbr = find_channel(allFds, splitBuff[1])) != -1) if ((chanNbr = find_channel(allFds, splitBuff[1])) != -1)
@ -40,7 +40,7 @@ void TOPIC(std::string buffer, fdList &allFds, int userNbr)
chan = allFds.channelList[chanNbr]; chan = allFds.channelList[chanNbr];
if (!is_chan_op(allFds, &chan, userNbr) && !allFds.userData[userNbr].op) if (!is_chan_op(allFds, &chan, userNbr) && !allFds.userData[userNbr].op)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "482 " + allFds.userData[userNbr].nickname + " " + splitBuff[1] + " :You're not channel operator\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "482 " + allFds.userData[userNbr].nickname + " " + splitBuff[1] + " :You're not channel operator\r\n");
return ; return ;
} }
} }
@ -53,9 +53,9 @@ void TOPIC(std::string buffer, fdList &allFds, int userNbr)
if (splitBuff.size() < 3) if (splitBuff.size() < 3)
{ {
if (!allFds.channelList[chanNbr].topic.empty()) if (!allFds.channelList[chanNbr].topic.empty())
cmd_reply(allFds, allFds.userData[userNbr].fd, "332 TOPIC " + splitBuff[1] + " :" + allFds.channelList[chanNbr].topic + "\n"); cmd_reply(allFds, allFds.userData[userNbr].fd, "332 TOPIC " + splitBuff[1] + " :" + allFds.channelList[chanNbr].topic + "\r\n");
else else
cmd_error(allFds, allFds.userData[userNbr].fd, "331 TOPIC " + splitBuff[1] + " :No topic is set\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "331 TOPIC " + splitBuff[1] + " :No topic is set\r\n");
return; return;
//std::cout << "PRINT TOPIC here\n";//RPL_NOTOPIC //RPL_TOPIC //std::cout << "PRINT TOPIC here\n";//RPL_NOTOPIC //RPL_TOPIC
} }
@ -63,7 +63,7 @@ void TOPIC(std::string buffer, fdList &allFds, int userNbr)
{ {
allFds.channelList[chanNbr].topic = buffer.substr(6 + splitBuff[1].size() + 2, std::string::npos); allFds.channelList[chanNbr].topic = buffer.substr(6 + splitBuff[1].size() + 2, std::string::npos);
//std::cout << "topic= " << allFds.channelList[chanNbr].topic << std::endl; //std::cout << "topic= " << allFds.channelList[chanNbr].topic << std::endl;
cmd_reply(allFds, allFds.userData[userNbr].fd, "332 TOPIC " + splitBuff[1] + " :" + allFds.channelList[chanNbr].topic + "\n"); cmd_reply(allFds, allFds.userData[userNbr].fd, "332 TOPIC " + splitBuff[1] + " :" + allFds.channelList[chanNbr].topic + "\r\n");
//std::cout << "PRINT TOPIC here topic set\n";//RPL_NOTOPIC //RPL_TOPIC //std::cout << "PRINT TOPIC here topic set\n";//RPL_NOTOPIC //RPL_TOPIC
} }
return ; return ;

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/03/09 00:13:32 by apommier #+# #+# */ /* Created: 2023/03/09 00:13:32 by apommier #+# #+# */
/* Updated: 2023/03/09 02:30:14 by apommier ### ########.fr */ /* Updated: 2023/03/10 22:03:03 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -19,10 +19,10 @@ void ban_reply(channelData &chan, clientData &user)
std::string reply = ":irc.local 367 " + user.nickname + " " + chan.name + " "; std::string reply = ":irc.local 367 " + user.nickname + " " + chan.name + " ";
for (size_t i = 0; i < chan.banList.size(); i++) for (size_t i = 0; i < chan.banList.size(); i++)
{ {
fullReply = reply + chan.banList[i]->nickname + "!" + chan.banList[i]->userName + "@" + chan.banList[i]->hostName + "\n"; fullReply = reply + chan.banList[i]->nickname + "!" + chan.banList[i]->userName + "@" + chan.banList[i]->hostName + "\r\n";
send(user.fd, fullReply.c_str(), fullReply.size(), 0); send(user.fd, fullReply.c_str(), fullReply.size(), 0);
} }
endReply = ":irc.local 367 " + user.nickname + " " + chan.name + " :End of channel ban list\n"; endReply = ":irc.local 367 " + user.nickname + " " + chan.name + " :End of channel ban list\r\n";
send(user.fd, endReply.c_str(), endReply.size(), 0); send(user.fd, endReply.c_str(), endReply.size(), 0);
} }
@ -53,6 +53,7 @@ void chan_reply(channelData &chan, clientData &user)
reply += chan.maxUser; reply += chan.maxUser;
for (size_t i = 0; i < chan.opList.size(); i++) for (size_t i = 0; i < chan.opList.size(); i++)
reply += " " + chan.opList[i]->nickname; reply += " " + chan.opList[i]->nickname;
reply += "\r\n";
send(user.fd, reply.c_str(), reply.size(), 0); send(user.fd, reply.c_str(), reply.size(), 0);
//if (reply.size() > 2) //if (reply.size() > 2)
// reply_begin += reply; // reply_begin += reply;
@ -74,6 +75,7 @@ void user_reply(clientData &user)
reply += 'w'; reply += 'w';
if (user.mode.o) if (user.mode.o)
reply += 'o'; reply += 'o';
reply += "\r\n";
send(user.fd, reply.c_str(), reply.size(), 0); send(user.fd, reply.c_str(), reply.size(), 0);
} }

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/02/15 16:34:57 by apommier #+# #+# */ /* Created: 2023/02/15 16:34:57 by apommier #+# #+# */
/* Updated: 2023/03/10 21:04:49 by apommier ### ########.fr */ /* Updated: 2023/03/10 22:14:02 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -19,30 +19,30 @@ void KILL(std::string buffer, fdList &allFds, int userNbr)
if (!allFds.userData[userNbr].registered) if (!allFds.userData[userNbr].registered)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "451 " + allFds.userData[userNbr].nickname + " KILL :You have not registered\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "451 " + allFds.userData[userNbr].nickname + " KILL :You have not registered\r\n");
return ; return ;
} }
split(buffer, ' ', splitBuff); split(buffer, ' ', splitBuff);
if (splitBuff.size() < 3) if (splitBuff.size() < 3)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "431 " + allFds.userData[userNbr].nickname + " KILL :Not enought argument\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "431 " + allFds.userData[userNbr].nickname + " KILL :Not enought argument\r\n");
return ; return ;
} }
if (!allFds.userData[userNbr].op) if (!allFds.userData[userNbr].op)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "481 " + allFds.userData[userNbr].nickname + " :Permission Denied- You're not an IRC operator\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "481 " + allFds.userData[userNbr].nickname + " :Permission Denied- You're not an IRC operator\r\n");
return ; return ;
} }
pos = find_user(allFds, splitBuff[1]); pos = find_user(allFds, splitBuff[1]);
if (pos == -1) if (pos == -1)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "401 " + allFds.userData[userNbr].nickname + " KILL " + splitBuff[1] + " :No such nick\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "401 " + allFds.userData[userNbr].nickname + " KILL " + splitBuff[1] + " :No such nick\r\n");
return ; return ;
} }
std::string msg; std::string msg;
std::string fullMsg; std::string fullMsg;
msg = "connection killed by " + allFds.userData[userNbr].nickname + " " + buffer.substr(buffer.find_first_of(':'), std::string::npos); msg = "connection killed by " + allFds.userData[userNbr].nickname + " " + buffer.substr(buffer.find_first_of(':'), std::string::npos);
fullMsg = ":" + allFds.userData[userNbr].nickname + "!" + allFds.userData[userNbr].userName + "@172.17.0.1 " + msg; fullMsg = ":" + allFds.userData[userNbr].nickname + "!" + allFds.userData[userNbr].userName + "@172.17.0.1 " + msg + "\r\n";
send(allFds.userData[pos].fd, fullMsg.c_str(), fullMsg.size(), 0); send(allFds.userData[pos].fd, fullMsg.c_str(), fullMsg.size(), 0);
//send_notice_msg(allFds, allFds.userData[userNbr].fd, userNbr) //send_notice_msg(allFds, allFds.userData[userNbr].fd, userNbr)
delete_user(allFds, pos); delete_user(allFds, pos);

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/02/11 19:04:47 by apommier #+# #+# */ /* Created: 2023/02/11 19:04:47 by apommier #+# #+# */
/* Updated: 2023/03/10 21:04:49 by apommier ### ########.fr */ /* Updated: 2023/03/10 22:14:14 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -19,24 +19,24 @@ void OPER(std::string buffer, fdList &allFds, int userNbr)
if (!allFds.userData[userNbr].registered) if (!allFds.userData[userNbr].registered)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "451 " + allFds.userData[userNbr].nickname + " OPER :You have not registered\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "451 " + allFds.userData[userNbr].nickname + " OPER :You have not registered\r\n");
return ; return ;
} }
split(buffer, ' ', splitBuff); split(buffer, ' ', splitBuff);
if (splitBuff.size() < 3) if (splitBuff.size() < 3)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "461 " + allFds.userData[userNbr].nickname + " OPER :Not enough parameters\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "461 " + allFds.userData[userNbr].nickname + " OPER :Not enough parameters\r\n");
return ; return ;
} }
//:irc.local 491 kinou2 //:irc.local 491 kinou2
if (splitBuff[1] != OP_NAME) if (splitBuff[1] != OP_NAME)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "491 " + allFds.userData[userNbr].nickname + " :Invalid oper credentials\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "491 " + allFds.userData[userNbr].nickname + " :Invalid oper credentials\r\n");
return ; return ;
} }
if (splitBuff[2] != OP_PASSWORD) if (splitBuff[2] != OP_PASSWORD)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "464 " + allFds.userData[userNbr].nickname + " :Password incorrect\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "464 " + allFds.userData[userNbr].nickname + " :Password incorrect\r\n");
return ; return ;
} }
// pos = find_user(allFds, splitBuff[1]); // pos = find_user(allFds, splitBuff[1]);
@ -47,6 +47,6 @@ void OPER(std::string buffer, fdList &allFds, int userNbr)
// } // }
allFds.userData[userNbr].op = 1; allFds.userData[userNbr].op = 1;
allFds.userData[userNbr].mode.s = 1; allFds.userData[userNbr].mode.s = 1;
msg = "381 " + allFds.userData[userNbr].nickname + " " + allFds.userData[userNbr].nickname + " :You are now an IRC operator\n"; msg = "381 " + allFds.userData[userNbr].nickname + " " + allFds.userData[userNbr].nickname + " :You are now an IRC operator\r\n";
send(allFds.userData[userNbr].fd, msg.c_str(), msg.size(), 0); send(allFds.userData[userNbr].fd, msg.c_str(), msg.size(), 0);
} }

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/02/11 19:11:03 by apommier #+# #+# */ /* Created: 2023/02/11 19:11:03 by apommier #+# #+# */
/* Updated: 2023/03/10 21:04:49 by apommier ### ########.fr */ /* Updated: 2023/03/10 22:15:48 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -25,29 +25,29 @@ void SQUIT(std::string buffer, fdList &allFds, int userNbr)
if (!allFds.userData[userNbr].registered) if (!allFds.userData[userNbr].registered)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "451 " + allFds.userData[userNbr].nickname + " SQUIT :You have not registered\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "451 " + allFds.userData[userNbr].nickname + " SQUIT :You have not registered\r\n");
return ; return ;
} }
if (splitBuff.size() < 2) if (splitBuff.size() < 2)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "431 " + allFds.userData[userNbr].nickname + " SQUIT :Not enought argument\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "431 " + allFds.userData[userNbr].nickname + " SQUIT :Not enought argument\r\n");
return ; return ;
} }
if (!allFds.userData[userNbr].op) if (!allFds.userData[userNbr].op)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "481 " + allFds.userData[userNbr].nickname + " :Permission Denied- You're not an IRC operator\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "481 " + allFds.userData[userNbr].nickname + " :Permission Denied- You're not an IRC operator\r\n");
return ; return ;
} }
std::cout << "squit serv= " << splitBuff[2] << std::endl; std::cout << "squit serv= " << splitBuff[2] << std::endl;
if (splitBuff[1] != "irc.local") if (splitBuff[1] != "irc.local")
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "402 " + allFds.userData[userNbr].nickname + " " + splitBuff[2] + " :No such server\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "402 " + allFds.userData[userNbr].nickname + " " + splitBuff[2] + " :No such server\r\n");
return ; return ;
} }
std::string fullMsg; std::string fullMsg;
for (int pos = 0; pos < allFds.nbrUser; pos++) for (int pos = 0; pos < allFds.nbrUser; pos++)
{ {
fullMsg = ":irc.local NOTICE " + allFds.userData[pos].userName + "." + allFds.userData[pos].nickname + " :*** You have been disconnected from the server"; fullMsg = ":irc.local NOTICE " + allFds.userData[pos].userName + "." + allFds.userData[pos].nickname + " :*** You have been disconnected from the server\r\n";
//fullMsg = ":" + allFds.userData[pos].nickname + "!" + + "@" + allFds.userData[pos].ip + " QUIT :Server shutdown\n"; //fullMsg = ":" + allFds.userData[pos].nickname + "!" + + "@" + allFds.userData[pos].ip + " QUIT :Server shutdown\n";
send(allFds.userData[pos].fd, fullMsg.c_str(), fullMsg.size(), 0); send(allFds.userData[pos].fd, fullMsg.c_str(), fullMsg.size(), 0);
if (close(allFds.userData[pos].fd) != 0) if (close(allFds.userData[pos].fd) != 0)

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/02/16 17:09:38 by apommier #+# #+# */ /* Created: 2023/02/16 17:09:38 by apommier #+# #+# */
/* Updated: 2023/03/10 21:04:49 by apommier ### ########.fr */ /* Updated: 2023/03/10 22:16:06 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -21,16 +21,16 @@ void WALLOPS(std::string buffer, fdList &allFds, int userNbr)
//std::cout << "privmsg bufer= --" << buffer << std::endl; //std::cout << "privmsg bufer= --" << buffer << std::endl;
if (!allFds.userData[userNbr].registered) if (!allFds.userData[userNbr].registered)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "451 " + allFds.userData[userNbr].nickname + " WALLOPS :You have not registered\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "451 " + allFds.userData[userNbr].nickname + " WALLOPS :You have not registered\r\n");
return ; return ;
} }
split(buffer, ' ', splitBuff); split(buffer, ' ', splitBuff);
if (splitBuff.size() < 2) if (splitBuff.size() < 2)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "431 " + allFds.userData[userNbr].nickname + " WALLOPS :Not enought argument\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "431 " + allFds.userData[userNbr].nickname + " WALLOPS :Not enought argument\r\n");
return ; return ;
} }
msg = ":" + allFds.userData[userNbr].nickname + " WALLOPS :" + buffer.substr(splitBuff[1].size() + std::string::npos + 1) + "\n"; msg = ":" + allFds.userData[userNbr].nickname + " WALLOPS :" + buffer.substr(splitBuff[1].size() + std::string::npos + 1) + "\r\n";
//msg = "PRIVMSG " + allFds.userData[userNbr].nickname + " " + buffer.substr(splitBuff[1].size() + std::string::npos + 1); //msg = "PRIVMSG " + allFds.userData[userNbr].nickname + " " + buffer.substr(splitBuff[1].size() + std::string::npos + 1);
for (int i = 0; i < allFds.nbrUser; i++) for (int i = 0; i < allFds.nbrUser; i++)
{ {

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/02/16 18:14:15 by apommier #+# #+# */ /* Created: 2023/02/16 18:14:15 by apommier #+# #+# */
/* Updated: 2023/03/10 21:40:02 by apommier ### ########.fr */ /* Updated: 2023/03/10 22:26:02 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -28,7 +28,7 @@ void names_reply(fdList &allFds, channelData &chan, int fd, std::string user)
else else
msg += "+" + chan.userList[i]->nickname + " "; msg += "+" + chan.userList[i]->nickname + " ";
} }
msg += "\n"; msg += "\r\n";
std::cout << "name msg= " << msg; std::cout << "name msg= " << msg;
cmd_reply(allFds, fd, msg); cmd_reply(allFds, fd, msg);
} }
@ -43,7 +43,7 @@ void NAMES(std::string buffer, fdList &allFds, int userNbr)
if (!allFds.userData[userNbr].registered) if (!allFds.userData[userNbr].registered)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "451 " + allFds.userData[userNbr].nickname + " NAMES :You have not registered\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "451 " + allFds.userData[userNbr].nickname + " NAMES :You have not registered\r\n");
return ; return ;
} }
split(buffer, ' ', splitBuff); split(buffer, ' ', splitBuff);

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/02/13 00:16:27 by apommier #+# #+# */ /* Created: 2023/02/13 00:16:27 by apommier #+# #+# */
/* Updated: 2023/03/10 21:04:49 by apommier ### ########.fr */ /* Updated: 2023/03/10 22:16:50 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -28,7 +28,7 @@ void PONG(std::string buffer, fdList &allFds, int userNbr)
std::string msg; std::string msg;
std::vector<std::string> splitBuff; std::vector<std::string> splitBuff;
split(buffer, ' ', splitBuff); split(buffer, ' ', splitBuff);
msg = ":irc.local PONG irc.local :irc.local"; msg = ":irc.local PONG irc.local :irc.local\r\n";
// ":irc.local PONG irc.local :irc.local" // ":irc.local PONG irc.local :irc.local"
send(allFds.userData[userNbr].fd, msg.c_str(), msg.size(), 0); send(allFds.userData[userNbr].fd, msg.c_str(), msg.size(), 0);
// if (splitBuff.size() < 2) // if (splitBuff.size() < 2)
@ -51,7 +51,7 @@ void PING(std::string buffer, fdList &allFds, int userNbr)
std::string msg; std::string msg;
std::vector<std::string> splitBuff; std::vector<std::string> splitBuff;
split(buffer, ' ', splitBuff); split(buffer, ' ', splitBuff);
msg = ":irc.local PONG irc.local :" + splitBuff[1] + "\n"; msg = ":irc.local PONG irc.local :" + splitBuff[1] + "\r\n";
//msg = "PONG irc.local " + splitBuff[1]; //msg = "PONG irc.local " + splitBuff[1];
send(allFds.userData[userNbr].fd, msg.c_str(), msg.size(), 0); send(allFds.userData[userNbr].fd, msg.c_str(), msg.size(), 0);
//std::cout << "pong send\n"; //std::cout << "pong send\n";

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/02/11 19:10:26 by apommier #+# #+# */ /* Created: 2023/02/11 19:10:26 by apommier #+# #+# */
/* Updated: 2023/03/09 05:18:42 by apommier ### ########.fr */ /* Updated: 2023/03/10 22:16:59 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -19,7 +19,7 @@ void send_quit_msg(fdList &allFds, int userNbr, std::string msg)
// if (msg.empty()) // if (msg.empty())
// fullMsg = ":" + allFds.userData[userNbr].nickname + "!" + allFds.userData[userNbr].userName + "@" + allFds.userData[userNbr].ip + " QUIT :" + joined_chan.name + "\n"; // fullMsg = ":" + allFds.userData[userNbr].nickname + "!" + allFds.userData[userNbr].userName + "@" + allFds.userData[userNbr].ip + " QUIT :" + joined_chan.name + "\n";
// else // else
fullMsg = ":" + allFds.userData[userNbr].nickname + "!" + allFds.userData[userNbr].userName + "@" + allFds.userData[userNbr].ip + " QUIT :" + msg + "\n"; fullMsg = ":" + allFds.userData[userNbr].nickname + "!" + allFds.userData[userNbr].userName + "@" + allFds.userData[userNbr].ip + " QUIT :" + msg + "\r\n";
for (size_t i = 0; i < allFds.userData[userNbr].joinedChan.size(); i++) for (size_t i = 0; i < allFds.userData[userNbr].joinedChan.size(); i++)
{ {
//allFds.userData[userNbr].joinedChan[i]-> //allFds.userData[userNbr].joinedChan[i]->

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/02/16 18:14:17 by apommier #+# #+# */ /* Created: 2023/02/16 18:14:17 by apommier #+# #+# */
/* Updated: 2023/03/10 21:20:04 by apommier ### ########.fr */ /* Updated: 2023/03/10 22:26:41 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -34,7 +34,7 @@ void who_reply(fdList &allFds, clientData &user, int fd)
+ user.userName + " " + user.userName + " "
+ user.hostName + " irc.local " + user.hostName + " irc.local "
+ user.nickname + " :0 " + user.nickname + " :0 "
+ user.realName + "\n"; + user.realName + "\r\n";
std::cout << "whoreply= " << msg << std::endl; std::cout << "whoreply= " << msg << std::endl;
cmd_reply(allFds, fd, msg); cmd_reply(allFds, fd, msg);
} }
@ -47,7 +47,7 @@ void WHO(std::string buffer, fdList &allFds, int userNbr)
if (!allFds.userData[userNbr].registered) if (!allFds.userData[userNbr].registered)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "451 " + allFds.userData[userNbr].nickname + " WHO :You have not registered\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "451 " + allFds.userData[userNbr].nickname + " WHO :You have not registered\r\n");
return ; return ;
} }
split(buffer, ' ', splitBuff); split(buffer, ' ', splitBuff);
@ -65,7 +65,7 @@ void WHO(std::string buffer, fdList &allFds, int userNbr)
} }
if ((pos = find_channel(allFds, splitBuff[1])) == -1) if ((pos = find_channel(allFds, splitBuff[1])) == -1)
{ {
cmd_error(allFds, allFds.userData[userNbr].fd, "401 " + allFds.userData[userNbr].nickname + " " + splitBuff[1] + " :No such channel\n"); cmd_error(allFds, allFds.userData[userNbr].fd, "401 " + allFds.userData[userNbr].nickname + " " + splitBuff[1] + " :No such channel\r\n");
return ; return ;
} }
for (size_t i = 0; i < allFds.channelList[pos].userList.size(); i++) for (size_t i = 0; i < allFds.channelList[pos].userList.size(); i++)

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2022/12/06 21:46:41 by apommier #+# #+# */ /* Created: 2022/12/06 21:46:41 by apommier #+# #+# */
/* Updated: 2023/03/09 01:18:14 by apommier ### ########.fr */ /* Updated: 2023/03/10 22:14:58 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -35,7 +35,7 @@ void ft_putstr_fd(int fd, std::string str)
{ {
// write(fd, str.c_str(), str.size()); // write(fd, str.c_str(), str.size());
// write(fd, "\n", 1); // write(fd, "\n", 1);
str += "\n"; str += "\r\n";
send(fd, str.c_str(), str.size(), 0); send(fd, str.c_str(), str.size(), 0);
} }