<feed xmlns='http://www.w3.org/2005/Atom'>
<title>xavi/libweb/server.c, branch async-response</title>
<subtitle>Small and lightweight web framework written in C99 and POSIX.1-2008.
</subtitle>
<id>https://gitea.privatedns.org/xavi/libweb/atom?h=async-response</id>
<link rel='self' href='https://gitea.privatedns.org/xavi/libweb/atom?h=async-response'/>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/libweb/'/>
<updated>2024-08-28T01:52:59+00:00</updated>
<entry>
<title>server.c: Fix wrong for loop range</title>
<updated>2024-08-28T01:52:59+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2024-08-28T01:27:28+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/libweb/commit/?id=872bfc2f8faf2000703f26ebb88a68ab0f356a7d'/>
<id>urn:sha1:872bfc2f8faf2000703f26ebb88a68ab0f356a7d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>server.c: Multiplex client events</title>
<updated>2024-08-25T13:10:11+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2024-08-25T12:46:06+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/libweb/commit/?id=1eaab0bd503d4ca6d1b62082a0117447171d1bc8'/>
<id>urn:sha1:1eaab0bd503d4ca6d1b62082a0117447171d1bc8</id>
<content type='text'>
Future commits would allow user-defined callbacks to write zero, one or
more bytes to a file descriptor. If zero bytes were written, server_poll
must avoid to always point to the same server_client, so that other
requests from other server_client instances can still be handled.
</content>
</entry>
<entry>
<title>server.c: Fix descriptor leak on failed fcntl(2)</title>
<updated>2024-08-25T12:32:27+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2024-08-25T12:32:27+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/libweb/commit/?id=199d801c835e95b54908b1a34963f65ba6ceee30'/>
<id>urn:sha1:199d801c835e95b54908b1a34963f65ba6ceee30</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Move signal handling to processes</title>
<updated>2024-08-22T00:27:34+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2024-08-19T22:07:05+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/libweb/commit/?id=43e89fb23943b5ffb6854f290592c29cd079bf46'/>
<id>urn:sha1:43e89fb23943b5ffb6854f290592c29cd079bf46</id>
<content type='text'>
So far, libweb installed a signal handler so as to handle SIGTERM,
SIGPIPE and SIGINT signals so that processes would not have to care
about such details.

However, it is not advisable for libraries to install signal handlers,
as signals are handled on a per-process basis. The previous approach
would be incompatible if several instances of the library were allocated
by the same process.

Unfortunately, this has the undesired side effect of adding the
boilerplate code into the process.
</content>
</entry>
<entry>
<title>server.c: Fix wrong priority for do_exit</title>
<updated>2024-01-20T00:19:57+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2024-01-20T00:09:18+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/libweb/commit/?id=91ff743df9fcee048cb44dba0c7047df04454dd2'/>
<id>urn:sha1:91ff743df9fcee048cb44dba0c7047df04454dd2</id>
<content type='text'>
Under some specific circumstances, poll(2) would return a positive
integer, but do_exit might had been previously set. This caused libweb
to ignore SIGTERM, with the potential risk for an endless loop.
</content>
</entry>
<entry>
<title>Merge pull request 'Fix double-free on failed `server_client_close`' (#2) from midokura-xavi/libweb:fix-double-free into master</title>
<updated>2023-11-20T15:27:28+00:00</updated>
<author>
<name>xavi</name>
<email>xavi@noreply.localhost</email>
</author>
<published>2023-11-20T15:27:28+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/libweb/commit/?id=8f1ad3124e9e063ca0ee7c2548c747b20de3529d'/>
<id>urn:sha1:8f1ad3124e9e063ca0ee7c2548c747b20de3529d</id>
<content type='text'>
Reviewed-on: https://gitea.privatedns.org/xavi/libweb/pulls/2
</content>
</entry>
<entry>
<title>Fix double-free on failed server_client_close</title>
<updated>2023-11-20T15:25:58+00:00</updated>
<author>
<name>Xavier Del Campo</name>
<email>xavier.delcampo@midokura.com</email>
</author>
<published>2023-11-20T11:20:51+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/libweb/commit/?id=59a67a7541ee1559b140494c21a25b195246a4fa'/>
<id>urn:sha1:59a67a7541ee1559b140494c21a25b195246a4fa</id>
<content type='text'>
Even if server_client_close fails, it is needed for client_free to
remove the dangling reference from h-&gt;clients.
</content>
</entry>
<entry>
<title>Split handler_loop from handler_listen</title>
<updated>2023-11-20T15:06:19+00:00</updated>
<author>
<name>Xavier Del Campo</name>
<email>xavier.delcampo@midokura.com</email>
</author>
<published>2023-11-16T11:23:08+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/libweb/commit/?id=98f5f52461b0c1ab1ee3331722bd32e2db9e1d41'/>
<id>urn:sha1:98f5f52461b0c1ab1ee3331722bd32e2db9e1d41</id>
<content type='text'>
Some applications might set up a struct handler object to listen on any
port i.e., 0, but still need a way to determine which port number was
eventually selected by the implementation.

Therefore, handler_listen has been reduced to the server initialization
bit, whereas the main loop has been split into its own function, namely
handler_loop.

Because of these changes, it no longer made sense for libweb to write
the selected port to standard output, as this is something now
applications can do on their own.
</content>
</entry>
<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>
</feed>
