<feed xmlns='http://www.w3.org/2005/Atom'>
<title>xavi/slcl, branch v0.3.1</title>
<subtitle>Small and lightweight cloud storage written in C99 and POSIX.1-2008.
</subtitle>
<id>https://gitea.privatedns.org/xavi/slcl/atom?h=v0.3.1</id>
<link rel='self' href='https://gitea.privatedns.org/xavi/slcl/atom?h=v0.3.1'/>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/slcl/'/>
<updated>2025-01-23T22:41:12+00:00</updated>
<entry>
<title>.gitignore: Fix path for Makefile</title>
<updated>2025-01-23T22:41:12+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2025-01-23T22:39:57+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/slcl/commit/?id=681005b8f62245816c18f7190bb02078037de200'/>
<id>urn:sha1:681005b8f62245816c18f7190bb02078037de200</id>
<content type='text'>
</content>
</entry>
<entry>
<title>main.c: Require paths with leading '/' on sharing</title>
<updated>2025-01-23T22:41:03+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2025-01-23T22:24:22+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/slcl/commit/?id=3e618c2d0f1d489e13ed1f45b5a9068936c05743'/>
<id>urn:sha1:3e618c2d0f1d489e13ed1f45b5a9068936c05743</id>
<content type='text'>
When sharing, paths must be expressed as an absolute path e.g.:
/path/to/file .
</content>
</entry>
<entry>
<title>main.c: Forbid sharing non-existing files</title>
<updated>2025-01-23T22:37:39+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2025-01-23T22:21:44+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/slcl/commit/?id=9752843329a257542c34798d65e829a6cff7764b'/>
<id>urn:sha1:9752843329a257542c34798d65e829a6cff7764b</id>
<content type='text'>
So far, slcl would allow to share literally any directory or file, even
if they did not exist, as long as valid credentials were given.

Now, directories cannot be shared, since this is already restricted by
the web interface. This is now considered an invalid request.

On the other hand, attempting to share non-existing files shall now
return a 404 Not Found response to the user.
</content>
</entry>
<entry>
<title>libweb: Add byte serving</title>
<updated>2024-11-10T23:08:50+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2024-11-10T23:08:50+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/slcl/commit/?id=5c4e226ddcd132c0dfa9a9cf096d3b3f8fc3c171'/>
<id>urn:sha1:5c4e226ddcd132c0dfa9a9cf096d3b3f8fc3c171</id>
<content type='text'>
libweb started to support HTTP/1.1 Range Requests [1] so that large
files can be partially retrieved. In the context of slcl, this is
interesting in order to preview large media files, such as videos, PDFs
or audio files.

[1]: https://httpwg.org/specs/rfc7233.html
</content>
</entry>
<entry>
<title>Implement directory paging</title>
<updated>2024-08-28T01:57:27+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2024-08-28T01:10:06+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/slcl/commit/?id=6b7acc7eaf401b2d4fdf615543f4364fc77b9255'/>
<id>urn:sha1:6b7acc7eaf401b2d4fdf615543f4364fc77b9255</id>
<content type='text'>
This allows directories with many files and directories inside them to
be split into pages, in order to limit resource usage.
</content>
</entry>
<entry>
<title>Bump libweb to v0.4.1</title>
<updated>2024-08-28T01:57:00+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2024-08-28T01:28:08+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/slcl/commit/?id=49d8e4397a80ab373737b8baf4588bef5bfa717f'/>
<id>urn:sha1:49d8e4397a80ab373737b8baf4588bef5bfa717f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Bump to libweb 0.4.0</title>
<updated>2024-08-22T00:28:25+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2024-08-22T00:21:15+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/slcl/commit/?id=78eff0cfa55606ade2ce494258739514c92994ca'/>
<id>urn:sha1:78eff0cfa55606ade2ce494258739514c92994ca</id>
<content type='text'>
Now, libweb (rightfully) forces applications to handle signals and
introduces handler_notify_close(3) to achieve the desired behaviour.

Additionally, libweb 0.4.0 introduces several bugfixes.
</content>
</entry>
<entry>
<title>main.c: Fix missing O_TRUNC</title>
<updated>2024-08-22T00:00:11+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2024-08-22T00:00:11+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/slcl/commit/?id=36dec4c1b495cd13542827e7ab98b7938adb1524'/>
<id>urn:sha1:36dec4c1b495cd13542827e7ab98b7938adb1524</id>
<content type='text'>
Otherwise, uploaded files meant to overwrite an existing file would not
be updated accordingly if their newer size was smaller.
</content>
</entry>
<entry>
<title>auth.c: Replace sprintf(3) with snprintf(3)</title>
<updated>2024-08-21T21:47:17+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2024-08-21T21:47:17+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/slcl/commit/?id=d73097dd74625711dd02d5e3a6cb6bdca5ca8150'/>
<id>urn:sha1:d73097dd74625711dd02d5e3a6cb6bdca5ca8150</id>
<content type='text'>
Even if this specific use of sprintf(3) was safe because sizeof
sha256_str &gt; (sizeof sha256 * 2), some implementations would consider
sprintf(3) unsafe anyway.
</content>
</entry>
<entry>
<title>auth.c: Reject empty files</title>
<updated>2024-06-13T06:25:29+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2024-06-13T06:25:29+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/slcl/commit/?id=37c4b2967863fe5ba265a7fefad60dbd96a09f17'/>
<id>urn:sha1:37c4b2967863fe5ba265a7fefad60dbd96a09f17</id>
<content type='text'>
It makes no sense to attempt to fopen(3) an empty file and malloc(3)
zero bytes so as to dump it, as dump_db is still meant to fail on empty
files.
</content>
</entry>
</feed>
