compil with flag, change from simple tab to vector for function pointer tab to match cpp98
This commit is contained in:
parent
d2d8d2cdd9
commit
15d3dd47fd
9
Makefile
9
Makefile
@ -6,7 +6,7 @@
|
|||||||
# By: apommier <apommier@student.42.fr> +#+ +:+ +#+ #
|
# By: apommier <apommier@student.42.fr> +#+ +:+ +#+ #
|
||||||
# +#+#+#+#+#+ +#+ #
|
# +#+#+#+#+#+ +#+ #
|
||||||
# Created: 2022/12/01 17:27:29 by apommier #+# #+# #
|
# Created: 2022/12/01 17:27:29 by apommier #+# #+# #
|
||||||
# Updated: 2023/02/09 14:35:20 by apommier ### ########.fr #
|
# Updated: 2023/02/10 08:18:36 by apommier ### ########.fr #
|
||||||
# #
|
# #
|
||||||
# **************************************************************************** #
|
# **************************************************************************** #
|
||||||
|
|
||||||
@ -22,11 +22,14 @@ SRCS := main.cpp\
|
|||||||
commands/auth/nick.cpp\
|
commands/auth/nick.cpp\
|
||||||
commands/auth/pass.cpp\
|
commands/auth/pass.cpp\
|
||||||
commands/auth/user.cpp\
|
commands/auth/user.cpp\
|
||||||
commands/auth/utils.cpp
|
commands/auth/cmd_utils.cpp\
|
||||||
|
commands/channel/channel_utils.cpp\
|
||||||
|
commands/channel/join.cpp\
|
||||||
|
commands/not_done_cmd.cpp #special (temporary)
|
||||||
|
|
||||||
CC = c++
|
CC = c++
|
||||||
FLAGS = -g
|
FLAGS = -g
|
||||||
#FLAGS2 = -Wall -Wextra -Werror -std=c++98
|
FLAGS2 = -Wall -Wextra -Werror -std=c++98
|
||||||
DIR_OBJ := obj
|
DIR_OBJ := obj
|
||||||
DIR_INC = -I ./includes/
|
DIR_INC = -I ./includes/
|
||||||
DIR_SRCS := ./srcs
|
DIR_SRCS := ./srcs
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2022/12/01 17:27:37 by apommier #+# #+# */
|
/* Created: 2022/12/01 17:27:37 by apommier #+# #+# */
|
||||||
/* Updated: 2023/02/09 14:41:14 by apommier ### ########.fr */
|
/* Updated: 2023/02/10 09:59:10 by apommier ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -23,193 +23,12 @@
|
|||||||
#include <vector>
|
#include <vector>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
||||||
|
#include "function_tab.hpp"
|
||||||
|
|
||||||
#define MAX_EVENTS 5
|
#define MAX_EVENTS 5
|
||||||
#define READ_SIZE 10
|
#define READ_SIZE 10
|
||||||
#define CMD_NBR 10
|
#define CMD_NBR 10
|
||||||
|
|
||||||
//struct functionTab;
|
|
||||||
struct fdList;
|
|
||||||
|
|
||||||
//std::string ft_test();
|
|
||||||
|
|
||||||
/* ************************************************************************** */
|
|
||||||
/* *********************************COMMANDS********************************* */
|
|
||||||
/* ************************************************************************** */
|
|
||||||
|
|
||||||
void PASS(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void NICK(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void USER(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void SERVER(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void OPER(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void QUIT(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void SQUIT(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void JOIN(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void PART(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void MODE(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void TOPIC(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void NAMES(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void LIST(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void INVITE(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void KICK(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void VERSION(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void STATS(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void LINKS(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void TIME(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void CONNECT(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void TRACE(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void ADMIN(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void INFO(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void PRIVMSG(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void NOTICE(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void WHO(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void WHOIS(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void WHOWAS(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void KILL(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void PING(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void PONG(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void ERROR(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void AWAY(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void REHASH(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void RESTART(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void SUMMON(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void USER(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void OPERWALL(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void USERHOST(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
void ISON(std::string buffer, fdList &allFds, int userNbr);
|
|
||||||
|
|
||||||
|
|
||||||
/* ************************************************************************** */
|
|
||||||
/* *****************************COMMAND STRUCT******************************* */
|
|
||||||
/* ************************************************************************** */
|
|
||||||
|
|
||||||
struct functionTab
|
|
||||||
{
|
|
||||||
static const int cmdNbr = 40;
|
|
||||||
std::string cmdName[cmdNbr] =
|
|
||||||
{
|
|
||||||
//4. Détails des messages
|
|
||||||
|
|
||||||
//4.1 Etablissement de connexion
|
|
||||||
"PASS",
|
|
||||||
"NICK",
|
|
||||||
"USER",
|
|
||||||
"SERVER",
|
|
||||||
"OPER",
|
|
||||||
"QUIT",
|
|
||||||
"SQUIT",
|
|
||||||
|
|
||||||
//4.2 Opérations sur les canaux
|
|
||||||
"JOIN",
|
|
||||||
"PART",
|
|
||||||
"MODE",
|
|
||||||
"TOPIC",
|
|
||||||
"NAMES",
|
|
||||||
"LIST",
|
|
||||||
"INVITE",
|
|
||||||
"KICK",
|
|
||||||
|
|
||||||
//4.3 Requêtes et commandes des serveurs
|
|
||||||
"VERSION",
|
|
||||||
"STATS",
|
|
||||||
"LINKS",
|
|
||||||
"TIME",
|
|
||||||
"CONNECT",
|
|
||||||
"TRACE",
|
|
||||||
"ADMIN",
|
|
||||||
"INFO",
|
|
||||||
|
|
||||||
//4.4 Envoi de messages
|
|
||||||
"PRIVMSG",
|
|
||||||
"NOTICE",
|
|
||||||
|
|
||||||
//4.5 Requêtes basées sur les utilisateurs
|
|
||||||
|
|
||||||
"WHO",
|
|
||||||
"WHOIS",
|
|
||||||
"WHOWAS",
|
|
||||||
//4.6 Messages divers
|
|
||||||
|
|
||||||
"KILL",
|
|
||||||
"PING",
|
|
||||||
"PONG",
|
|
||||||
"ERROR",
|
|
||||||
|
|
||||||
//5. Messages optionnels
|
|
||||||
"AWAY",
|
|
||||||
"REHASH",
|
|
||||||
"RESTART",
|
|
||||||
"SUMMON",
|
|
||||||
"USER",
|
|
||||||
"OPERWALL",
|
|
||||||
"USERHOST",
|
|
||||||
"ISON"
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
//std::string (*cmdPtr[cmdNbr])(void) =
|
|
||||||
void (*cmdPtr[cmdNbr])(std::string buffer, fdList &allFds, int userNbr) =
|
|
||||||
{
|
|
||||||
//ft_test
|
|
||||||
|
|
||||||
//4. Détails des messages
|
|
||||||
|
|
||||||
// //4.1 Etablissement de connexion
|
|
||||||
PASS,
|
|
||||||
NICK,
|
|
||||||
USER
|
|
||||||
// SERVER,
|
|
||||||
// OPER,
|
|
||||||
// QUIT,
|
|
||||||
// SQUIT,
|
|
||||||
|
|
||||||
// //4.2 Opérations sur les canaux
|
|
||||||
// JOIN,
|
|
||||||
// PART,
|
|
||||||
// MODE,
|
|
||||||
// TOPIC,
|
|
||||||
// NAMES,
|
|
||||||
// LIST,
|
|
||||||
// INVITE,
|
|
||||||
// KICK,
|
|
||||||
|
|
||||||
// //4.3 Requêtes et commandes des serveurs
|
|
||||||
// VERSION,
|
|
||||||
// STATS,
|
|
||||||
// LINKS,
|
|
||||||
// TIME,
|
|
||||||
// CONNECT,
|
|
||||||
// TRACE,
|
|
||||||
// ADMIN,
|
|
||||||
// INFO,
|
|
||||||
|
|
||||||
// //4.4 Envoi de messages
|
|
||||||
// PRIVMSG,
|
|
||||||
// NOTICE,
|
|
||||||
|
|
||||||
// //4.5 Requêtes basées sur les utilisateurs
|
|
||||||
|
|
||||||
// WHO,
|
|
||||||
// WHOIS,
|
|
||||||
// WHOWAS,
|
|
||||||
// //4.6 Messages divers
|
|
||||||
|
|
||||||
// KILL,
|
|
||||||
// PING,
|
|
||||||
// PONG,
|
|
||||||
// ERROR,
|
|
||||||
|
|
||||||
// //5. Messages optionnels
|
|
||||||
// AWAY,
|
|
||||||
// REHASH,
|
|
||||||
// RESTART,
|
|
||||||
// SUMMON,
|
|
||||||
// USER,
|
|
||||||
// OPERWALL,
|
|
||||||
// USERHOST,
|
|
||||||
// ISON
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
/* *********************************STRUCT*********************************** */
|
/* *********************************STRUCT*********************************** */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
@ -218,27 +37,34 @@ struct channelData;
|
|||||||
|
|
||||||
struct clientData
|
struct clientData
|
||||||
{
|
{
|
||||||
bool registered = 0;
|
bool registered;
|
||||||
std::string buf[1024];
|
|
||||||
|
clientData() { registered = 0; }
|
||||||
std::string nickname;
|
std::string nickname;
|
||||||
std::string password;
|
std::string password;
|
||||||
|
|
||||||
std::string userName;
|
std::string userName;
|
||||||
std::string realName;
|
std::string realName;
|
||||||
std::string hostName;
|
std::string hostName;
|
||||||
std::string serverName;
|
std::string serverName;
|
||||||
|
|
||||||
|
std::string cmdBuffer;
|
||||||
//std::string joinedChan[20];
|
//std::string joinedChan[20];
|
||||||
channelData *joinedChan; //is there a limit?
|
//channelData *joinedChan; //is there a limit?
|
||||||
int nbrChan;
|
|
||||||
int perm;
|
// std::vector<std::string> joinedChan;
|
||||||
|
std::vector<channelData *> joinedChan;
|
||||||
int fd;
|
int fd;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct channelData
|
struct channelData
|
||||||
{
|
{
|
||||||
//std::string userList[MAX_EVENTS];
|
//std::string userList[MAX_EVENTS];
|
||||||
clientData userList[MAX_EVENTS];
|
|
||||||
|
//clientData userList[MAX_EVENTS];
|
||||||
|
std::string name;
|
||||||
|
std::vector<clientData> userList;
|
||||||
|
std::vector<clientData> banList;
|
||||||
int op;
|
int op;
|
||||||
int nbrUser;
|
int nbrUser;
|
||||||
};
|
};
|
||||||
@ -252,6 +78,7 @@ struct fdList //&allFds in code
|
|||||||
int serverFd;
|
int serverFd;
|
||||||
//int userList[MAX_EVENTS]; //list of userNbr's fd
|
//int userList[MAX_EVENTS]; //list of userNbr's fd
|
||||||
std::vector<int> userList;
|
std::vector<int> userList;
|
||||||
|
std::vector<channelData> channelList;
|
||||||
//clientData userData[MAX_EVENTS];
|
//clientData userData[MAX_EVENTS];
|
||||||
std::vector<clientData> userData;
|
std::vector<clientData> userData;
|
||||||
|
|
||||||
@ -264,7 +91,7 @@ struct fdList //&allFds in code
|
|||||||
|
|
||||||
|
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
/* *********************************UTILS************************************ */
|
/* *******************************CMD UTILS********************************** */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
void ft_error(std::string str);
|
void ft_error(std::string str);
|
||||||
@ -273,6 +100,12 @@ void cmd_error(fdList &allFds, int userNbr, std::string error);
|
|||||||
void split(std::string const &str, const char delim, std::vector<std::string> &out);
|
void split(std::string const &str, const char delim, std::vector<std::string> &out);
|
||||||
void print_registered_msg(fdList &allFds, int userNbr);
|
void print_registered_msg(fdList &allFds, int userNbr);
|
||||||
|
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* *******************************CHAN UTILS********************************* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
int find_channel(fdList &allFds, std::string chanName);
|
||||||
|
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
/* ******************************START SERVER******************************** */
|
/* ******************************START SERVER******************************** */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
@ -291,7 +124,7 @@ int epoll_start(); //2nd
|
|||||||
/* *************************CONNECTION AND REQUEST*************************** */
|
/* *************************CONNECTION AND REQUEST*************************** */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
void new_connection(fdList &allFds, struct epoll_event newClient);
|
void new_connection(fdList &allFds);
|
||||||
bool clientRequest(fdList &allFds, int userNbr);
|
bool clientRequest(fdList &allFds, int userNbr);
|
||||||
|
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|||||||
185
includes/function_tab.hpp
Normal file
185
includes/function_tab.hpp
Normal file
@ -0,0 +1,185 @@
|
|||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* function_tab.hpp :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2023/02/10 08:55:52 by apommier #+# #+# */
|
||||||
|
/* Updated: 2023/02/10 09:59:21 by apommier ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "./ft_irc.hpp"
|
||||||
|
|
||||||
|
struct fdList;
|
||||||
|
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* *********************************COMMANDS********************************* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
void PASS(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void NICK(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void USER(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void SERVER(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void OPER(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void QUIT(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void SQUIT(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void JOIN(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void PART(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void MODE(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void TOPIC(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void NAMES(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void LIST(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void INVITE(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void KICK(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void VERSION(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void STATS(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void LINKS(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void TIME(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void CONNECT(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void TRACE(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void ADMIN(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void INFO(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void PRIVMSG(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void NOTICE(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void WHO(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void WHOIS(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void WHOWAS(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void KILL(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void PING(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void PONG(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void ERROR(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void AWAY(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void REHASH(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void RESTART(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void SUMMON(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void USER(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void OPERWALL(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void USERHOST(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
void ISON(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
|
||||||
|
|
||||||
|
struct functionTab
|
||||||
|
{
|
||||||
|
static const int cmdNbr = 40;
|
||||||
|
|
||||||
|
std::vector<std::string>cmdName;
|
||||||
|
//std::vector<(void *)(std::string buffer, fdList &allFds, int userNbr);
|
||||||
|
std::vector<void (*)(std::string buffer, fdList &allFds, int userNbr)>cmdPtr;
|
||||||
|
functionTab()
|
||||||
|
{
|
||||||
|
|
||||||
|
//4.1 Etablissement de connexion
|
||||||
|
cmdName.push_back("PASS");
|
||||||
|
cmdName.push_back("NICK");
|
||||||
|
cmdName.push_back("USER");
|
||||||
|
cmdName.push_back("SERVER");
|
||||||
|
cmdName.push_back("OPER");
|
||||||
|
cmdName.push_back("QUIT");
|
||||||
|
cmdName.push_back("SQUIT");
|
||||||
|
|
||||||
|
//4.2 Opérations sur les canaux
|
||||||
|
cmdName.push_back("JOIN");
|
||||||
|
cmdName.push_back("PART");
|
||||||
|
cmdName.push_back("MODE");
|
||||||
|
cmdName.push_back("TOPIC");
|
||||||
|
cmdName.push_back("NAMES");
|
||||||
|
cmdName.push_back("LIST");
|
||||||
|
cmdName.push_back("INVITE");
|
||||||
|
cmdName.push_back("KICK");
|
||||||
|
|
||||||
|
//4.3 Requêtes et commandes des serveurs
|
||||||
|
cmdName.push_back("VERSION");
|
||||||
|
cmdName.push_back("STATS");
|
||||||
|
cmdName.push_back("LINKS");
|
||||||
|
cmdName.push_back("TIME");
|
||||||
|
cmdName.push_back("CONNECT");
|
||||||
|
cmdName.push_back("TRACE");
|
||||||
|
cmdName.push_back("ADMIN");
|
||||||
|
cmdName.push_back("INFO");
|
||||||
|
|
||||||
|
//4.4 Envoi de messages
|
||||||
|
cmdName.push_back("PRIVMSG");
|
||||||
|
cmdName.push_back("NOTICE");
|
||||||
|
|
||||||
|
//4.5 Requêtes basées sur les utilisateurs
|
||||||
|
|
||||||
|
cmdName.push_back("WHO");
|
||||||
|
cmdName.push_back("WHOIS");
|
||||||
|
cmdName.push_back("WHOWAS");
|
||||||
|
//4.6 Messages divers
|
||||||
|
|
||||||
|
cmdName.push_back("KILL");
|
||||||
|
cmdName.push_back("PING");
|
||||||
|
cmdName.push_back("PONG");
|
||||||
|
cmdName.push_back("ERROR");
|
||||||
|
|
||||||
|
//5. Messages optionnels
|
||||||
|
cmdName.push_back("AWAY");
|
||||||
|
cmdName.push_back("REHASH");
|
||||||
|
cmdName.push_back("RESTART");
|
||||||
|
cmdName.push_back("SUMMON");
|
||||||
|
cmdName.push_back("OPERWALL");
|
||||||
|
cmdName.push_back("USERHOST");
|
||||||
|
cmdName.push_back("ISON");
|
||||||
|
|
||||||
|
//4. Détails des messages
|
||||||
|
|
||||||
|
// //4.1 Etablissement de connexion
|
||||||
|
cmdPtr.push_back(PASS);
|
||||||
|
cmdPtr.push_back(NICK);
|
||||||
|
cmdPtr.push_back(USER);
|
||||||
|
cmdPtr.push_back(SERVER);
|
||||||
|
cmdPtr.push_back(OPER);
|
||||||
|
cmdPtr.push_back(QUIT);
|
||||||
|
cmdPtr.push_back(SQUIT);
|
||||||
|
|
||||||
|
//4.2 Opérations sur les canaux
|
||||||
|
cmdPtr.push_back(JOIN);
|
||||||
|
cmdPtr.push_back(PART);
|
||||||
|
cmdPtr.push_back(MODE);
|
||||||
|
cmdPtr.push_back(TOPIC);
|
||||||
|
cmdPtr.push_back(NAMES);
|
||||||
|
cmdPtr.push_back(LIST);
|
||||||
|
cmdPtr.push_back(INVITE);
|
||||||
|
cmdPtr.push_back(KICK);
|
||||||
|
|
||||||
|
//4.3 Requêtes et commandes des serveurs
|
||||||
|
cmdPtr.push_back(VERSION);
|
||||||
|
cmdPtr.push_back(STATS);
|
||||||
|
cmdPtr.push_back(LINKS);
|
||||||
|
cmdPtr.push_back(TIME);
|
||||||
|
cmdPtr.push_back(CONNECT);
|
||||||
|
cmdPtr.push_back(TRACE);
|
||||||
|
cmdPtr.push_back(ADMIN);
|
||||||
|
cmdPtr.push_back(INFO);
|
||||||
|
|
||||||
|
//4.4 Envoi de messages
|
||||||
|
cmdPtr.push_back(PRIVMSG);
|
||||||
|
cmdPtr.push_back(NOTICE);
|
||||||
|
|
||||||
|
//4.5 Requêtes basées sur les utilisateurs
|
||||||
|
cmdPtr.push_back(WHO);
|
||||||
|
cmdPtr.push_back(WHOIS);
|
||||||
|
cmdPtr.push_back(WHOWAS);
|
||||||
|
|
||||||
|
//4.6 Messages divers
|
||||||
|
cmdPtr.push_back(KILL);
|
||||||
|
cmdPtr.push_back(PING);
|
||||||
|
cmdPtr.push_back(PONG);
|
||||||
|
cmdPtr.push_back(ERROR);
|
||||||
|
|
||||||
|
//5. Messages optionnels
|
||||||
|
cmdPtr.push_back(AWAY);
|
||||||
|
cmdPtr.push_back(REHASH);
|
||||||
|
cmdPtr.push_back(RESTART);
|
||||||
|
cmdPtr.push_back(SUMMON);
|
||||||
|
cmdPtr.push_back(OPERWALL);
|
||||||
|
cmdPtr.push_back(USERHOST);
|
||||||
|
cmdPtr.push_back(ISON);
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
@ -6,7 +6,7 @@
|
|||||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2022/12/09 22:34:36 by apommier #+# #+# */
|
/* Created: 2022/12/09 22:34:36 by apommier #+# #+# */
|
||||||
/* Updated: 2023/02/09 15:07:06 by apommier ### ########.fr */
|
/* Updated: 2023/02/09 21:39:38 by apommier ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -43,6 +43,6 @@ bool clientRequest(fdList &allFds, int userNbr)//,
|
|||||||
std::cout << "BUFFER: ---" << buf << "---" << std::endl;
|
std::cout << "BUFFER: ---" << buf << "---" << std::endl;
|
||||||
|
|
||||||
//split with \n and while (tab de split) -> parsing
|
//split with \n and while (tab de split) -> parsing
|
||||||
parse_commands((std::string)buf, allFds, userNbr);
|
parse_commands(buf, allFds, userNbr);
|
||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
@ -1,12 +1,12 @@
|
|||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
/* */
|
/* */
|
||||||
/* ::: :::::::: */
|
/* ::: :::::::: */
|
||||||
/* utils.cpp :+: :+: :+: */
|
/* cmd_utils.cpp :+: :+: :+: */
|
||||||
/* +:+ +:+ +:+ */
|
/* +:+ +:+ +:+ */
|
||||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2023/02/07 14:45:45 by apommier #+# #+# */
|
/* Created: 2023/02/07 14:45:45 by apommier #+# #+# */
|
||||||
/* Updated: 2023/02/09 14:01:23 by apommier ### ########.fr */
|
/* Updated: 2023/02/10 09:27:27 by apommier ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -20,6 +20,7 @@ void ft_putstr_fd(int fd, std::string str)
|
|||||||
|
|
||||||
void cmd_error(fdList &allFds, int fd, std::string error)
|
void cmd_error(fdList &allFds, int fd, std::string error)
|
||||||
{
|
{
|
||||||
|
(void)allFds; //to delete
|
||||||
write(fd, ":irc.local ", 11);
|
write(fd, ":irc.local ", 11);
|
||||||
write(fd, error.c_str(), error.size());
|
write(fd, error.c_str(), error.size());
|
||||||
}
|
}
|
||||||
27
srcs/commands/channel/channel_utils.cpp
Normal file
27
srcs/commands/channel/channel_utils.cpp
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* channel_utils.cpp :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2023/02/09 17:21:57 by apommier #+# #+# */
|
||||||
|
/* Updated: 2023/02/09 20:56:31 by apommier ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
#include "../../../includes/ft_irc.hpp"
|
||||||
|
|
||||||
|
int find_channel(fdList &allFds, std::string chanName)
|
||||||
|
{
|
||||||
|
std::vector<channelData>::iterator start = allFds.channelList.begin();
|
||||||
|
std::vector<channelData>::iterator pastEnd = allFds.channelList.end();
|
||||||
|
while (start != pastEnd)
|
||||||
|
{
|
||||||
|
std::cout << "result in find chan = " << pastEnd - start << std::endl;
|
||||||
|
if (allFds.channelList[pastEnd - start].name == chanName)
|
||||||
|
return (pastEnd - start);
|
||||||
|
start++;
|
||||||
|
}
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
@ -6,8 +6,44 @@
|
|||||||
/* 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/02/09 15:40:41 by apommier ### ########.fr */
|
/* Updated: 2023/02/09 21:55:57 by apommier ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
#include "../../../includes/ft_irc.hpp"
|
#include "../../../includes/ft_irc.hpp"
|
||||||
|
|
||||||
|
void JOIN(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
std::vector<std::string> splitBuff;
|
||||||
|
int chanNbr;
|
||||||
|
std::cout << "join start\n";
|
||||||
|
split(buffer, ' ', splitBuff);
|
||||||
|
if (splitBuff.size() < 2)
|
||||||
|
{
|
||||||
|
/*change error*/cmd_error(allFds, allFds.userData[userNbr].fd, "431 * NICK :No nickname given\n");
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
chanNbr = find_channel(allFds, splitBuff[1]);
|
||||||
|
if (chanNbr)
|
||||||
|
{
|
||||||
|
//allFds.userData[userNbr].joinedChan.push_back(splitBuff[1]);
|
||||||
|
//message nickname joined the channel?
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
std::cout << "new chan\n";
|
||||||
|
channelData new_chan;
|
||||||
|
|
||||||
|
new_chan.name = splitBuff[1];
|
||||||
|
//new_chan.userList
|
||||||
|
|
||||||
|
allFds.channelList.push_back(new_chan);
|
||||||
|
allFds.userData[userNbr].joinedChan.push_back(&allFds.channelList.back());
|
||||||
|
//message nickname created the channel?
|
||||||
|
}
|
||||||
|
std::cout << "============persitence test============\n";
|
||||||
|
allFds.channelList.back().name = "new name";
|
||||||
|
std::cout << "newname = " << allFds.userData[userNbr].joinedChan.back()->name << std::endl;
|
||||||
|
//allFds.channelList;
|
||||||
|
}
|
||||||
293
srcs/commands/not_done_cmd.cpp
Normal file
293
srcs/commands/not_done_cmd.cpp
Normal file
@ -0,0 +1,293 @@
|
|||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* not_done_cmd.cpp :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2023/02/09 22:04:11 by apommier #+# #+# */
|
||||||
|
/* Updated: 2023/02/10 09:30:45 by apommier ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
#include "../../includes/ft_irc.hpp"
|
||||||
|
|
||||||
|
void SERVER(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void OPER(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void QUIT(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SQUIT(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void PART(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void MODE(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TOPIC(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void NAMES(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void LIST(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void INVITE(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void KICK(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void VERSION(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void STATS(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void LINKS(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TIME(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CONNECT(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TRACE(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ADMIN(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void INFO(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void PRIVMSG(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void NOTICE(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void WHO(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void WHOIS(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void WHOWAS(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void KILL(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void PING(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void PONG(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ERROR(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AWAY(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void REHASH(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void RESTART(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SUMMON(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void OPERWALL(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void USERHOST(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ISON(std::string buffer, fdList &allFds, int userNbr)
|
||||||
|
{
|
||||||
|
(void)buffer;
|
||||||
|
(void)allFds;
|
||||||
|
(void)userNbr;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
@ -6,7 +6,7 @@
|
|||||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2022/12/06 22:01:25 by apommier #+# #+# */
|
/* Created: 2022/12/06 22:01:25 by apommier #+# #+# */
|
||||||
/* Updated: 2023/02/09 13:20:39 by apommier ### ########.fr */
|
/* Updated: 2023/02/10 09:26:31 by apommier ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -20,19 +20,29 @@ std::string ft_test()
|
|||||||
|
|
||||||
void parse_commands(std::string buffer, fdList &allFds, int userNbr)
|
void parse_commands(std::string buffer, fdList &allFds, int userNbr)
|
||||||
{
|
{
|
||||||
std::string cmd = buffer;
|
//std::string cmd = buffer;
|
||||||
std::vector<std::string> splitBuff;
|
std::vector<std::string> splitBuff;
|
||||||
int a = 0;
|
int a = 0;
|
||||||
|
|
||||||
cmd.pop_back();
|
|
||||||
|
|
||||||
split(cmd, ' ', splitBuff);
|
allFds.userData[userNbr].cmdBuffer += buffer;
|
||||||
|
if (allFds.userData[userNbr].cmdBuffer.find('\n') == std::string::npos)
|
||||||
|
return ;
|
||||||
|
allFds.userData[userNbr].cmdBuffer.erase(allFds.userData[userNbr].cmdBuffer.size() - 1);
|
||||||
|
split(allFds.userData[userNbr].cmdBuffer, ' ', splitBuff);
|
||||||
|
|
||||||
std::cout << "BUFFER In PARSING: ---" << cmd << "---" << std::endl;
|
std::cout << "BUFFER In PARSING: ---" << allFds.userData[userNbr].cmdBuffer << "---" << std::endl;
|
||||||
while (splitBuff[0] != allFds.parsingTab.cmdName[a] && a < allFds.parsingTab.cmdNbr)
|
while (splitBuff[0] != allFds.parsingTab.cmdName[a] && a < allFds.parsingTab.cmdNbr)
|
||||||
a++;
|
a++;
|
||||||
|
std::cout << "after while \n";
|
||||||
if (a == allFds.parsingTab.cmdNbr)
|
if (a == allFds.parsingTab.cmdNbr)
|
||||||
std::cout << "Command not found\n";
|
std::cout << "Command not found\n";
|
||||||
else
|
else
|
||||||
allFds.parsingTab.cmdPtr[a](buffer, allFds, userNbr);
|
{
|
||||||
|
std::cout << "Command name = " << allFds.parsingTab.cmdName[a] << std::endl;
|
||||||
|
std::cout << "Command nbr = " << a << std::endl;
|
||||||
|
allFds.parsingTab.cmdPtr[a](allFds.userData[userNbr].cmdBuffer, allFds, userNbr);
|
||||||
|
//allFds.parsingTab.cmdPtr[a]
|
||||||
|
//JOIN(allFds.userData[userNbr].cmdBuffer, allFds, userNbr);
|
||||||
|
}
|
||||||
|
allFds.userData[userNbr].cmdBuffer.clear();
|
||||||
}
|
}
|
||||||
@ -6,13 +6,13 @@
|
|||||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2022/12/09 22:26:27 by apommier #+# #+# */
|
/* Created: 2022/12/09 22:26:27 by apommier #+# #+# */
|
||||||
/* Updated: 2023/02/09 14:06:13 by apommier ### ########.fr */
|
/* Updated: 2023/02/10 09:19:45 by apommier ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
#include "../includes/ft_irc.hpp"
|
#include "../includes/ft_irc.hpp"
|
||||||
|
|
||||||
void new_connection(fdList &allFds, struct epoll_event newClient)
|
void new_connection(fdList &allFds)
|
||||||
{
|
{
|
||||||
struct sockaddr_in addr;
|
struct sockaddr_in addr;
|
||||||
int addrLen = sizeof(addr);
|
int addrLen = sizeof(addr);
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2022/12/06 21:58:13 by apommier #+# #+# */
|
/* Created: 2022/12/06 21:58:13 by apommier #+# #+# */
|
||||||
/* Updated: 2023/02/09 15:02:44 by apommier ### ########.fr */
|
/* Updated: 2023/02/10 09:20:58 by apommier ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -15,10 +15,10 @@
|
|||||||
void start_loop(fdList &allFds)
|
void start_loop(fdList &allFds)
|
||||||
{
|
{
|
||||||
bool alive = true;
|
bool alive = true;
|
||||||
int readChar;
|
//int readChar;
|
||||||
int eventNbr;
|
int eventNbr;
|
||||||
int i;
|
int i;
|
||||||
int userId;
|
//int userId;
|
||||||
int nbr;
|
int nbr;
|
||||||
|
|
||||||
std::cout << "serverFd: " << allFds.serverFd << std::endl;
|
std::cout << "serverFd: " << allFds.serverFd << std::endl;
|
||||||
@ -33,7 +33,7 @@ void start_loop(fdList &allFds)
|
|||||||
std::cout << "i= " << i << std::endl;
|
std::cout << "i= " << i << std::endl;
|
||||||
if (allFds.events[i].data.fd == allFds.serverFd)
|
if (allFds.events[i].data.fd == allFds.serverFd)
|
||||||
{
|
{
|
||||||
new_connection(allFds, allFds.events[i]);
|
new_connection(allFds);
|
||||||
//std::cout << "after new fd loop " << allFds.userData[i].fd << std::endl;
|
//std::cout << "after new fd loop " << allFds.userData[i].fd << std::endl;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2022/12/06 21:44:20 by apommier #+# #+# */
|
/* Created: 2022/12/06 21:44:20 by apommier #+# #+# */
|
||||||
/* Updated: 2023/02/09 13:50:16 by apommier ### ########.fr */
|
/* Updated: 2023/02/10 09:18:45 by apommier ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -25,7 +25,7 @@ void initialize(char **av)
|
|||||||
//int newSockFd = 0;
|
//int newSockFd = 0;
|
||||||
int opt = 1;
|
int opt = 1;
|
||||||
struct sockaddr_in addr;
|
struct sockaddr_in addr;
|
||||||
int addrLen = sizeof(addr);
|
//int addrLen = sizeof(addr);
|
||||||
fdList allFds;
|
fdList allFds;
|
||||||
|
|
||||||
allFds.nbrUser = 0;
|
allFds.nbrUser = 0;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user