commit 8a7204b7a5bc521ab990f18065854b68136e718b Author: LuckyLaszlo Date: Thu Jul 7 20:13:14 2022 +0200 init diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a9f2ccf --- /dev/null +++ b/.gitignore @@ -0,0 +1,16 @@ +.DS_Store +Thumbs.db +*.o +*.swp +*.out +*.exe +*.stackdump +*.a +*.so +*.dSYM +.vscode +*.lnk +*.zip + +ubuntu_tester +ubuntu_cgi_tester diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..9c67075 --- /dev/null +++ b/Makefile @@ -0,0 +1,53 @@ +NAME = webserv + +CXX = c++ + +CXXFLAGS = -Wall -Wextra -Werror +CXXFLAGS += -std=c++98 +CXXFLAGS += -I$(HEADERS_D) +#CXXFLAGS += -g +#CXXFLAGS += -O3 + +SHELL = /bin/zsh +VPATH = $(DIR_SRCS) +DIR_SRCS = tests + +HEADERS_D = ./templates +HEADERS = + +DEPENDENCIES = $(HEADERS:%=$(HEADERS_D)/%) + +SRCS = main.cpp + +DIR_OBJS = builds +OBJS = $(SRCS:%.cpp=$(DIR_OBJS)/%.o) + +# -------------------- +# ------ RULES ------- +# -------------------- + +all: $(NAME) + +$(DIR_OBJS)/%.o: $(SRCS) | $(DIR_OBJS) + $(CXX) $(CXXFLAGS) -c $< -o $@ + +$(DIR_OBJS): + mkdir $@ + +$(OBJS): $(DEPENDENCIES) +#$(OBJS): $(DEPENDENCIES) Makefile + +$(NAME) : + $(CXX) $(OBJS) -o $(NAME) + +clean: + rm -f $(OBJS) + +fclean: clean + rm -f $(NAME) + +re: fclean all + +#run: all + +.PHONY : all clean fclean re run diff --git a/include_memo.hpp b/include_memo.hpp new file mode 100644 index 0000000..2ed2454 --- /dev/null +++ b/include_memo.hpp @@ -0,0 +1,24 @@ +//# include +# include +# include +# include // errno +# include // perror + + +// -------------------------------------------- +// Verifier si les fonctions sont dispos dans des headers C++ + + +# include // fcntl + +// htonl, htons, ntohl, ntohs, inet_addr +# include + +// socket, accept, listen, send, recv, bind, connect, setsockopt, getsockname +# include + +# include // poll + // OR +# include // select + // OR +# include // epoll diff --git a/memo.txt b/memo.txt new file mode 100644 index 0000000..6f8b3ab --- /dev/null +++ b/memo.txt @@ -0,0 +1,7 @@ +- un thread par serveur présent dans le fichier de config ? + +---------------- + +---------------- +Un truc cool et surtout bien utile ici c'est d'utiliser un proxy entre ton navigateur et ton serveur pour vérifier ce qui est envoyé en raw. Les navigateurs peuvent avoir des comportements différents. +Vous avez des modules sur vos navigateur ou des logiciels externe. C'est assez rapide et gratuit. \ No newline at end of file diff --git a/srcs/Webserv.cpp b/srcs/Webserv.cpp new file mode 100644 index 0000000..d446827 --- /dev/null +++ b/srcs/Webserv.cpp @@ -0,0 +1,27 @@ + +#include "Webserv.hpp" + +Webserv::Webserv() +{ + _socket_fd = socket(AF_INET, SOCK_STREAM | SOCK_NONBLOCK, 0); + if (_socket_fd == -1) + { + perror("socket(): "); + throw std::runtime_error("Socket init"); + } +} + +Webserv::Webserv(Webserv const &src) +{ + +} + +Webserv::~Webserv() +{ + +} + +Webserv & Webserv::operator=(Webserv const &rhs) +{ + +} \ No newline at end of file diff --git a/srcs/Webserv.hpp b/srcs/Webserv.hpp new file mode 100644 index 0000000..fed19a2 --- /dev/null +++ b/srcs/Webserv.hpp @@ -0,0 +1,30 @@ + +#ifndef WEBSERV_HPP +# define WEBSERV_HPP + +# include +# include +# include // errno +# include // perror +# include +# include + +# include // socket, accept, listen, send, recv, bind, connect, setsockopt, getsockname + +class Webserv +{ + public: + //Webserv(Placeholder); + Webserv(); + Webserv(Webserv const &src); + ~Webserv(); + Webserv &operator=(Webserv const &rhs); + + private: + int _socket_fd; + std::map _request; + std::map _response; + +}; + +#endif \ No newline at end of file diff --git a/srcs/main.cpp b/srcs/main.cpp new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/srcs/main.cpp @@ -0,0 +1 @@ + diff --git a/webserv.en.subject.pdf b/webserv.en.subject.pdf new file mode 100644 index 0000000..005f6c2 Binary files /dev/null and b/webserv.en.subject.pdf differ diff --git a/webserv.fr.subject.pdf b/webserv.fr.subject.pdf new file mode 100644 index 0000000..bf2c538 Binary files /dev/null and b/webserv.fr.subject.pdf differ