diff --git a/Makefile b/Makefile index 0222e6e..ef87706 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ CXX = c++ -CXXFLAGS = -Wall -Wextra -Werror -std=c++98 +CXXFLAGS = -Wall -Wextra -Werror -std=c++98 -g OBJDIR = obj SRCS = $(shell find srcs -name "*.cpp") OBJS = $(patsubst %.cpp,$(OBJDIR)/%.o,$(SRCS)) @@ -23,6 +23,9 @@ fclean: clean re: fclean all +valgrind: re + valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes --track-fds=yes ./ircserv 6667 1234 + test: $(MAKE) -C tests/bdd test @@ -51,4 +54,4 @@ container: container-stop: container stop --all && container system stop -.PHONY: all clean fclean re test test-valgrind container-build container-run container-shell container container-stop \ No newline at end of file +.PHONY: all clean fclean re test test-valgrind container-build container-run container-shell container container-stop diff --git a/srcs/parsing.cpp b/srcs/parsing.cpp index 6487c41..c7362a3 100644 --- a/srcs/parsing.cpp +++ b/srcs/parsing.cpp @@ -1,6 +1,13 @@ #include "../incs/ircserv.hpp" #include +void initPollFd(int incofd, struct pollfd &NewPoll) +{ + memset(&NewPoll, 0, sizeof(NewPoll)); + NewPoll.fd = incofd; + NewPoll.events = POLLIN; + NewPoll.revents = 0; +} void Parser::handleDccSend(Server *server, const std::string &target, const std::string &filename, int clientFd) { @@ -20,8 +27,7 @@ void Parser::handleDccSend(Server *server, const std::string &target, const std: if (dccServer->init() != -1) { struct pollfd newPollFd; - newPollFd.fd = dccServer->getSockfd(); - newPollFd.events = POLLIN; + initPollFd(dccServer->getSockfd(), newPollFd); server->addPollFd(newPollFd); server->addDccServer(dccServer); @@ -81,8 +87,7 @@ void Parser::handleDccGet(Server *server, const std::string &targetNick, const s if (dccClient->init() != -1) { struct pollfd newPollFd; - newPollFd.fd = dccClient->getSockfd(); - newPollFd.events = POLLIN; + initPollFd(dccClient->getSockfd(), newPollFd); server->addPollFd(newPollFd); server->addDccClient(dccClient); server->SendToClient(clientFd, "DCC GET initiated for file '" + Filename + "' from user '" + targetNick + "'\r\n");