aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Del Campo Romero <xavi.dcr@tutanota.com>2023-10-10 23:21:35 +0200
committerXavier Del Campo Romero <xavi.dcr@tutanota.com>2023-10-11 00:07:13 +0200
commit0222b75e8554796548e079aa3393c512ae30ac24 (patch)
tree5a154258ae5c1434a211ee67537e46ef64058437
parent832e198f8c77970b5b923eb18201ba83d9c72b80 (diff)
Rename project from slweb to libwebv0.1.0-rc3
It was found out there was another project of the same name around (https://git.sr.ht/~strahinja/slweb/), also related to website generation. In order to avoid confusion, a new name has been chosen for this project. Surprisingly, libweb was not in use by any distributions (according to https://repology.org and AUR index), and it should reflect well the intention behind this project i.e., being a library to build web-related stuff.
-rw-r--r--CMakeLists.txt12
-rw-r--r--Makefile10
-rw-r--r--README.md50
-rw-r--r--doc/man3/handler_add.310
-rw-r--r--doc/man3/handler_alloc.314
-rw-r--r--doc/man3/handler_free.36
-rw-r--r--doc/man3/handler_listen.38
-rw-r--r--doc/man3/html_node_add_attr.38
-rw-r--r--doc/man3/html_node_add_child.310
-rw-r--r--doc/man3/html_node_add_sibling.36
-rw-r--r--doc/man3/html_node_alloc.38
-rw-r--r--doc/man3/html_node_free.36
-rw-r--r--doc/man3/html_node_set_value.38
-rw-r--r--doc/man3/html_node_set_value_unescaped.38
-rw-r--r--doc/man3/html_serialize.36
-rw-r--r--doc/man3/http_alloc.316
-rw-r--r--doc/man3/http_cookie_create.38
-rw-r--r--doc/man3/http_encode_url.36
-rw-r--r--doc/man3/http_free.36
-rw-r--r--doc/man3/http_response_add_header.36
-rw-r--r--doc/man3/http_update.38
-rw-r--r--doc/man7/Makefile6
-rw-r--r--doc/man7/libweb_handler.7 (renamed from doc/man7/slweb_handler.7)30
-rw-r--r--doc/man7/libweb_html.7 (renamed from doc/man7/slweb_html.7)18
-rw-r--r--doc/man7/libweb_http.7 (renamed from doc/man7/slweb_http.7)52
-rw-r--r--examples/hello/CMakeLists.txt2
-rw-r--r--examples/hello/Makefile10
-rw-r--r--examples/hello/README.md4
-rw-r--r--examples/hello/main.c8
-rw-r--r--examples/html/CMakeLists.txt2
-rw-r--r--examples/html/Makefile10
-rw-r--r--examples/html/README.md2
-rw-r--r--examples/html/main.c4
-rw-r--r--handler.c8
-rw-r--r--html.c2
-rw-r--r--http.c2
-rw-r--r--include/libweb/handler.h (renamed from include/slweb/handler.h)2
-rw-r--r--include/libweb/html.h (renamed from include/slweb/html.h)0
-rw-r--r--include/libweb/http.h (renamed from include/slweb/http.h)0
-rw-r--r--include/libweb/server.h (renamed from include/slweb/server.h)0
-rw-r--r--include/libweb/wildcard_cmp.h (renamed from include/slweb/wildcard_cmp.h)0
-rw-r--r--libweb.pc (renamed from slweb.pc)6
-rw-r--r--server.c2
-rw-r--r--wildcard_cmp.c2
44 files changed, 196 insertions, 196 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 41d2c8c..1a8bf44 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.13.5)
option(BUILD_EXAMPLES "Build examples" ON)
-project(slweb C)
+project(web C)
add_library(${PROJECT_NAME}
handler.c
html.c
@@ -11,12 +11,12 @@ add_subdirectory(dynstr)
target_include_directories(${PROJECT_NAME} PUBLIC include)
target_link_libraries(${PROJECT_NAME} PUBLIC dynstr)
install(TARGETS ${PROJECT_NAME})
-install(DIRECTORY include/slweb TYPE INCLUDE)
-file(READ ${CMAKE_CURRENT_LIST_DIR}/slweb.pc slweb_pc)
-string(REPLACE /usr/local ${CMAKE_INSTALL_PREFIX} slweb_repl_pc ${slweb_pc})
-file(WRITE ${CMAKE_BINARY_DIR}/slweb.pc ${slweb_repl_pc})
+install(DIRECTORY include/libweb TYPE INCLUDE)
+file(READ ${CMAKE_CURRENT_LIST_DIR}/libweb.pc libweb_pc)
+string(REPLACE /usr/local ${CMAKE_INSTALL_PREFIX} libweb_repl_pc ${libweb_pc})
+file(WRITE ${CMAKE_BINARY_DIR}/libweb.pc ${libweb_repl_pc})
include(GNUInstallDirs)
-install(FILES ${CMAKE_BINARY_DIR}/slweb.pc
+install(FILES ${CMAKE_BINARY_DIR}/libweb.pc
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
add_subdirectory(doc)
diff --git a/Makefile b/Makefile
index 246efdf..ceb27f6 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
.POSIX:
-PROJECT = libslweb.a
+PROJECT = libweb.a
PREFIX = /usr/local
DST = $(PREFIX)/lib
PC_DST = $(DST)/pkgconfig
@@ -17,10 +17,10 @@ OBJECTS = \
all: $(PROJECT)
-install: all $(PC_DST)/slweb.pc
+install: all $(PC_DST)/libweb.pc
mkdir -p $(PREFIX)/include
- cp -R include/slweb $(PREFIX)/include
- chmod 0644 $(PREFIX)/include/slweb/*.h
+ cp -R include/libweb $(PREFIX)/include
+ chmod 0644 $(PREFIX)/include/libweb/*.h
mkdir -p $(DST)
cp $(PROJECT) $(DST)
chmod 0755 $(DST)/$(PROJECT)
@@ -38,7 +38,7 @@ examples: FORCE
$(PROJECT): $(OBJECTS)
$(AR) $(ARFLAGS) $@ $(OBJECTS)
-$(PC_DST)/slweb.pc: slweb.pc
+$(PC_DST)/libweb.pc: libweb.pc
mkdir -p $(PC_DST)
sed -e 's,/usr/local,$(PREFIX),' $< > $@
chmod 0644 $@
diff --git a/README.md b/README.md
index b608629..7fba559 100644
--- a/README.md
+++ b/README.md
@@ -1,11 +1,11 @@
-# slweb, a simple and lightweight web framework
+# libweb, a simple and lightweight web framework
-`slweb` is a simple and lightweight implementation of a web server, written in
+`libweb` is a simple and lightweight implementation of a web server, written in
C99 plus POSIX.1-2008 extensions, that can be integrated into applications.
## Disclaimer
-Intentionally, `slweb` does not share some of the philosophical views from the
+Intentionally, `libweb` does not share some of the philosophical views from the
[suckless project](https://suckless.org). However, it still strives towards
portability, minimalism, simplicity and efficiency.
@@ -22,18 +22,18 @@ the operation (see example below).
- Supports [`multiform/form-data`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST)
, which makes it useful to transfer large amounts of data, such as
binary files.
-- [A library](include/slweb/html.h) to write HTML programmatically.
+- [A library](include/libweb/html.h) to write HTML programmatically.
### TLS
-In order to maintain simplicity and reduce the risk for security bugs, `slweb`
+In order to maintain simplicity and reduce the risk for security bugs, `libweb`
does **not** implement TLS support. Instead, this should be provided by a
reverse proxy, such as [`caddy`](https://caddyserver.com/).
### Root permissions
-`slweb` does not require root permissions. So, in order to avoid the
-risk for security bugs, **please do not run `slweb` as `root`**.
+`libweb` does not require root permissions. So, in order to avoid the
+risk for security bugs, **please do not run `libweb` as `root`**.
## Requirements
@@ -59,13 +59,13 @@ sudo apt install cmake
## How to use
### Build
-Two build environments are provided for `slweb` - feel free to choose any of
+Two build environments are provided for `libweb` - feel free to choose any of
them:
- A mostly POSIX-compliant [`Makefile`](Makefile).
- A [`CMakeLists.txt`](CMakeLists.txt).
-`slweb` can be built using the standard build process:
+`libweb` can be built using the standard build process:
#### Make
@@ -73,21 +73,21 @@ them:
$ make
```
-This would generate a static library, namely `libslweb.a`, on the project
+This would generate a static library, namely `libweb.a`, on the project
top-level directory. Applications can then call the top-level `Makefile` by
-the use of recursive `make`. For example, assuming `slweb` is contained on a
+the use of recursive `make`. For example, assuming `libweb` is contained on a
subdirectory:
```make
-slweb/libslweb.a:
- +cd slweb && $(MAKE)
+libweb/libweb.a:
+ +cd libweb && $(MAKE)
```
-Additionally, `slweb` can be installed using the `install` target. A
+Additionally, `libweb` can be installed using the `install` target. A
custom prefix can be assigned via the `PREFIX` variable:
```sh
-$ make PREFIX=$HOME/slweb-prefix install
+$ make PREFIX=$HOME/libweb-prefix install
```
By default, `PREFIX` is assigned to `/usr/local`.
@@ -101,28 +101,28 @@ $ cmake ..
$ cmake --build .
```
-A CMake target, also called `slweb`, is created. This makes it possible
-to integrate `slweb` into CMake projects via `add_subdirectory` and
+A CMake target, also called `libweb`, is created. This makes it possible
+to integrate `libweb` into CMake projects via `add_subdirectory` and
`target_link_libraries`. For example:
```cmake
project(example)
add_executable(${PROJECT_NAME} main.c)
-add_subdirectory(slweb)
-target_link_libraries(${PROJECT_NAME} PRIVATE slweb)
+add_subdirectory(libweb)
+target_link_libraries(${PROJECT_NAME} PRIVATE libweb)
```
-Additionally, `slweb` can be installed using the standard procedure
+Additionally, `libweb` can be installed using the standard procedure
in CMake. As usual, a custom prefix can be assigned via the
`CMAKE_INSTALL_PREFIX` variable:
```sh
-$ cmake --install build/ -DCMAKE_INSTALL_PREFIX=$HOME/slweb-prefix
+$ cmake --install build/ -DCMAKE_INSTALL_PREFIX=$HOME/libweb-prefix
```
### Examples
-[A directory](examples) with examples shows how `slweb` can be used by
+[A directory](examples) with examples shows how `libweb` can be used by
applications. These can be built from the top-level directory with:
```sh
@@ -141,7 +141,7 @@ $ cmake --build .
## Why this project?
-Originally, `slweb` was part of the
+Originally, `libweb` was part of the
[`slcl`](https://gitea.privatedns.org/xavi92/slcl) project, a lightweight
cloud solution also written in C99 plus POSIX extensions. However, there
always was a clear separation between application logic and the underlying
@@ -170,14 +170,14 @@ interface called
simple as possible for administrators.
- The [`onion`](https://github.com/davidmoreno/onion) project, which
does follow the HTTP library concept, was initially considered for
-`slcl`, but has a larger scope than `slweb`, and again simplicity was
+`slcl`, but has a larger scope than `libweb`, and again simplicity was
essential for `slcl`.
- And, after all, it was a good excuse to learn about HTTP/1.1.
## License
```
-slweb, a simple and lightweight web framework.
+libweb, a simple and lightweight web framework.
Copyright (C) 2023 Xavier Del Campo Romero
This program is free software: you can redistribute it and/or modify
diff --git a/doc/man3/handler_add.3 b/doc/man3/handler_add.3
index 4c93f7a..2ee404b 100644
--- a/doc/man3/handler_add.3
+++ b/doc/man3/handler_add.3
@@ -1,4 +1,4 @@
-.TH HANDLER_ADD 3 2023-09-13 0.1.0 "slweb Library Reference"
+.TH HANDLER_ADD 3 2023-09-13 0.1.0 "libweb Library Reference"
.SH NAME
handler_add \- add an endpoint to a web server handler object
@@ -6,7 +6,7 @@ handler_add \- add an endpoint to a web server handler object
.SH SYNOPSIS
.LP
.nf
-#include <slweb/handler.h>
+#include <libweb/handler.h>
.P
int handler_add(struct handler *\fIh\fP, const char *\fIurl\fP, enum http_op \fIop\fP, handler_fn \fIf\fP, void *\fIuser\fP);
.fi
@@ -40,13 +40,13 @@ for an exhaustive list of supported operations.
.I f
is a function pointer that shall be executed by
-.I slweb
+.I libweb
if an incoming request matches the resource and operation defined by
.I url
and
.IR op ,
respectively. See
-.IR slweb_handler (7)
+.IR libweb_handler (7)
for the definition for
.IR handler_fn .
@@ -77,7 +77,7 @@ for a list of possible errors.
.BR handler_alloc (3),
.BR handler_free (3),
.BR handler_listen (3),
-.BR slweb_handler (7).
+.BR libweb_handler (7).
.SH COPYRIGHT
Copyright (C) 2023 Xavier Del Campo Romero.
diff --git a/doc/man3/handler_alloc.3 b/doc/man3/handler_alloc.3
index e71b569..3b602dc 100644
--- a/doc/man3/handler_alloc.3
+++ b/doc/man3/handler_alloc.3
@@ -1,4 +1,4 @@
-.TH HANDLER_ALLOC 3 2023-09-13 0.1.0 "slweb Library Reference"
+.TH HANDLER_ALLOC 3 2023-09-13 0.1.0 "libweb Library Reference"
.SH NAME
handler_alloc \- allocate a web server handler object
@@ -6,7 +6,7 @@ handler_alloc \- allocate a web server handler object
.SH SYNOPSIS
.LP
.nf
-#include <slweb/handler.h>
+#include <libweb/handler.h>
.P
struct handler *handler_alloc(const struct handler_cfg *\fIcfg\fP);
.fi
@@ -17,17 +17,17 @@ The
function allocates a
.I "struct handler"
object, containing the required data by
-.I slweb
+.I libweb
to handle a web server. This object is meant to be consumed by
other functions from
-.IR slweb_handler (7).
+.IR libweb_handler (7).
.I cfg
defines the initial configuration, whose structure is defined by
-.IR slweb_handler (7).
+.IR libweb_handler (7).
.I "struct handler"
is an opaque object internal to
-.I slweb
+.I libweb
and therefore is not accessible to callers.
.SH RETURN VALUE
@@ -48,7 +48,7 @@ for a list of possible errors.
.BR handler_free (3),
.BR handler_add (3),
.BR handler_listen (3),
-.BR slweb_handler (7).
+.BR libweb_handler (7).
.SH COPYRIGHT
Copyright (C) 2023 Xavier Del Campo Romero.
diff --git a/doc/man3/handler_free.3 b/doc/man3/handler_free.3
index 1a89fa9..9a46b23 100644
--- a/doc/man3/handler_free.3
+++ b/doc/man3/handler_free.3
@@ -1,4 +1,4 @@
-.TH HANDLER_FREE 3 2023-09-14 0.1.0 "slweb Library Reference"
+.TH HANDLER_FREE 3 2023-09-14 0.1.0 "libweb Library Reference"
.SH NAME
handler_free \- free a web server handler object
@@ -6,7 +6,7 @@ handler_free \- free a web server handler object
.SH SYNOPSIS
.LP
.nf
-#include <slweb/handler.h>
+#include <libweb/handler.h>
.P
void handler_free(struct handler *\fIh\fP);
.fi
@@ -29,7 +29,7 @@ No errors are defined.
.SH SEE ALSO
.BR handler_alloc (3),
-.BR slweb_handler (7).
+.BR libweb_handler (7).
.SH COPYRIGHT
Copyright (C) 2023 Xavier Del Campo Romero.
diff --git a/doc/man3/handler_listen.3 b/doc/man3/handler_listen.3
index cc2cfbb..ce001c7 100644
--- a/doc/man3/handler_listen.3
+++ b/doc/man3/handler_listen.3
@@ -1,4 +1,4 @@
-.TH HANDLER_LISTEN 3 2023-09-14 0.1.0 "slweb Library Reference"
+.TH HANDLER_LISTEN 3 2023-09-14 0.1.0 "libweb Library Reference"
.SH NAME
handler_listen \- listen to and handle incoming connections on a web
@@ -7,7 +7,7 @@ server
.SH SYNOPSIS
.LP
.nf
-#include <slweb/handler.h>
+#include <libweb/handler.h>
.P
int handler_listen(struct handler *\fIh\fP, unsigned short \fIport\fP);
.fi
@@ -46,7 +46,7 @@ No errors are defined.
.SH FUTURE DIRECTIONS
When no configured endpoint matches the incoming request,
-.I slweb
+.I libweb
shall respond with a
.B 404 Not Found
HTTP status code with no payload. Since some library users might want
@@ -61,7 +61,7 @@ similarly to its member
.BR handler_alloc (3),
.BR handler_free (3),
.BR handler_add (3),
-.BR slweb_handler (7),
+.BR libweb_handler (7),
.BR signal (7).
.SH COPYRIGHT
diff --git a/doc/man3/html_node_add_attr.3 b/doc/man3/html_node_add_attr.3
index d6d3bf0..361a2a7 100644
--- a/doc/man3/html_node_add_attr.3
+++ b/doc/man3/html_node_add_attr.3
@@ -1,4 +1,4 @@
-.TH HTML_NODE_ADD_ATTR 3 2023-09-24 0.1.0 "slweb Library Reference"
+.TH HTML_NODE_ADD_ATTR 3 2023-09-24 0.1.0 "libweb Library Reference"
.SH NAME
html_node_add_attr \- add attribute to a HTML node
@@ -6,7 +6,7 @@ html_node_add_attr \- add attribute to a HTML node
.SH SYNOPSIS
.LP
.nf
-#include <slweb/html.h>
+#include <libweb/html.h>
.P
int html_node_add_attr(struct html_node *\fIn\fP, const char *\fIattr\fP, const char *\fIval\fP);
.fi
@@ -27,7 +27,7 @@ is a null-terminated string with the name of the attribute.
.I val
is a null-terminated string with the value for the attribute.
-.I slweb
+.I libweb
allocates copies of the null-terminated strings defined by
.I attr
and
@@ -66,7 +66,7 @@ No errors are defined.
.BR html_node_free (3),
.BR html_node_set_value (3),
.BR html_node_set_value_unescaped (3),
-.BR slweb_http (7).
+.BR libweb_http (7).
.SH COPYRIGHT
Copyright (C) 2023 Xavier Del Campo Romero.
diff --git a/doc/man3/html_node_add_child.3 b/doc/man3/html_node_add_child.3
index 360f968..964d328 100644
--- a/doc/man3/html_node_add_child.3
+++ b/doc/man3/html_node_add_child.3
@@ -1,4 +1,4 @@
-.TH HTML_NODE_ADD_CHILD 3 2023-09-25 0.1.0 "slweb Library Reference"
+.TH HTML_NODE_ADD_CHILD 3 2023-09-25 0.1.0 "libweb Library Reference"
.SH NAME
html_node_add_child \- add child to a HTML node
@@ -6,7 +6,7 @@ html_node_add_child \- add child to a HTML node
.SH SYNOPSIS
.LP
.nf
-#include <slweb/html.h>
+#include <libweb/html.h>
.P
struct html_node *html_node_add_child(struct html_node *\fIn\fP, const char *\fIelem\fP);
.fi
@@ -41,7 +41,7 @@ and one child node:
.in +4n
.EX
#include <dynstr.h>
-#include <slweb/html.h>
+#include <libweb/html.h>
#include <stdio.h>
#include <stdlib.h>
@@ -105,7 +105,7 @@ if
fails.
Internally,
-.I slweb
+.I libweb
calls
.IR html_node_add_sibling (3)
from a child node when a node already has one.
@@ -113,7 +113,7 @@ from a child node when a node already has one.
.SH SEE ALSO
.BR html_node_alloc (3),
.BR html_node_add_sibling (3),
-.BR slweb_http (7).
+.BR libweb_http (7).
.SH COPYRIGHT
Copyright (C) 2023 Xavier Del Campo Romero.
diff --git a/doc/man3/html_node_add_sibling.3 b/doc/man3/html_node_add_sibling.3
index 951242f..625f4dc 100644
--- a/doc/man3/html_node_add_sibling.3
+++ b/doc/man3/html_node_add_sibling.3
@@ -1,4 +1,4 @@
-.TH HTML_NODE_ADD_SIBLING 3 2023-09-25 0.1.0 "slweb Library Reference"
+.TH HTML_NODE_ADD_SIBLING 3 2023-09-25 0.1.0 "libweb Library Reference"
.SH NAME
html_node_add_sibling \- add sibling to a HTML node
@@ -6,7 +6,7 @@ html_node_add_sibling \- add sibling to a HTML node
.SH SYNOPSIS
.LP
.nf
-#include <slweb/html.h>
+#include <libweb/html.h>
.P
void html_node_add_sibling(struct html_node *\fIn\fP, struct html_node *\fIsibling\fP);
.fi
@@ -44,7 +44,7 @@ was still made public so as to cover possibly less common use cases.
.SH SEE ALSO
.BR html_node_alloc (3),
.BR html_node_add_child (3),
-.BR slweb_http (7).
+.BR libweb_http (7).
.SH COPYRIGHT
Copyright (C) 2023 Xavier Del Campo Romero.
diff --git a/doc/man3/html_node_alloc.3 b/doc/man3/html_node_alloc.3
index 9551bd3..260b0ee 100644
--- a/doc/man3/html_node_alloc.3
+++ b/doc/man3/html_node_alloc.3
@@ -1,4 +1,4 @@
-.TH HTML_NODE_ALLOC 3 2023-09-15 0.1.0 "slweb Library Reference"
+.TH HTML_NODE_ALLOC 3 2023-09-15 0.1.0 "libweb Library Reference"
.SH NAME
html_node_alloc \- allocate a HTML node
@@ -6,7 +6,7 @@ html_node_alloc \- allocate a HTML node
.SH SYNOPSIS
.LP
.nf
-#include <slweb/html.h>
+#include <libweb/html.h>
.P
struct html_node *html_node_alloc(const char *\fIelement\fP);
.fi
@@ -22,7 +22,7 @@ is the name of the HTML tag.
.I "struct html_node"
is an opaque object internal to
-.I slweb
+.I libweb
and therefore is not accessible to callers.
.SH RETURN VALUE
@@ -64,7 +64,7 @@ it via
.BR html_node_add_attr (3),
.BR html_node_add_child (3),
.BR html_node_add_sibling (3),
-.BR slweb_html (7).
+.BR libweb_html (7).
.SH COPYRIGHT
Copyright (C) 2023 Xavier Del Campo Romero.
diff --git a/doc/man3/html_node_free.3 b/doc/man3/html_node_free.3
index 6efc9ed..ddafb61 100644
--- a/doc/man3/html_node_free.3
+++ b/doc/man3/html_node_free.3
@@ -1,4 +1,4 @@
-.TH HTML_NODE_FREE 3 2023-09-16 0.1.0 "slweb Library Reference"
+.TH HTML_NODE_FREE 3 2023-09-16 0.1.0 "libweb Library Reference"
.SH NAME
html_node_free \- free a HTML node and its children
@@ -6,7 +6,7 @@ html_node_free \- free a HTML node and its children
.SH SYNOPSIS
.LP
.nf
-#include <slweb/html.h>
+#include <libweb/html.h>
.P
void html_node_free(struct html_node *\fIn\fP);
.fi
@@ -37,7 +37,7 @@ for a child node.
.SH SEE ALSO
.BR html_node_alloc (3),
-.BR slweb_html (7).
+.BR libweb_html (7).
.SH COPYRIGHT
Copyright (C) 2023 Xavier Del Campo Romero.
diff --git a/doc/man3/html_node_set_value.3 b/doc/man3/html_node_set_value.3
index bc6dc9c..e99cba6 100644
--- a/doc/man3/html_node_set_value.3
+++ b/doc/man3/html_node_set_value.3
@@ -1,4 +1,4 @@
-.TH HTML_NODE_SET_VALUE 3 2023-09-24 0.1.0 "slweb Library Reference"
+.TH HTML_NODE_SET_VALUE 3 2023-09-24 0.1.0 "libweb Library Reference"
.SH NAME
html_node_set_value \- set value to a HTML node
@@ -6,7 +6,7 @@ html_node_set_value \- set value to a HTML node
.SH SYNOPSIS
.LP
.nf
-#include <slweb/html.h>
+#include <libweb/html.h>
.P
int html_node_set_value(struct html_node *\fIn\fP, const char *\fIval\fP);
.fi
@@ -25,7 +25,7 @@ or
.I val
is a null-terminated string with the value to be assigned to the node.
-.I slweb
+.I libweb
allocates a copy of the null-terminated string defined by
.IR val .
@@ -69,7 +69,7 @@ No errors are defined.
.BR html_node_free (3),
.BR html_node_set_value_unescaped (3),
.BR html_node_add_attr (3),
-.BR slweb_http (7).
+.BR libweb_http (7).
.SH COPYRIGHT
Copyright (C) 2023 Xavier Del Campo Romero.
diff --git a/doc/man3/html_node_set_value_unescaped.3 b/doc/man3/html_node_set_value_unescaped.3
index 7c3a897..7f26aef 100644
--- a/doc/man3/html_node_set_value_unescaped.3
+++ b/doc/man3/html_node_set_value_unescaped.3
@@ -1,4 +1,4 @@
-.TH HTML_NODE_SET_VALUE_UNESCAPED 3 2023-09-24 0.1.0 "slweb Library Reference"
+.TH HTML_NODE_SET_VALUE_UNESCAPED 3 2023-09-24 0.1.0 "libweb Library Reference"
.SH NAME
html_node_set_value_unescaped \- set value to a HTML node
@@ -6,7 +6,7 @@ html_node_set_value_unescaped \- set value to a HTML node
.SH SYNOPSIS
.LP
.nf
-#include <slweb/html.h>
+#include <libweb/html.h>
.P
int html_node_set_value_unescaped(struct html_node *\fIn\fP, const char *\fIval\fP);
.fi
@@ -25,7 +25,7 @@ or
.I val
is a null-terminated string with the value to be assigned to the node.
-.I slweb
+.I libweb
allocates a copy of the null-terminated string defined by
.IR val .
@@ -70,7 +70,7 @@ No errors are defined.
.BR html_node_free (3),
.BR html_node_set_value (3),
.BR html_node_add_attr (3),
-.BR slweb_http (7).
+.BR libweb_http (7).
.SH COPYRIGHT
Copyright (C) 2023 Xavier Del Campo Romero.
diff --git a/doc/man3/html_serialize.3 b/doc/man3/html_serialize.3
index 59700f1..0e12c11 100644
--- a/doc/man3/html_serialize.3
+++ b/doc/man3/html_serialize.3
@@ -1,4 +1,4 @@
-.TH HTML_SERIALIZE 3 2023-09-24 0.1.0 "slweb Library Reference"
+.TH HTML_SERIALIZE 3 2023-09-24 0.1.0 "libweb Library Reference"
.SH NAME
html_serialize \- add attribute to a HTML node
@@ -6,7 +6,7 @@ html_serialize \- add attribute to a HTML node
.SH SYNOPSIS
.LP
.nf
-#include <slweb/html.h>
+#include <libweb/html.h>
.P
int html_serialize(const struct html_node *\fIn\fP, struct dynstr *\fId\fP);
.fi
@@ -41,7 +41,7 @@ No errors are defined.
.BR html_node_add_attr (3),
.BR html_node_set_value (3),
.BR html_node_set_value_unescaped (3),
-.BR slweb_http (7).
+.BR libweb_http (7).
.SH COPYRIGHT
Copyright (C) 2023 Xavier Del Campo Romero.
diff --git a/doc/man3/http_alloc.3 b/doc/man3/http_alloc.3
index 4b9e19b..a54046c 100644
--- a/doc/man3/http_alloc.3
+++ b/doc/man3/http_alloc.3
@@ -1,4 +1,4 @@
-.TH HTTP_ALLOC 3 2023-09-06 0.1.0 "slweb Library Reference"
+.TH HTTP_ALLOC 3 2023-09-06 0.1.0 "libweb Library Reference"
.SH NAME
http_alloc \- allocate a HTTP context object
@@ -6,7 +6,7 @@ http_alloc \- allocate a HTTP context object
.SH SYNOPSIS
.LP
.nf
-#include <slweb/http.h>
+#include <libweb/http.h>
.P
struct http *http_alloc(const struct http_cfg *\fIcfg\fP);
.fi
@@ -17,17 +17,17 @@ The
function allocates a
.I "struct http_ctx"
object, containing the required data by
-.I slweb
+.I libweb
to handle a HTTP connection. This object is meant to be consumed by
other functions from
-.IR slweb .
+.IR libweb .
.I cfg
defines the configuration for the HTTP context, whose structure is defined by
-.IR slweb_http (7).
+.IR libweb_http (7).
.I "struct http_ctx"
is an opaque object internal to
-.I slweb
+.I libweb
and therefore is not accessible to callers.
.SH RETURN VALUE
@@ -46,12 +46,12 @@ for a list of possible errors.
.SH NOTES
This function is designed for internal use by
-\fIslweb\fR.
+\fIlibweb\fR.
.SH SEE ALSO
.BR http_free (3),
.BR http_update (3),
-.BR slweb_http (7).
+.BR libweb_http (7).
.SH COPYRIGHT
Copyright (C) 2023 Xavier Del Campo Romero.
diff --git a/doc/man3/http_cookie_create.3 b/doc/man3/http_cookie_create.3
index 6587b24..2ad4d65 100644
--- a/doc/man3/http_cookie_create.3
+++ b/doc/man3/http_cookie_create.3
@@ -1,4 +1,4 @@
-.TH HTTP_COOKIE_CREATE 3 2023-09-07 0.1.0 "slweb Library Reference"
+.TH HTTP_COOKIE_CREATE 3 2023-09-07 0.1.0 "libweb Library Reference"
.SH NAME
http_cookie_create \- creates a HTTP/1.1 cookie
@@ -6,7 +6,7 @@ http_cookie_create \- creates a HTTP/1.1 cookie
.SH SYNOPSIS
.LP
.nf
-#include <slweb/http.h>
+#include <libweb/http.h>
.P
char *http_cookie_create(const char *\fIkey\fP, const char *\fIvalue\fP);
.fi
@@ -50,14 +50,14 @@ ExampleHeader=ExampleValue; HttpOnly; Expires Wed, 07 Sep 2023 00:00:00 GMT
.SH FUTURE DIRECTIONS
-.I slweb
+.I libweb
sets a 1-year expiration date for HTTP cookies due to arbitrary design
limitations. Future versions of this library shall allow a custom
expiration date as an additional parameter to
.IR http_cookie_create (3).
.SH SEE ALSO
-.BR slweb_http (7).
+.BR libweb_http (7).
.SH COPYRIGHT
Copyright (C) 2023 Xavier Del Campo Romero.
diff --git a/doc/man3/http_encode_url.3 b/doc/man3/http_encode_url.3
index 94bd7f8..406b2a6 100644
--- a/doc/man3/http_encode_url.3
+++ b/doc/man3/http_encode_url.3
@@ -1,4 +1,4 @@
-.TH HTTP_ENCODE_URL 3 2023-09-07 0.1.0 "slweb Library Reference"
+.TH HTTP_ENCODE_URL 3 2023-09-07 0.1.0 "libweb Library Reference"
.SH NAME
http_encode_url \- allocates a percent-encoded null-terminated string
@@ -6,7 +6,7 @@ http_encode_url \- allocates a percent-encoded null-terminated string
.SH SYNOPSIS
.LP
.nf
-#include <slweb/http.h>
+#include <libweb/http.h>
.P
char *http_encode_url(const char *\fIurl\fP);
.fi
@@ -27,7 +27,7 @@ No errors are defined.
.SH SEE ALSO
.BR http_decode_url (3),
-.BR slweb_http (7).
+.BR libweb_http (7).
.SH COPYRIGHT
Copyright (C) 2023 Xavier Del Campo Romero.
diff --git a/doc/man3/http_free.3 b/doc/man3/http_free.3
index 3b8b61d..a4f2079 100644
--- a/doc/man3/http_free.3
+++ b/doc/man3/http_free.3
@@ -1,4 +1,4 @@
-.TH HTTP_FREE 3 2023-09-06 0.1.0 "slweb Library Reference"
+.TH HTTP_FREE 3 2023-09-06 0.1.0 "libweb Library Reference"
.SH NAME
http_free \- free a HTTP context object
@@ -6,7 +6,7 @@ http_free \- free a HTTP context object
.SH SYNOPSIS
.LP
.nf
-#include <slweb/http.h>
+#include <libweb/http.h>
.P
void http_free(struct http_ctx *\fIh\fP);
.fi
@@ -30,7 +30,7 @@ No errors are defined.
.SH SEE ALSO
.BR http_alloc (3),
.BR http_update (3),
-.BR slweb_http (7).
+.BR libweb_http (7).
.SH COPYRIGHT
Copyright (C) 2023 Xavier Del Campo Romero.
diff --git a/doc/man3/http_response_add_header.3 b/doc/man3/http_response_add_header.3
index 4f033ea..4ce9132 100644
--- a/doc/man3/http_response_add_header.3
+++ b/doc/man3/http_response_add_header.3
@@ -1,4 +1,4 @@
-.TH HTTP_RESPONSE_ADD_HEADER 3 2023-09-07 0.1.0 "slweb Library Reference"
+.TH HTTP_RESPONSE_ADD_HEADER 3 2023-09-07 0.1.0 "libweb Library Reference"
.SH NAME
http_response_add_header \- adds a HTTP/1.1 header to a response
@@ -6,7 +6,7 @@ http_response_add_header \- adds a HTTP/1.1 header to a response
.SH SYNOPSIS
.LP
.nf
-#include <slweb/http.h>
+#include <libweb/http.h>
.P
int http_response_add_header(struct http_response *\fIr\fP, const char *\fIheader\fP, const char *\fIvalue\fP);
.fi
@@ -42,7 +42,7 @@ and
for a list of possible errors.
.SH SEE ALSO
-.BR slweb_http (7).
+.BR libweb_http (7).
.SH COPYRIGHT
Copyright (C) 2023 Xavier Del Campo Romero.
diff --git a/doc/man3/http_update.3 b/doc/man3/http_update.3
index 7f54608..c4537d9 100644
--- a/doc/man3/http_update.3
+++ b/doc/man3/http_update.3
@@ -1,4 +1,4 @@
-.TH HTTP_UPDATE 3 2023-09-06 0.1.0 "slweb Library Reference"
+.TH HTTP_UPDATE 3 2023-09-06 0.1.0 "libweb Library Reference"
.SH NAME
http_update \- updates a HTTP context object
@@ -6,7 +6,7 @@ http_update \- updates a HTTP context object
.SH SYNOPSIS
.LP
.nf
-#include <slweb/http.h>
+#include <libweb/http.h>
.P
int http_update(struct http_ctx *\fIh\fP, bool *\fIwrite\fP, bool *\fIclose\fP);
.fi
@@ -60,12 +60,12 @@ No errors are defined.
.SH NOTES
This function is designed for internal use by
-.IR slweb .
+.IR libweb .
.SH SEE ALSO
.BR http_free (3),
.BR http_update (3),
-.BR slweb_http (7).
+.BR libweb_http (7).
.SH COPYRIGHT
Copyright (C) 2023 Xavier Del Campo Romero.
diff --git a/doc/man7/Makefile b/doc/man7/Makefile
index 4945d1f..c4e1ca7 100644
--- a/doc/man7/Makefile
+++ b/doc/man7/Makefile
@@ -3,9 +3,9 @@
PREFIX = /usr/local
DST = $(PREFIX)/share/man/man7
OBJECTS = \
- $(DST)/slweb_handler.7 \
- $(DST)/slweb_html.7 \
- $(DST)/slweb_http.7
+ $(DST)/libweb_handler.7 \
+ $(DST)/libweb_html.7 \
+ $(DST)/libweb_http.7
all:
diff --git a/doc/man7/slweb_handler.7 b/doc/man7/libweb_handler.7
index 53fb156..5c910e0 100644
--- a/doc/man7/slweb_handler.7
+++ b/doc/man7/libweb_handler.7
@@ -1,36 +1,36 @@
-.TH SLWEB_HANDLER 7 2023-09-15 0.1.0 "slweb Library Reference"
+.TH LIBWEB_HANDLER 7 2023-09-15 0.1.0 "libweb Library Reference"
.SH NAME
-slweb_handler \- slweb high-level website configuration
+libweb_handler \- libweb high-level website configuration
.SH SYNOPSIS
.LP
.nf
-#include <slweb/handler.h>
+#include <libweb/handler.h>
.fi
.SH DESCRIPTION
This component provides abstractions that allow library users to
define the behaviour of a web server. Whereas
-.IR slweb_http (7)
+.IR libweb_http (7)
defines the HTTP/1.1 server implementation and provides a data type
(namely
.IR "struct http_ctx" )
to handle an incoming connection,
-.IR slweb_handler (7):
+.IR libweb_handler (7):
.IP \(bu 2
Defines the list of endpoints and supported operations.
.IP \(bu 2
Defines the port
-.I slweb
+.I libweb
must listen to.
.IP \(bu 2
Keeps track of all
.I struct http_ctx
objects.
-.IR slweb_handler (7)
+.IR libweb_handler (7)
provides the following functions:
.IP \(bu 2
@@ -83,7 +83,7 @@ are passed directly to the
object used to initialize a
.I struct http_ctx
object. See
-.IR slweb_http (7)
+.IR libweb_http (7)
for further reference about these members.
However, a
@@ -104,7 +104,7 @@ typedef int (*\fIhandler_fn\fP)(const struct http_payload *\fIp\fP, struct http_
.PP
Please read
-.IR slweb_http (7)
+.IR libweb_http (7)
for further refence on
.I "struct http_payload"
and
@@ -124,16 +124,16 @@ and
\fI/index.html\fP
as its endpoints. For the sake of simplicity, a static response body is
returned, instead of using
-.IR slweb_html (7)
+.IR libweb_html (7)
to generate HTML data. Please read
-.IR slweb_html (7)
+.IR libweb_html (7)
for further reference on how to generate dynamic content.
.PP
.in +4n
.EX
-#include <slweb/handler.h>
-#include <slweb/http.h>
+#include <libweb/handler.h>
+#include <libweb/http.h>
#include <stddef.h>
#include <stdlib.h>
@@ -142,7 +142,7 @@ static int hello(const struct http_payload *const pl,
{
static const char page[] =
{
- "<html><body><p>Hello from slweb!</p></body></html>"
+ "<html><body><p>Hello from libweb!</p></body></html>"
};
*r = (const struct http_response)
@@ -218,7 +218,7 @@ end:
.BR handler_alloc (3),
.BR handler_add (3),
.BR handler_free (3),
-.BR slweb_http (7).
+.BR libweb_http (7).
.SH COPYRIGHT
Copyright (C) 2023 Xavier Del Campo Romero.
diff --git a/doc/man7/slweb_html.7 b/doc/man7/libweb_html.7
index db8e224..c6f864a 100644
--- a/doc/man7/slweb_html.7
+++ b/doc/man7/libweb_html.7
@@ -1,12 +1,12 @@
-.TH SLWEB_HTML 7 2023-09-15 0.1.0 "slweb Library Reference"
+.TH LIBWEB_HTML 7 2023-09-15 0.1.0 "libweb Library Reference"
.SH NAME
-slweb_html \- slweb HTML serializer
+libweb_html \- libweb HTML serializer
.SH SYNOPSIS
.LP
.nf
-#include <slweb/html.h>
+#include <libweb/html.h>
.fi
.SH DESCRIPTION
@@ -14,7 +14,7 @@ This component allows library users to serialize HTML text from a tree
structure composed by one or more
.I struct html_node
objects.
-.IR slweb_html (7)
+.IR libweb_html (7)
provides the following functions:
.IP \(bu 2
@@ -94,13 +94,13 @@ shall free the memory used by the root node and all of its children.
.SH EXAMPLE
The example below is a minimal showcase of some of the features
provided by
-.IR slweb_html (7),
+.IR libweb_html (7),
which prints a minimal HTML file to standard output:
.PP
.in +4n
.EX
-#include <slweb/html.h>
+#include <libweb/html.h>
#include <dynstr.h>
#include <stdlib.h>
#include <stdio.h>
@@ -110,7 +110,7 @@ int main()
int ret = EXIT_FAILURE;
struct dynstr d;
struct html_node *const html = html_node_alloc("html"), *body;
- static const char text[] = "testing slweb";
+ static const char text[] = "testing libweb";
dynstr_init(&d);
@@ -152,7 +152,7 @@ This program should write the following data over standard output:
.in +4n
.EX
<html>
- <body>testing slweb</body>
+ <body>testing libweb</body>
</html>
.EE
.in
@@ -167,7 +167,7 @@ This program should write the following data over standard output:
.BR html_node_add_child (3),
.BR html_node_add_sibling (3),
.BR html_serialize (3),
-.BR slweb_html (7).
+.BR libweb_html (7).
.SH COPYRIGHT
Copyright (C) 2023 Xavier Del Campo Romero.
diff --git a/doc/man7/slweb_http.7 b/doc/man7/libweb_http.7
index 682c378..329a616 100644
--- a/doc/man7/slweb_http.7
+++ b/doc/man7/libweb_http.7
@@ -1,17 +1,17 @@
-.TH SLWEB_HTTP 7 2023-09-15 0.1.0 "slweb Library Reference"
+.TH LIBWEB_HTTP 7 2023-09-15 0.1.0 "libweb Library Reference"
.SH NAME
-slweb_http \- slweb HTTP connection handling and utilities
+libweb_http \- libweb HTTP connection handling and utilities
.SH SYNOPSIS
.LP
.nf
-#include <slweb/http.h>
+#include <libweb/http.h>
.fi
.SH DESCRIPTION
As one of its key features,
-\fIslweb\fR
+\fIlibweb\fR
provides a HTTP/1.1-compatible server implementation that can be
embedded into applications as a library. While not a complete HTTP/1.1
server implementation, the following features are supported:
@@ -42,7 +42,7 @@ The functions listed below are meant for library users:
.SS HTTP connection-related functions
The functions listed below are meant for internal use by
-.IR slweb :
+.IR libweb :
.IP \(bu 2
.IR http_alloc (3).
@@ -56,7 +56,7 @@ For example, a list of endpoints is required to define its behaviour,
and
.I struct http
objects must be stored somewhere as long as the connections are active.
-.IR slweb_handler (7)
+.IR libweb_handler (7)
is the component meant to provide the missing pieces that conform a
working web server.
@@ -127,7 +127,7 @@ On error, a negative integer is returned.
.I payload
is a function pointer called by
-.I slweb
+.I libweb
when a new HTTP request has been received.
.I p
is a read-only pointer to a
@@ -151,7 +151,7 @@ returned.
.I length
is a function pointer called by
-.I slweb
+.I libweb
when an incoming HTTP request from a client requires to store one or
more files on the server, encoded as
.IR multipart/form-data .
@@ -198,7 +198,7 @@ can be a null pointer.
.SS HTTP payload
When a client submits a request to the server,
-.I slweb
+.I libweb
prepares a high-level data structure, called
.IR "struct http_payload" ,
and passes it to the function pointer defined by
@@ -273,19 +273,19 @@ handles differently:
.IP \(bu 2
.IR application/x-www-form-urlencoded :
suggested for smaller payloads.
-.I slweb
+.I libweb
shall store the payload in memory, limiting its maximum size to
.BR "7999 octets" .
.IP \(bu 2
.IR multipart/form-data :
suggested for larger and/or binary payloads.
-.I slweb
+.I libweb
shall store each non-file name-value pair in memory, limiting the value
length to
.BR "8000 octets" .
On the other hand,
-.I slweb
+.I libweb
shall store each file into the temporary directory defined by
.I struct http_cfg
member
@@ -377,7 +377,7 @@ shall be a null pointer.
.SS HTTP responses
Some function pointers used by
-.I slweb
+.I libweb
require to initialize a
.I "struct http_response"
object that defines the response that must be sent to the client.
@@ -437,7 +437,7 @@ is a read-only opaque pointer to a buffer in memory, whose length is
defined by
.I n
(see definition below).
-.I slweb
+.I libweb
shall select
.I ro
as the output payload if both
@@ -452,7 +452,7 @@ is non-zero.
is an opaque pointer to a buffer in memory, whose length is defined by
.I n
(see definition below).
-.I slweb
+.I libweb
shall select
.I rw
as the output payload if both
@@ -471,7 +471,7 @@ is a
pointer opened for reading that defines the payload to be sent to the
client, whose length is defined by
.IR n .
-.I slweb
+.I libweb
shall select
.I f
as the output payload if
@@ -514,20 +514,20 @@ must be a null pointer.
.SS Transport Layer Security (TLS)
By design,
-.I slweb
+.I libweb
does
.BI not
implement TLS (Transport Layer Security). It is assumed this should
be provided by a reverse proxy instead, a kind of project that is
usually maintained by a larger community than
-.I slweb
+.I libweb
and audited for security vulnerabilities.
.SH NOTES
.SS Comparing against other HTTP server implementations
While it is well understood that other solutions provide fully-fledged
server implementations as standalone executables,
-.I slweb
+.I libweb
strives to be as small and easy to use as possible, intentionally
limiting its scope while covering a good range of use cases.
@@ -550,13 +550,13 @@ or
.BR -- .
This means it is not possible for
-.I slweb
+.I libweb
to determine the number of files or their lengths in a HTTP request
unless the whole request is read, which not might be possible for large
requests. Therefore, the
.B Content-Length
is the only rough estimation
-.I slweb
+.I libweb
can rely on, and therefore is the value passed to the
.I length
function pointer in
@@ -568,7 +568,7 @@ function pointer in
The handling of
.B 100-continue
requests is not done correctly:
-.I slweb
+.I libweb
calls the function pointed to by
.I "struct http_cfg"
member
@@ -581,7 +581,7 @@ headers are processed.
.SH FUTURE DIRECTIONS
.SS Limitations on the number of HTTP cookies
So far,
-.I slweb
+.I libweb
shall only append at most
.B one
HTTP cookie to a
@@ -599,12 +599,12 @@ object containing the number of HTTP cookies in the request.
.SS Handling application/x-www-form-urlencoded data
Due to historical reasons,
-.I slweb
+.I libweb
treated
.IR application/x-www-form-urlencoded -data
as a binary blob. While this was changed to a null-terminated string in
order to allow applications to avoid unnecessary memory allocations,
-.I slweb
+.I libweb
still does not decode the data, instead forcing applications to do so.
Future versions of this library shall replace
.I "struct http_post"
@@ -622,7 +622,7 @@ as a union that only holds one possible data type. While this might
look counterintuitive, this is because
.B POST
is the only HTTP/1.1 operation
-.I slweb
+.I libweb
supports that requires to store a payload. However, future versions of
this library might extend its support for other HTTP/1.1 operations
that could require to store a payload, while keeping the memory
diff --git a/examples/hello/CMakeLists.txt b/examples/hello/CMakeLists.txt
index c22ab33..7d14ac6 100644
--- a/examples/hello/CMakeLists.txt
+++ b/examples/hello/CMakeLists.txt
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.13)
project(hello C)
add_executable(hello main.c)
-target_link_libraries(${PROJECT_NAME} PRIVATE slweb dynstr)
+target_link_libraries(${PROJECT_NAME} PRIVATE web dynstr)
diff --git a/examples/hello/Makefile b/examples/hello/Makefile
index 217bccb..275fa5a 100644
--- a/examples/hello/Makefile
+++ b/examples/hello/Makefile
@@ -3,10 +3,10 @@
PROJECT = hello
DEPS = \
main.o
-SLWEB = ../../libslweb.a
+LIBWEB = ../../libweb.a
DYNSTR = ../../dynstr/libdynstr.a
CFLAGS = -I ../../include -I ../../dynstr/include
-SLWEB_FLAGS = -L ../../ -l slweb
+LIBWEB_FLAGS = -L ../../ -l libweb
DYNSTR_FLAGS = -L ../../dynstr -l dynstr
all: $(PROJECT)
@@ -16,10 +16,10 @@ clean:
FORCE:
-$(PROJECT): $(DEPS) $(SLWEB) $(DYNSTR)
- $(CC) $(LDFLAGS) $(DEPS) $(SLWEB_FLAGS) $(DYNSTR_FLAGS) -o $@
+$(PROJECT): $(DEPS) $(LIBWEB) $(DYNSTR)
+ $(CC) $(LDFLAGS) $(DEPS) $(LIBWEB_FLAGS) $(DYNSTR_FLAGS) -o $@
-$(SLWEB): FORCE
+$(LIBWEB): FORCE
+cd ../../ && $(MAKE)
$(DYNSTR): FORCE
diff --git a/examples/hello/README.md b/examples/hello/README.md
index 7c7cf74..24b747b 100644
--- a/examples/hello/README.md
+++ b/examples/hello/README.md
@@ -1,8 +1,8 @@
# "Hello world" example
-This example shows a minimal setup for an application using `slweb`. When
+This example shows a minimal setup for an application using `libweb`. When
executed, it starts a HTTP/1.1 server on port `8080` and returns an example
-website reading "Hello from slweb!" when either `/` or `/index.html` are
+website reading "Hello from libweb!" when either `/` or `/index.html` are
accessed by clients.
## How to build
diff --git a/examples/hello/main.c b/examples/hello/main.c
index d1a3206..59643ec 100644
--- a/examples/hello/main.c
+++ b/examples/hello/main.c
@@ -1,7 +1,7 @@
#include <dynstr.h>
-#include <slweb/handler.h>
-#include <slweb/html.h>
-#include <slweb/http.h>
+#include <libweb/handler.h>
+#include <libweb/html.h>
+#include <libweb/http.h>
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
@@ -30,7 +30,7 @@ static int hello(const struct http_payload *const pl,
fprintf(stderr, "%s: html_node_add_child p failed\n", __func__);
goto end;
}
- else if (html_node_set_value(p, "Hello from slweb!"))
+ else if (html_node_set_value(p, "Hello from libweb!"))
{
fprintf(stderr, "%s: html_node_set_value p failed\n", __func__);
goto end;
diff --git a/examples/html/CMakeLists.txt b/examples/html/CMakeLists.txt
index bc4202d..410663b 100644
--- a/examples/html/CMakeLists.txt
+++ b/examples/html/CMakeLists.txt
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.13)
project(html C)
add_executable(html main.c)
-target_link_libraries(${PROJECT_NAME} PRIVATE slweb dynstr)
+target_link_libraries(${PROJECT_NAME} PRIVATE web dynstr)
diff --git a/examples/html/Makefile b/examples/html/Makefile
index 77d94f8..87d27aa 100644
--- a/examples/html/Makefile
+++ b/examples/html/Makefile
@@ -3,10 +3,10 @@
PROJECT = html
DEPS = \
main.o
-SLWEB = ../../libslweb.a
+LIBWEB = ../../libweb.a
DYNSTR = ../../dynstr/libdynstr.a
CFLAGS = -I ../../include -I ../../dynstr/include
-SLWEB_FLAGS = -L ../../ -l slweb
+LIBWEB_FLAGS = -L ../../ -l libweb
DYNSTR_FLAGS = -L ../../dynstr -l dynstr
all: $(PROJECT)
@@ -16,10 +16,10 @@ clean:
FORCE:
-$(PROJECT): $(DEPS) $(SLWEB) $(DYNSTR)
- $(CC) $(LDFLAGS) $(DEPS) $(SLWEB_FLAGS) $(DYNSTR_FLAGS) -o $@
+$(PROJECT): $(DEPS) $(LIBWEB) $(DYNSTR)
+ $(CC) $(LDFLAGS) $(DEPS) $(LIBWEB_FLAGS) $(DYNSTR_FLAGS) -o $@
-$(SLWEB): FORCE
+$(LIBWEB): FORCE
+cd ../../ && $(MAKE)
$(DYNSTR): FORCE
diff --git a/examples/html/README.md b/examples/html/README.md
index ac89287..4d7544f 100644
--- a/examples/html/README.md
+++ b/examples/html/README.md
@@ -20,6 +20,6 @@ should be written to the standard output:
<head>
<meta charset="UTF-8"/>
</head>
- <body>testing slweb</body>
+ <body>testing libweb</body>
</html>
```
diff --git a/examples/html/main.c b/examples/html/main.c
index c29e360..858aff7 100644
--- a/examples/html/main.c
+++ b/examples/html/main.c
@@ -1,4 +1,4 @@
-#include <slweb/html.h>
+#include <libweb/html.h>
#include <dynstr.h>
#include <stdlib.h>
#include <stdio.h>
@@ -9,7 +9,7 @@ int main()
struct dynstr d;
struct html_node *const html = html_node_alloc("html"), *head,
*meta, *body;
- static const char text[] = "testing slweb";
+ static const char text[] = "testing libweb";
dynstr_init(&d);
diff --git a/handler.c b/handler.c
index 49b9af9..61a2806 100644
--- a/handler.c
+++ b/handler.c
@@ -1,9 +1,9 @@
#define _POSIX_C_SOURCE 200809L
-#include "slweb/handler.h"
-#include "slweb/http.h"
-#include "slweb/server.h"
-#include "slweb/wildcard_cmp.h"
+#include "libweb/handler.h"
+#include "libweb/http.h"
+#include "libweb/server.h"
+#include "libweb/wildcard_cmp.h"
#include <errno.h>
#include <stdbool.h>
#include <stddef.h>
diff --git a/html.c b/html.c
index 482f133..5a92d77 100644
--- a/html.c
+++ b/html.c
@@ -1,6 +1,6 @@
#define _POSIX_C_SOURCE 200809L
-#include "slweb/html.h"
+#include "libweb/html.h"
#include <dynstr.h>
#include <errno.h>
#include <stddef.h>
diff --git a/http.c b/http.c
index 5bf5251..a475c64 100644
--- a/http.c
+++ b/http.c
@@ -1,6 +1,6 @@
#define _POSIX_C_SOURCE 200809L
-#include "slweb/http.h"
+#include "libweb/http.h"
#include <dynstr.h>
#include <sys/types.h>
#include <unistd.h>
diff --git a/include/slweb/handler.h b/include/libweb/handler.h
index 84a8073..9cde129 100644
--- a/include/slweb/handler.h
+++ b/include/libweb/handler.h
@@ -1,7 +1,7 @@
#ifndef HANDLER_H
#define HANDLER_H
-#include "slweb/http.h"
+#include "libweb/http.h"
#include <stddef.h>
typedef int (*handler_fn)(const struct http_payload *p,
diff --git a/include/slweb/html.h b/include/libweb/html.h
index e62575e..e62575e 100644
--- a/include/slweb/html.h
+++ b/include/libweb/html.h
diff --git a/include/slweb/http.h b/include/libweb/http.h
index 68ffb9a..68ffb9a 100644
--- a/include/slweb/http.h
+++ b/include/libweb/http.h
diff --git a/include/slweb/server.h b/include/libweb/server.h
index 74f06ae..74f06ae 100644
--- a/include/slweb/server.h
+++ b/include/libweb/server.h
diff --git a/include/slweb/wildcard_cmp.h b/include/libweb/wildcard_cmp.h
index fa09913..fa09913 100644
--- a/include/slweb/wildcard_cmp.h
+++ b/include/libweb/wildcard_cmp.h
diff --git a/slweb.pc b/libweb.pc
index 3d79911..8d3f0b9 100644
--- a/slweb.pc
+++ b/libweb.pc
@@ -3,9 +3,9 @@ exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib
-Name: slweb
-Url: https://gitea.privatedns.org/xavi/slweb
+Name: libweb
+Url: https://gitea.privatedns.org/xavi/libweb
Description: A simple and lightweight web framework
Version: 0.1.0
Cflags: -I${includedir}
-Libs: -L${libdir} -lslweb
+Libs: -L${libdir} -llibweb
diff --git a/server.c b/server.c
index b86a912..8cea044 100644
--- a/server.c
+++ b/server.c
@@ -6,7 +6,7 @@
#define _POSIX_C_SOURCE 200809L
#endif
-#include "slweb/server.h"
+#include "libweb/server.h"
#include <fcntl.h>
#include <sys/socket.h>
#include <netinet/in.h>
diff --git a/wildcard_cmp.c b/wildcard_cmp.c
index 1fcd451..e450190 100644
--- a/wildcard_cmp.c
+++ b/wildcard_cmp.c
@@ -1,4 +1,4 @@
-#include "slweb/wildcard_cmp.h"
+#include "libweb/wildcard_cmp.h"
#include <stdbool.h>
#include <stddef.h>
#include <string.h>