<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gmnisrv/include, branch main</title>
<subtitle>Fork of gmnisrv (Gemini server): full CA certificate chain (Lets Encrypt), TLS 1.3 only, handshake buffer-overflow fix
</subtitle>
<id>https://git.virebent.art/virebent/gmnisrv/atom?h=main</id>
<link rel='self' href='https://git.virebent.art/virebent/gmnisrv/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.virebent.art/virebent/gmnisrv/'/>
<updated>2026-06-26T17:20:00+00:00</updated>
<entry>
<title>Serve CA full chain (Let's Encrypt), TLS 1.3, fix handshake buffer overflow</title>
<updated>2026-06-26T17:20:00+00:00</updated>
<author>
<name>Gab Virebent</name>
<email>gab@virebent.art</email>
</author>
<published>2026-06-26T17:20:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.virebent.art/virebent/gmnisrv/commit/?id=fb48d1308d2f63f8e9b23c5d1d921783fa0dacbe'/>
<id>urn:sha1:fb48d1308d2f63f8e9b23c5d1d921783fa0dacbe</id>
<content type='text'>
- tls.c/config.h: read full PEM chain into STACK_OF(X509), send via SSL_set1_chain
- tls.c: minimum protocol TLS 1.2 -&gt; TLS 1.3
- server.c: drain handshake output via local buffer loop instead of staging
  into the fixed 4 KB client buffer (a full CA chain overflowed it -&gt; assert)
- FORK.md: describe the fork
</content>
</entry>
<entry>
<title>implement handling of ROUTE_EXACT definitions</title>
<updated>2021-01-29T13:55:43+00:00</updated>
<author>
<name>René Wagner</name>
<email>rwagner@rw-net.de</email>
</author>
<published>2021-01-27T19:57:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.virebent.art/virebent/gmnisrv/commit/?id=32913c35cd5f36b00056d3e239c0e85f1f0ed000'/>
<id>urn:sha1:32913c35cd5f36b00056d3e239c0e85f1f0ed000</id>
<content type='text'>
This patchset implements the handling of exact routes
as described in gmnisrvini(5).
</content>
</entry>
<entry>
<title>Implement URL rewrites with regex capture groups</title>
<updated>2020-11-01T16:19:51+00:00</updated>
<author>
<name>Drew DeVault</name>
<email>sir@cmpwn.com</email>
</author>
<published>2020-11-01T16:19:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.virebent.art/virebent/gmnisrv/commit/?id=dc6e4e80c0b0a3950594e32db7cff1b2db24d75c'/>
<id>urn:sha1:dc6e4e80c0b0a3950594e32db7cff1b2db24d75c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Drop most of the unicode tables</title>
<updated>2020-10-30T03:30:49+00:00</updated>
<author>
<name>Drew DeVault</name>
<email>sir@cmpwn.com</email>
</author>
<published>2020-10-30T03:30:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.virebent.art/virebent/gmnisrv/commit/?id=70fadc21b9f586f4d850625ae155c2c31a3b7ac0'/>
<id>urn:sha1:70fadc21b9f586f4d850625ae155c2c31a3b7ac0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Initial pass on regex routing support</title>
<updated>2020-10-30T02:47:56+00:00</updated>
<author>
<name>Drew DeVault</name>
<email>sir@cmpwn.com</email>
</author>
<published>2020-10-30T02:47:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.virebent.art/virebent/gmnisrv/commit/?id=7e8a9537949f298eef026f6b97b8c349a9b56ea0'/>
<id>urn:sha1:7e8a9537949f298eef026f6b97b8c349a9b56ea0</id>
<content type='text'>
All this does is parse the regexes out of the config file.

I've vendored libregexp from Bellard's quickjs project, because it's
reasonably small and self-contained, and POSIX regexes don't support
captures. We're eventually going to want captures for URL rewrites, so
this'll do for now.
</content>
</entry>
<entry>
<title>Implement MIME database support</title>
<updated>2020-10-28T16:38:32+00:00</updated>
<author>
<name>Drew DeVault</name>
<email>sir@cmpwn.com</email>
</author>
<published>2020-10-28T16:38:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.virebent.art/virebent/gmnisrv/commit/?id=becc4460b6a60fcf193156a3810117a3eaaac182'/>
<id>urn:sha1:becc4460b6a60fcf193156a3810117a3eaaac182</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Initial support for CGI scripts</title>
<updated>2020-10-26T03:16:50+00:00</updated>
<author>
<name>Drew DeVault</name>
<email>sir@cmpwn.com</email>
</author>
<published>2020-10-26T03:16:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.virebent.art/virebent/gmnisrv/commit/?id=cc1bd152e30e14827d2a002fef99384f418c22ab'/>
<id>urn:sha1:cc1bd152e30e14827d2a002fef99384f418c22ab</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Initial implementation of a routing table</title>
<updated>2020-10-26T01:46:01+00:00</updated>
<author>
<name>Drew DeVault</name>
<email>sir@cmpwn.com</email>
</author>
<published>2020-10-26T01:46:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.virebent.art/virebent/gmnisrv/commit/?id=8baeb5a51c4dfa03956887ade2ef77295f17c95e'/>
<id>urn:sha1:8baeb5a51c4dfa03956887ade2ef77295f17c95e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Overhaul network I/O to be async for real</title>
<updated>2020-10-25T18:50:07+00:00</updated>
<author>
<name>Drew DeVault</name>
<email>sir@cmpwn.com</email>
</author>
<published>2020-10-25T18:50:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.virebent.art/virebent/gmnisrv/commit/?id=1fe107875b05cc07cf62c714c0136026eef7b93a'/>
<id>urn:sha1:1fe107875b05cc07cf62c714c0136026eef7b93a</id>
<content type='text'>
Had to totally cut off OpenSSL from the network fd because obviously
OpenSSL is just going to wreck our shit
</content>
</entry>
<entry>
<title>Change assert to 2-param version to comply with C11.</title>
<updated>2020-09-29T22:04:12+00:00</updated>
<author>
<name>Kevin Sangeelee</name>
<email>kevin@susa.net</email>
</author>
<published>2020-09-29T21:55:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.virebent.art/virebent/gmnisrv/commit/?id=cff1f71f1a8f781905006fbfd22accfb2fee40d3'/>
<id>urn:sha1:cff1f71f1a8f781905006fbfd22accfb2fee40d3</id>
<content type='text'>
</content>
</entry>
</feed>
