<feed xmlns='http://www.w3.org/2005/Atom'>
<title>xavi/libweb/server.c, branch decode-url</title>
<subtitle>Small and lightweight web framework written in C99 and POSIX.1-2008.
</subtitle>
<id>https://gitea.privatedns.org/xavi/libweb/atom?h=decode-url</id>
<link rel='self' href='https://gitea.privatedns.org/xavi/libweb/atom?h=decode-url'/>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/libweb/'/>
<updated>2023-10-10T22:07:13+00:00</updated>
<entry>
<title>Rename project from slweb to libweb</title>
<updated>2023-10-10T22:07:13+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2023-10-10T21:21:35+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/libweb/commit/?id=0222b75e8554796548e079aa3393c512ae30ac24'/>
<id>urn:sha1:0222b75e8554796548e079aa3393c512ae30ac24</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>server.c: Replace sequential calls with loop</title>
<updated>2023-10-10T21:16:11+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2023-10-10T21:16:11+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/libweb/commit/?id=832e198f8c77970b5b923eb18201ba83d9c72b80'/>
<id>urn:sha1:832e198f8c77970b5b923eb18201ba83d9c72b80</id>
<content type='text'>
</content>
</entry>
<entry>
<title>server.c: Fix build on FreeBSD</title>
<updated>2023-09-26T20:58:11+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2023-09-26T20:58:11+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/libweb/commit/?id=8b39bc5db98c252269fe526a8c411bf245770ba2'/>
<id>urn:sha1:8b39bc5db98c252269fe526a8c411bf245770ba2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Move header files to subdirectory</title>
<updated>2023-07-20T23:28:38+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2023-07-20T21:47:33+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/libweb/commit/?id=8c3ba33ced08b211db0cd5f81675bdf62f55acc7'/>
<id>urn:sha1:8c3ba33ced08b211db0cd5f81675bdf62f55acc7</id>
<content type='text'>
Since slweb is meant as a library, it is advisable to keep public header
files under their own directory in order to avoid name clashing i.e.,

 #include "something.h"

Now becomes:

 #include "slweb/something.h"
</content>
</entry>
<entry>
<title>server.c: Fix typo</title>
<updated>2023-07-20T21:52:55+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2023-07-05T22:42:12+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/libweb/commit/?id=01cebe5917c6f3cdca0e13f7b681bb0d6867bb75'/>
<id>urn:sha1:01cebe5917c6f3cdca0e13f7b681bb0d6867bb75</id>
<content type='text'>
</content>
</entry>
<entry>
<title>server.c: Fix undefined behaviour on &gt;1 clients</title>
<updated>2023-07-20T21:52:55+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2023-07-03T11:36:46+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/libweb/commit/?id=a527164cb5b06055c7696eb4247f8cebee6cf23d'/>
<id>urn:sha1:a527164cb5b06055c7696eb4247f8cebee6cf23d</id>
<content type='text'>
server.c kept an array of all of its active clients, calling realloc(3)
everytime its size had to be modified. However, reallocating this array
had the undesired consequence of moving other active clients to other
memory locations.

Potentially, this would result in dangling pointers from other
components that also kept pointers to struct server_client instances
e.g.: handler.c.

For this reason, the array-based approach has been completely dropped,
in favour of a doubly-linked list.
</content>
</entry>
<entry>
<title>Avoid crashing on SIGPIPE</title>
<updated>2023-07-20T21:52:54+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2023-05-01T01:06:34+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/libweb/commit/?id=f75ff13b31d546b4bceea07ce0008bf0fc5ecf71'/>
<id>urn:sha1:f75ff13b31d546b4bceea07ce0008bf0fc5ecf71</id>
<content type='text'>
Under some circumstances, clients could cause SIGPIPE to slcl. Since
this signal was not handled by server.c (i.e., via sigaction(3)), slcl
would crash without any error messages printed to stderr.

In such situation, SIGPIPE should not be usually considered a fatal
error, so it is preferrable to close the connection and keep working.
</content>
</entry>
<entry>
<title>Replace select(2) with poll(2)</title>
<updated>2023-07-20T21:52:53+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2023-04-27T22:19:32+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/libweb/commit/?id=2e8485d687dd5f673b8d2aadb0816571d3f32cb7'/>
<id>urn:sha1:2e8485d687dd5f673b8d2aadb0816571d3f32cb7</id>
<content type='text'>
select(2) has a number of well-known issues (e.g.: FD_SETSIZE limiting
the maximum amount of file descriptors to watch) that are mostly solved
by poll(2) and thus can be used as a drop-in replacement.
</content>
</entry>
<entry>
<title>Define _POSIX_C_SOURCE</title>
<updated>2023-07-20T21:52:53+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2023-03-24T01:47:11+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/libweb/commit/?id=af16aa6702ffb385a36504a459210e94704bbe2b'/>
<id>urn:sha1:af16aa6702ffb385a36504a459210e94704bbe2b</id>
<content type='text'>
This allows using the default compiler defined by make(1) (i.e.,
c99(1)), thus improving POSIX compatibility.
</content>
</entry>
<entry>
<title>server.c: Fix wrong size for memcpy(3)</title>
<updated>2023-07-20T21:52:52+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2023-03-08T00:17:34+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/libweb/commit/?id=fbaa7b9bcf0b3cfe1f086e72c12214db477cebdd'/>
<id>urn:sha1:fbaa7b9bcf0b3cfe1f086e72c12214db477cebdd</id>
<content type='text'>
</content>
</entry>
</feed>
