Commit Graph

19 Commits

Author SHA1 Message Date
Xavier Del Campo Romero 32af8ddd3d
README.md: Fix CMake build instructions
The previous instructions were simply wrong because `cmake ..` would
attempt to configure the project from the parent directory, instead of
the build directory.
2024-05-05 01:07:01 +02:00
Xavier Del Campo Romero fb8896bccd
README.md: Update dependencies list
- jq is required by usergen.
- Despite being part of a POSIX.1-2008 environment, m4 is not provided
by Debian or Ubuntu by default.
2024-02-24 08:39:25 +01:00
Xavier Del Campo Romero fada861c5f
README.md: Remove wrong comment about /tmp
/tmp is at least defined by POSIX.1-2017 at section 10 (Directory
Structure and Devices).
2023-10-25 22:29:48 +02:00
Xavier Del Campo Romero 6fa38f4d83
Replace handwritten Makefile with configure script 2023-10-25 22:13:23 +02:00
Xavier Del Campo Romero 28ae865e5e
Apply slweb renaming to libweb 2023-10-11 00:08:40 +02:00
Xavier Del Campo Romero 18bd0d83be
usergen: Remove dependency against xxd(1)
xxd(1) is closely related to vim(1), might not be available under
some POSIX systems.
2023-09-16 01:00:05 +02:00
Xavier Del Campo Romero b5327b2f7a
Reduce minimum required major version for OpenSSL
slcl has been successfully tested with OpenSSL 2.0 on an OpenBSD 7.3
host.
2023-09-16 00:29:07 +02:00
Xavier Del Campo Romero 474de49bad
Add screenshots 2023-08-08 13:05:33 +02:00
Xavier Del Campo Romero 75f1f223d4
Do some minor rebranding
Despite designed around portability and minimalism, I feel slcl no
longer aligns with the philosophical views from the suckless project.
Therefore, I think it was appropriate to unlink its branding from it.
2023-08-01 02:25:30 +02:00
Xavier Del Campo Romero 7cc5ab1e79
README.md: Inform about -t command line option 2023-07-30 23:41:18 +02:00
Xavier Del Campo Romero 9bcad04de6
Move slweb to new URL 2023-07-28 01:40:44 +02:00
Xavier Del Campo Romero f84cfcfa14
README.md: Add references to slweb
slweb is the HTTP/1.1 server implementation and utilities that slcl
originally implemented, which have now been split into a separate
repository.
2023-07-21 01:40:55 +02:00
Xavier Del Campo Romero 30a101717c
Remove HTTP/1.0 support
Considering http.h defined HTTP/1.1-only responses such as "303 See
Other", as well as incoming HTTP/1.1-only features (e.g.: byte serving),
it did not make much sense to keep a somewhat broken compatibility
against HTTP/1.0.

Unfortunately, this breaks support with some existing clients such
as lynx(1), even if HTTP/1.0 was already deprecated many years ago.
However, even lynx(1) can be configured to support HTTP/1.1.
2023-05-01 04:13:24 +02:00
Xavier Del Campo Romero d51b191ab7
README.md: Fix wrong links 2023-03-20 00:10:26 +01:00
Xavier Del Campo Romero f0936adb34
README.md: Update according to current status 2023-03-19 23:59:45 +01:00
Xavier Del Campo Romero f6fd20fdc4
Make usergen a bit more useful
So far, usergen printed a JSON object over standard output that had to
be manually copied into db.json. Now, this step is done automatically,
thanks to jq(1). OTOH, user directory is now also created by usergen.
2023-03-16 01:55:22 +01:00
Xavier Del Campo Romero ff8da797a1
Implement user quota
This feature allows admins to set a specific quota for each user, in
MiB. This feature is particularly useful for shared instances, where
unlimited user storage might be unfeasible or even dangerous for the
server.

Also, a nice HTML5 <progress> element has been added to the site that
shows how much of the quota has been consumed.

If no quota is set, slcl falls back to the default behaviour i.e.,
assume unlimited storage.

Limitations:

- While HTTP does specify a Content-Length, which determines the length
of the whole request, it does not specify how many files are involved
or their individual sizes.
- Because of this, if multiple files are uploaded simultaneously, the
whole request would be dropped if user quota is exceeded, even if not
all files exceeded it.
- Also, Content-Length adds the length of some HTTP boilerplate
(e.g.: boundaries), but slcl must rely on this before accepting the
whole request. In other words, this means some requests might be
rejected by slcl because of the extra bytes caused by such boilerplate.
- When the quota is exceeded, slcl must close the connection so that
the rest of the transfer is cancelled. Unfortunately, this means no
HTML can be sent back to the customer to inform about the situation.
2023-03-06 05:51:49 +01:00
Xavier Del Campo Romero 3e95727e27
README.md: Fix broken link to usergen 2023-03-06 02:27:38 +01:00
Xavier Del Campo Romero d26f046fc9
Initial commit 2023-02-28 01:43:56 +01:00