Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/main' into merge_upstream
Browse files Browse the repository at this point in the history
  • Loading branch information
Stefano Lombardo committed May 20, 2024
2 parents 11a1cdb + 07729dd commit 70755ca
Show file tree
Hide file tree
Showing 502 changed files with 240,300 additions and 243 deletions.
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,14 @@

# Specific files and directories to include
!Makefile
!Dockerfile
!.github/
!.clang-format
!.vscode/
!.cgi-bin/
!docs/
!tests/
!/ngnix/**/**/*
!webserv.conf
!webserv_default.conf
!tests/
Expand All @@ -46,7 +48,8 @@
/secretus/
/a.out
**/*.o
largefile # so we don't pull and push 100mb file
# so we don't pull and push 100mb file
largefile
testers/myenv/
testers/testsvenv/
tests/my_venv/
Expand Down
33 changes: 33 additions & 0 deletions conf/eval.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
server {
listen 127.0.0.1:8080;
server_name localhost;
allow_methods GET POST DELETE;
autoindex on;
root /var/;
error_page 404 html/404_salad.html;
cgi_ext .cgi;
client_max_body_size 1000;
location /google {
return http://google.com;
}
location /cgi-bin/ {
cgi_ext .cgi .py;
autoindex off;
}
}

server {
listen 8081;
server_name www.example.com;
allow_methods GET DELETE;
autoindex off;
root var/;
}

server {
listen 8082;
server_name www.php_site.com;
allow_methods GET POST DELETE;
autoindex off;
root var/;
}
File renamed without changes.
File renamed without changes.
File renamed without changes.
24 changes: 22 additions & 2 deletions webserv_default.conf → conf/webserv_default.conf
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
server {
listen 8080;
server_name localho:8080 localhost:8080 www.localhost:8080;
server_name www.test.com;
allow_methods GET POST DELETE;
autoindex off;
autoindex on;
root /var/;
error_page 404 404.html;
cgi_ext .cgi;
Expand All @@ -21,7 +21,27 @@ server {
server {
listen 8080;
server_name www.example.com;
allow_methods GET POST;
autoindex on;
root var/;
location / {
index index.html;
allow_methods GET POST;
upload_path upload/;
}
}

server {
listen 8080;
server_name www.php_site.com;
allow_methods GET POST DELETE;
autoindex off;
root var/;
}

server {
listen 8080;
server_name www.php_site;
allow_methods GET POST DELETE;
root var/;
}
95 changes: 95 additions & 0 deletions docs/HTTP_codes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
## 400 Bad Request
### How to trigger?
Send invalid HTTP request

## 401 Unauthorized
_not supported_

## 402 Payment Required
_not supported_

## 403 Forbidden
### How to trigger?
Access file without permissions (TODO: @Leo)

## 404 Not Found
### How to trigger?
Access unexisting page

## 405 Method Not Allowed
### How to trigger?
Any request method besides GET, POST, DELETE

## 406 Not Acceptable
_not supported_

## 407 Proxy Authentication Required
_not supported_

## 408 Request Timeout
### How to trigger?
(TODO: @Stefano)

## 409 Conflict
_not supported_

## 410 Gone
_not supported_

## 411 Length Required
### How to trigger?
Send POST request without Content-Length header

## 412 Precondition Failed
_not supported_

## 413 Payload Too Large
### How to trigger?
Send POST request bigger than client_max_body_size

## 414 URI Too Long
### How to trigger?
Send request with headers > 8KB

## 415 Unsupported Media Type
Send request to CGI that is not in cgi_ext directive

## 416 Range Not Satisfiable
_not supported_

## 417 Expectation Failed
_not supported_

## 418 I'm a teapot
_not supported_

## 421 Misdirected Request
_not supported_

## 422 Unprocessable Content (WebDAV)
_not supported_

## 423 Locked (WebDAV)
_not supported_

## 424 Failed Dependency (WebDAV)
_not supported_

## 425 Too Early Experimental
_not supported_

## 426 Upgrade Required
TODO (@Someone)

## 428 Precondition Required
_not supported_

## 429 Too Many Requests
TODO (@Stefano maybe?)

## 431 Request Header Fields Too Large
### How to trigger?
Send request with headers > 8KB

## 451 Unavailable For Legal Reasons
_not supported_
42 changes: 42 additions & 0 deletions html/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Welcome to Our Web Service</title>
</head>
<body>
<header>
<div class="container">
<h1>Welcome to Our Web Service</h1>
</div>
</header>
<nav>
<div class="container">
<a href="/development_site/cgi-bin/hello_py.cgi">Development Site</a>
<a href="/perl_site/index.html">Perl Site</a>
<a href="/php_site/index.html">PHP Site</a>
<a href="/www.python_site.com/index.html">Python Site</a>
</div>
</nav>
<div class="container">
<article>
<h2>About This Server</h2>
<p>Welcome to our multi-faceted web server. Here, you can find a variety of web applications and sites ranging from development tools to language-specific sites. Whether you're here to explore our Perl, PHP, or Python projects, or to delve into our development tools, there's something for everyone.</p>
<p>Please use the navigation above to explore our sites.</p>
</article>
</div>
<form action="http://localhost:8080/" method="post" enctype="multipart/form-data">
<label for="file">Choose a file:</label>
<input type="file" id="file" name="file">
<br>
<input type="submit" value="Upload">
</form>
<h2>Upload Multiple Files</h2>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="files[]" multiple>
<br>
<input type="submit" value="Upload Files">
</form>
</body>
</html>
2 changes: 1 addition & 1 deletion include/webserv.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@



#define CONFIG_FILE_DEFAULT_PATH "./webserv_default.conf"
#define CONFIG_FILE_DEFAULT_PATH "./conf/webserv_default.conf"
#define RED "\033[1;31m"
#define GREEN "\033[1;32m"
#define YELLOW "\033[1;33m"
Expand Down
20 changes: 20 additions & 0 deletions multiIPv4+IPv6.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
server {
listen 0.0.0.0:8081;
listen [::]:8081;
server_name www.development_site;
root /var/www/html;
}

server {
listen 127.0.0.1:8080;
listen [::1]:8080;
server_name www.saladbook;
root /var/www/html;
}

server {
listen 127.0.0.1:8082;
listen [::1]:8082;
server_name www.python_site.com;
root /var/www/html;
}
17 changes: 17 additions & 0 deletions multiIPv4.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
server {
listen 0.0.0.0:8081;
server_name www.development_site;
root /var/www/html;
}

server {
listen 127.0.0.1:8080;
server_name www.saladbook;
root /var/www/html;
}

server {
listen 127.0.0.1:8082;
server_name www.python_site.com;
root /var/www/html;
}
17 changes: 17 additions & 0 deletions multiIPv6.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
server {
listen [::]:8081;
server_name www.development_site;
root /var/www/html;
}

server {
listen [::1]:8080;
server_name www.saladbook;
root /var/www/html;
}

server {
listen [::1]:8082;
server_name www.python_site.com;
root /var/www/html;
}
17 changes: 17 additions & 0 deletions multi_mixed.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
server {
listen 0.0.0.0:8081;
server_name www.development_site;
root /var/www/html;
}

server {
listen [::1]:8080;
server_name www.saladbook;
root /var/www/html;
}

server {
listen [::1]:8082;
server_name www.python_site.com;
root /var/www/html;
}
Binary file added ngnix/.DS_Store
Binary file not shown.
28 changes: 28 additions & 0 deletions ngnix/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Use a base image
FROM ubuntu:latest

# Install dependencies
RUN apt-get update && \
apt-get install -y build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev

# Copy the Nginx source code from your repository to the image
COPY nginx-1.24.0 /usr/src/nginx-1.24.0

# Compile Nginx
WORKDIR /usr/src/nginx-1.24.0
RUN ./configure --without-http_gzip_module && \
make && \
make install

# Set the PATH
ENV PATH="/usr/local/nginx/sbin:$PATH"

# Forward request logs to Docker log collector
RUN ln -sf /dev/stdout /usr/local/nginx/logs/access.log \
&& ln -sf /dev/stderr /usr/local/nginx/logs/error.log

# Expose port 80
EXPOSE 80

# Start Nginx in the foreground
CMD ["nginx", "-g", "daemon off;"]
Loading

0 comments on commit 70755ca

Please sign in to comment.