NGIN-XS
NGIN-XS is a simple, lightweight, and fast web server written in C++.
π Contributers
π§ File Structure
./
βββ includes/ # header files
βββ cgi-bin/ # cgi files
βββ conf/ # configuration files
βββ error_pages/ # html files for error page
βββ html/ # web root
βββ srcs/ # source files
β βββ autoindex/ # autoindex
β βββ config/ # configuration file
βββ tester # client program for test
βββ Makefile
β Usage
ποΈ Clone
$ git clone https://github.com/srngch/ngin-xs.git
ποΈ Compile
$ make
ποΈ Execute
$ ./webserv [configuration file]
ποΈ Connect
Type [http://servername:port] in the address bar
For example [http://localhost:80]
π Logs
2022-09-21
- Created the repository
- Added the README.md file
- Specified Convention
- Studied concept of multiplexing and socket programming
2022-09-25
- Made simple server-client programs: code
- Learned usage of socket programming functions
socket
,bind
,listen
,accept
,send
,recv
,connect
htons
,htonl
,inet_addr
- header:
<sys/socket.h>
,<netinet/in.h>
,<netinet/ip.h>
2022-09-26
- Made echo server-client programs: code
- Made a multiplexing server program: code
- Learned usage of multiplexing function
poll
2022-09-28
- Fixed bug when multiple clients request connection: code
- Close socket and initialize fd & revents when POLLHUP event occurs
- Removed while loop in recv()
- Fixed bug regarding to EADDRINUSE: code
- Added close(listen_socket) when error occurs
- Added setsockopt() to reuse port already in use
- Specified classes
- Member variables
- Member functions
2022-09-29
2022-10-01
2022-10-02
2022-10-03
2022-10-10
- Implemented autoindex: Issue, PR
- Implemented POST method: Issue, PR
- Changed header data type: Issue, PR
- [WIP] Parse configuration file: Issue
2022-10-12
2022-10-13
2022-10-14
2022-10-15
- Implemented directory path redirection: Issue, PR
- [WIP] Get required values from config class: Issue
- [WIP] Implement python-cgi: Issue
2022-10-17
2022-10-18
- Implemented python-cgi: Issue, PR
- Updated function to set response header: Issue, PR
- [WIP] Get required values from config class: Issue
2022-10-19
- Implemented CUI client: Issue, PR
- Added multipart/form-data file upload to python-cgi: Issue, PR
- Fixed infinite validation when request header is invalid: Issue, PR
- Fixed CRLF issue when response binary file: Issue, PR
- [WIP] Get required values from config class: Issue
2022-10-20
- Implemented handling Connection header: Issue, PR
- Implemented Limiting client max body size: Issue, PR
- Refactored exception: Issue, PR
- Get required values from config class: Issue, PR
2022-10-21
- Implemented web client: Issue, PR
- Implemented getting required values from config class: Issue, PR
- [WIP] Implement running multiple servers: Issue
2022-10-22
2022-10-23
- [WIP] Apply Config class: Issue
2022-10-24
2022-10-25
- [WIP] Try tester program given by subject: Issue
2022-10-26
- [WIP
π ] Try tester program given by subject: Issue