From 0a177b6d91d5e7114e88caf2eb322f523eb95946 Mon Sep 17 00:00:00 2001 From: Nate Choe Date: Mon, 11 Apr 2022 01:56:49 -0500 Subject: [PATCH] Added docker-compose file --- Dockerfile | 2 +- docker-compose.yml | 9 ++++++++ example/sitefile | 20 ------------------ {example => site}/Makefile | 0 {example => site}/README | 3 +++ {example => site}/domain.crt | 0 {example => site}/domain.key | 0 {example => site}/library.c | 0 {example => site}/run.sh | 0 {example => site}/site/alldomains.html | 0 {example => site}/site/blog/README | 0 .../site/blog/blog/2022-1-25.html | 0 {example => site}/site/easteregg.html | 0 {example => site}/site/egg.png | Bin {example => site}/site/hello.html | 0 {example => site}/site/index.html | 0 site/sitefile | 20 ++++++++++++++++-- src/main.c | 3 +-- src/setup.c | 4 ++-- 19 files changed, 34 insertions(+), 27 deletions(-) create mode 100644 docker-compose.yml delete mode 100644 example/sitefile rename {example => site}/Makefile (100%) rename {example => site}/README (59%) rename {example => site}/domain.crt (100%) rename {example => site}/domain.key (100%) rename {example => site}/library.c (100%) rename {example => site}/run.sh (100%) rename {example => site}/site/alldomains.html (100%) rename {example => site}/site/blog/README (100%) rename {example => site}/site/blog/blog/2022-1-25.html (100%) rename {example => site}/site/easteregg.html (100%) rename {example => site}/site/egg.png (100%) rename {example => site}/site/hello.html (100%) rename {example => site}/site/index.html (100%) diff --git a/Dockerfile b/Dockerfile index 839869e..1d273bf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,6 +7,6 @@ RUN make FROM debian:stable-slim AS run RUN apt-get update -y && apt-get upgrade -y && apt-get install -y libgnutls28-dev libgnutls30 COPY --from=build /swebs/build/swebs /usr/sbin/swebs -COPY ./site /site +RUN useradd -M swebs ENTRYPOINT [ "swebs", "-s", "/site/sitefile" ] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..95450f0 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,9 @@ +version: "3" +services: + swebs: + image: natechoe/swebs + ports: + - "8000:8000" + volumes: + - ./site/:/site/ + working_dir: "/site/" diff --git a/example/sitefile b/example/sitefile deleted file mode 100644 index d8d93b2..0000000 --- a/example/sitefile +++ /dev/null @@ -1,20 +0,0 @@ -define port 8000 - -#define transport TLS -define key domain.key -define cert domain.crt -define timeout 2000 -define library ./library.so - -set host localhost:8000 -read / site/index.html -read /hello site/hello.html -throw /blog/forbidden 403 -read /blog/.* site/blog/ -#/blog/2021-1-25.html turns into site/blog//blog/2021-1-25.html -linked /library -set host 127.0.0.1:8000 -read / site/easteregg.html -read /egg.png site/egg.png -set host .* -read /alldomains site/alldomains.html diff --git a/example/Makefile b/site/Makefile similarity index 100% rename from example/Makefile rename to site/Makefile diff --git a/example/README b/site/README similarity index 59% rename from example/README rename to site/README index 13a54f5..1b2e2c6 100644 --- a/example/README +++ b/site/README @@ -1,2 +1,5 @@ This is a blog site. Ideally you wouldn't use any relative path names, but for portability reasons I'm assuming that swebs is being run in this directory. + +Relative path names do work with docker, but relative path names scare me, and +they should scare you too. diff --git a/example/domain.crt b/site/domain.crt similarity index 100% rename from example/domain.crt rename to site/domain.crt diff --git a/example/domain.key b/site/domain.key similarity index 100% rename from example/domain.key rename to site/domain.key diff --git a/example/library.c b/site/library.c similarity index 100% rename from example/library.c rename to site/library.c diff --git a/example/run.sh b/site/run.sh similarity index 100% rename from example/run.sh rename to site/run.sh diff --git a/example/site/alldomains.html b/site/site/alldomains.html similarity index 100% rename from example/site/alldomains.html rename to site/site/alldomains.html diff --git a/example/site/blog/README b/site/site/blog/README similarity index 100% rename from example/site/blog/README rename to site/site/blog/README diff --git a/example/site/blog/blog/2022-1-25.html b/site/site/blog/blog/2022-1-25.html similarity index 100% rename from example/site/blog/blog/2022-1-25.html rename to site/site/blog/blog/2022-1-25.html diff --git a/example/site/easteregg.html b/site/site/easteregg.html similarity index 100% rename from example/site/easteregg.html rename to site/site/easteregg.html diff --git a/example/site/egg.png b/site/site/egg.png similarity index 100% rename from example/site/egg.png rename to site/site/egg.png diff --git a/example/site/hello.html b/site/site/hello.html similarity index 100% rename from example/site/hello.html rename to site/site/hello.html diff --git a/example/site/index.html b/site/site/index.html similarity index 100% rename from example/site/index.html rename to site/site/index.html diff --git a/site/sitefile b/site/sitefile index 7f67ef1..d8d93b2 100644 --- a/site/sitefile +++ b/site/sitefile @@ -1,4 +1,20 @@ -define transport TCP define port 8000 -read .* /site/ +#define transport TLS +define key domain.key +define cert domain.crt +define timeout 2000 +define library ./library.so + +set host localhost:8000 +read / site/index.html +read /hello site/hello.html +throw /blog/forbidden 403 +read /blog/.* site/blog/ +#/blog/2021-1-25.html turns into site/blog//blog/2021-1-25.html +linked /library +set host 127.0.0.1:8000 +read / site/easteregg.html +read /egg.png site/egg.png +set host .* +read /alldomains site/alldomains.html diff --git a/src/main.c b/src/main.c index 2b1e500..6ad7699 100644 --- a/src/main.c +++ b/src/main.c @@ -174,8 +174,7 @@ int main(int argc, char **argv) { int fd; int lowestProc; - fd = accept(listener->fd, (struct sockaddr *) &listener->addr, - &listener->addrlen); + fd = acceptConnection(listener); if (fd < 0) { if (errno == ENOTSOCK || errno == EOPNOTSUPP || errno == EINVAL) { diff --git a/src/setup.c b/src/setup.c index 76a9daf..062529a 100644 --- a/src/setup.c +++ b/src/setup.c @@ -134,13 +134,13 @@ NULL } *site = parseSitefile(sitefile); - if (site == NULL) { + if (*site == NULL) { fprintf(stderr, "Invalid sitefile %s\n", sitefile); exit(EXIT_FAILURE); } *listener = createListener((*site)->port, backlog); - if (listener == NULL) { + if (*listener == NULL) { fprintf(stderr, "Failed to create socket\n"); exit(EXIT_FAILURE); }