caca
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
/* By: vvaas <vvaas@student.42angouleme.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/01/21 10:35:52 by maldavid #+# #+# */
|
||||
/* Updated: 2024/01/24 15:01:44 by maldavid ### ########.fr */
|
||||
/* Updated: 2024/01/24 18:42:31 by vvaas ### ########.fr */
|
||||
/* */
|
||||
/******************************************************************************/
|
||||
|
||||
@@ -15,6 +15,11 @@
|
||||
#include <iostream>
|
||||
#include <logs.hpp>
|
||||
#include <irc.hpp>
|
||||
#include <config.hpp>
|
||||
#include <cstdarg>
|
||||
#include <cstring>
|
||||
#include <cstdlib>
|
||||
#include <cstdio>
|
||||
|
||||
namespace irc
|
||||
{
|
||||
@@ -42,6 +47,18 @@ namespace irc
|
||||
logs::report(log_error, "server failed to send a message from '%s' to '%s' (:sadge:)", sender.c_str(), _username.c_str());
|
||||
}
|
||||
|
||||
void Client::sendModular(std::string message, ...)
|
||||
{
|
||||
char buffer[LOGS_BUFFER_SIZE];
|
||||
|
||||
va_list al;
|
||||
va_start(al, message);
|
||||
vsnprintf(buffer, LOGS_BUFFER_SIZE, message.c_str(), al);
|
||||
va_end(al);
|
||||
|
||||
if (send(_fd, buffer, std::strlen(buffer), 0) < static_cast<ssize_t>(std::strlen(buffer)))
|
||||
logs::report(log_error, "server failed to send a message to '%s'", _nickname.c_str());
|
||||
}
|
||||
void Client::printUserHeader() const
|
||||
{
|
||||
std::cout << AnsiColor::green << "[User " << _id;
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
/* By: vvaas <vvaas@student.42angouleme.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/01/21 09:31:17 by maldavid #+# #+# */
|
||||
/* Updated: 2024/01/24 15:14:19 by maldavid ### ########.fr */
|
||||
/* Updated: 2024/01/24 19:06:59 by vvaas ### ########.fr */
|
||||
/* */
|
||||
/******************************************************************************/
|
||||
|
||||
@@ -70,7 +70,7 @@ namespace irc
|
||||
while(recv((*it)->getFD(), buffer, INPUT_SIZE, 0) > 0) // read() but for socket fd
|
||||
{
|
||||
(*it)->newMsgInFlight(buffer);
|
||||
//std::cout << buffer << std::endl;
|
||||
std::cout << buffer << std::endl;
|
||||
while(handleMessage(*it));
|
||||
std::memset(buffer, 0, sizeof(buffer)); // clear the buffer to avoid trash remaining
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
/* By: vvaas <vvaas@student.42angouleme.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/01/22 17:31:06 by maldavid #+# #+# */
|
||||
/* Updated: 2024/01/24 15:35:06 by maldavid ### ########.fr */
|
||||
/* Updated: 2024/01/24 19:23:56 by vvaas ### ########.fr */
|
||||
/* */
|
||||
/******************************************************************************/
|
||||
|
||||
@@ -76,7 +76,8 @@ namespace irc
|
||||
if(msg.getTokens()[1] == _password)
|
||||
{
|
||||
client->login();
|
||||
client->sendCode(RPL_WELCOME, "Welcome :)\n");
|
||||
client->sendCode(RPL_WELCOME, "\n");
|
||||
client->sendPlainText("Welcome to yipiirc :)\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -177,6 +178,28 @@ namespace irc
|
||||
return;
|
||||
}
|
||||
channel_it it;
|
||||
if (msg.getTokens()[1][0] != '&' && msg.getTokens()[1][0] != '#')
|
||||
{
|
||||
for (client_it itc = _client.begin(); itc != _client.end(); ++itc)
|
||||
{
|
||||
if ((*itc)->getNickName() == msg.getTokens()[1] && (*itc)->getNickName() != client->getNickName())
|
||||
{
|
||||
std::string complete_msg;
|
||||
if(msg.getTokens().size() > 2)
|
||||
{
|
||||
for(std::vector<std::string>::const_iterator tit = msg.getTokens().begin() + 2; tit < msg.getTokens().end(); ++tit)
|
||||
{
|
||||
complete_msg.append(*tit);
|
||||
complete_msg.append(" ");
|
||||
}
|
||||
complete_msg.erase(complete_msg.begin());
|
||||
}
|
||||
(*itc)->sendMsg(client->getNickName(), "PRIVMSG " + (*itc)->getNickName(), complete_msg);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return ;
|
||||
}
|
||||
for(it = _channels.begin(); it != _channels.end(); ++it)
|
||||
{
|
||||
if(msg.getTokens()[1] == it->getName())
|
||||
|
||||
Reference in New Issue
Block a user