<feed xmlns='http://www.w3.org/2005/Atom'>
<title>xavi/slcl, branch test-multiform</title>
<subtitle>Small and lightweight cloud storage written in C99 and POSIX.1-2008.
</subtitle>
<id>https://gitea.privatedns.org/xavi/slcl/atom?h=test-multiform</id>
<link rel='self' href='https://gitea.privatedns.org/xavi/slcl/atom?h=test-multiform'/>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/slcl/'/>
<updated>2024-01-20T00:20:20+00:00</updated>
<entry>
<title>WIP bump libweb</title>
<updated>2024-01-20T00:20:20+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2024-01-20T00:13:44+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/slcl/commit/?id=efc274cb2b97d4691ecae1b50d4caab99643594c'/>
<id>urn:sha1:efc274cb2b97d4691ecae1b50d4caab99643594c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>README.md: Update according to thumbnail generation</title>
<updated>2023-11-24T01:08:42+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2023-07-22T02:14:41+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/slcl/commit/?id=15e75d95f3cbe51dc6cc9022e4a93a597309b066'/>
<id>urn:sha1:15e75d95f3cbe51dc6cc9022e4a93a597309b066</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Display thumbnails, if available</title>
<updated>2023-11-24T01:08:42+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2023-07-22T22:44:13+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/slcl/commit/?id=73d22e349c4f6cd36323de26b8d31eda6724b52a'/>
<id>urn:sha1:73d22e349c4f6cd36323de26b8d31eda6724b52a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add thumbnail generation tool</title>
<updated>2023-11-24T01:08:41+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2023-07-22T22:31:17+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/slcl/commit/?id=199192b682a7880671a891b51a780b575f5a2b37'/>
<id>urn:sha1:199192b682a7880671a891b51a780b575f5a2b37</id>
<content type='text'>
This new application runs separately from slcl and communicates with it
via a named pipe. When files are added/removed to/from the user
directory, slcl shall write to the named pipe.

Then, this new tool shall process incoming entries and generate
or remove thumbnails accordingly. Such thumbnails are stored into a new
directory inside the database directory, namely thumbnails/, which
replicates the same structure as user/.
</content>
</entry>
<entry>
<title>main.c: Add -m command line option to open a named pipe</title>
<updated>2023-11-24T00:54:12+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2023-07-24T21:25:46+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/slcl/commit/?id=b964429c67bdcba8764ce719758566700cc66bab'/>
<id>urn:sha1:b964429c67bdcba8764ce719758566700cc66bab</id>
<content type='text'>
This write-only named pipe is meant to inform other processes about
files that have been added/removed to/from the user/ directory.
The syntax is line-oriented and is described below.

For added files:
+&lt;space ...&gt;&lt;path&gt;&lt;LF&gt;

For removed files:
-&lt;space ...&gt;&lt;path&gt;&lt;LF&gt;

Paths shall always be absolute.

Examples:

+ /home/test/db/user/alice/a picture.jpg
- /home/test/db/user/bob/essay.txt

As reported above, this feature has been made completely optional so as
not to introduce breaking changes. A new command line option, namely -m,
is required to enable this feature.
</content>
</entry>
<entry>
<title>auth.c: Make use of crealpath</title>
<updated>2023-11-24T00:54:12+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2023-07-24T21:23:55+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/slcl/commit/?id=18fefd8847f27e84b01edc9fe5d5a9eaae9055f0'/>
<id>urn:sha1:18fefd8847f27e84b01edc9fe5d5a9eaae9055f0</id>
<content type='text'>
crealpath already provides a mechanism to determine the current working
directory from getcwd(3).
</content>
</entry>
<entry>
<title>Introduce crealpath</title>
<updated>2023-11-24T00:54:11+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2023-07-24T21:17:48+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/slcl/commit/?id=58c383dd918635ba648b9f8532f15e357b162c77'/>
<id>urn:sha1:58c383dd918635ba648b9f8532f15e357b162c77</id>
<content type='text'>
crealpath (for "custom realpath") is a custom implementation of
realpath(3) that aims to work similarly to GNU's realpath(1). This
implementation is provided due to the following reasons:

- Future commits will require extracting an absolute path from a
  relative path, and/or process relative components from a path, such as
".." or ".".
- realpath(3) is defined by POSIX.1-2008 as a XSI extension, and
  extensions are generally avoided in this repository whenever possible.
- Additionally, realpath(3) requires the file or directory pointed to by
the path to exist, which might not always be the case for slcl.
- auth.c uses its own implementation to extract a dynamically allocated
string by repeatedly calling getcwd(3). Future commits will also
require this future, so it makes sense to keep it on a separate
component.
</content>
</entry>
<entry>
<title>configure: Fix typo</title>
<updated>2023-11-24T00:52:52+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2023-11-24T00:52:52+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/slcl/commit/?id=d9d1811f8922f0509d922943efb3c487ace3de9f'/>
<id>urn:sha1:d9d1811f8922f0509d922943efb3c487ace3de9f</id>
<content type='text'>
slweb was renamed to libweb some time ago:

commit 28ae865e5ecad9b398ac21fa148fc4b93c987226
Author: Xavier Del Campo Romero &lt;xavi.dcr@tutanota.com&gt;
Date:   Tue Oct 10 23:43:47 2023 +0200

    Apply slweb renaming to libweb
</content>
</entry>
<entry>
<title>.gitignore: Ignore only ./Makefile</title>
<updated>2023-11-24T00:52:00+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2023-11-24T00:52:00+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/slcl/commit/?id=3062a63e14585dc30c34ec60ef6016d1b9d82721'/>
<id>urn:sha1:3062a63e14585dc30c34ec60ef6016d1b9d82721</id>
<content type='text'>
Future commits might introduce Makefiles on other directories that
should not be ignored.
</content>
</entry>
<entry>
<title>Bump libweb</title>
<updated>2023-11-24T00:38:51+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2023-11-24T00:38:51+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/slcl/commit/?id=f0368253d113e0639468a6b482988fae791d67f6'/>
<id>urn:sha1:f0368253d113e0639468a6b482988fae791d67f6</id>
<content type='text'>
The following commit should increase performance for slcl:

commit b0accd099fa8c5110d4c3c68830ad6fd810ca3ec
Author: Xavier Del Campo Romero &lt;xavi.dcr@tutanota.com&gt;
Date:   Fri Nov 24 00:52:50 2023 +0100

    http.c: Unify read operations

    So far, libweb would perform different read operations depending on its
    state:

    - For HTTP headers or request bodies, one byte at a time was read.
    - For multipart/form-data, up to BUFSIZ bytes at a time were read.

    However, this caused a significant extra number of syscalls for no
    reason and would increase code complexity, specially when parsing
    multiform/form-data boundaries.

    Now, http_read always reads up to BUFSIZ bytes at a time and process
    them on a loop. Apart from reducing code complexity, this should
    increase performance due to the (much) lower number of syscalls
    required.
</content>
</entry>
</feed>
