<feed xmlns='http://www.w3.org/2005/Atom'>
<title>sliderule.git/internal, branch main</title>
<subtitle>The small web toolkit for Go
</subtitle>
<id>https://code.tjp.lol/sliderule.git/atom?h=main</id>
<link rel='self' href='https://code.tjp.lol/sliderule.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://code.tjp.lol/sliderule.git/'/>
<updated>2026-07-01T16:47:36Z</updated>
<entry>
<title>Harden Gopher parsing and recover server goroutines</title>
<updated>2026-07-01T16:47:36Z</updated>
<author>
<name>T</name>
<email>t@tjp.lol</email>
</author>
<published>2025-04-03T16:00:40Z</published>
<link rel='alternate' type='text/html' href='https://code.tjp.lol/sliderule.git/commit/?id=748a806adc5a325e63ca6883b2aa9bf15da90513'/>
<id>urn:sha1:748a806adc5a325e63ca6883b2aa9bf15da90513</id>
<content type='text'>
Reject oversized or malformed Gopher selectors as parse errors instead of panicking. Keep search requests bounded, and wrap shared server goroutines with panic logging so one bad connection cannot take down the process.
</content>
</entry>
<entry>
<title>add a *Request to Response</title>
<updated>2024-01-10T18:10:09Z</updated>
<author>
<name>tjp</name>
<email>tjp@ctrl-c.club</email>
</author>
<published>2024-01-10T18:06:53Z</published>
<link rel='alternate' type='text/html' href='https://code.tjp.lol/sliderule.git/commit/?id=b6c0ba24cf5902e6bafff4243979bb12010aa142'/>
<id>urn:sha1:b6c0ba24cf5902e6bafff4243979bb12010aa142</id>
<content type='text'>
</content>
</entry>
<entry>
<title>lint and bug fixes</title>
<updated>2023-11-13T14:27:56Z</updated>
<author>
<name>tjp</name>
<email>tjp@ctrl-c.club</email>
</author>
<published>2023-11-13T14:27:56Z</published>
<link rel='alternate' type='text/html' href='https://code.tjp.lol/sliderule.git/commit/?id=aa9bca810912f102a13a674ee30bf97f5667f662'/>
<id>urn:sha1:aa9bca810912f102a13a674ee30bf97f5667f662</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor contribs to work with a Protocol interface</title>
<updated>2023-11-13T14:27:16Z</updated>
<author>
<name>tjp</name>
<email>tjp@ctrl-c.club</email>
</author>
<published>2023-11-13T14:25:39Z</published>
<link rel='alternate' type='text/html' href='https://code.tjp.lol/sliderule.git/commit/?id=1e0f8e0aaeaf1bd2ee39c02e922238b641bcf88b'/>
<id>urn:sha1:1e0f8e0aaeaf1bd2ee39c02e922238b641bcf88b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>router/pathtree: support a required path segment prefix before :wildcards</title>
<updated>2023-10-09T14:59:01Z</updated>
<author>
<name>tjpcc</name>
<email>tjp@ctrl-c.club</email>
</author>
<published>2023-10-09T14:59:01Z</published>
<link rel='alternate' type='text/html' href='https://code.tjp.lol/sliderule.git/commit/?id=64b06db74da3bb77c7bd703bf9124fed83c47d7f'/>
<id>urn:sha1:64b06db74da3bb77c7bd703bf9124fed83c47d7f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>logging.Base()</title>
<updated>2023-10-09T14:58:31Z</updated>
<author>
<name>tjpcc</name>
<email>tjp@ctrl-c.club</email>
</author>
<published>2023-10-09T14:58:31Z</published>
<link rel='alternate' type='text/html' href='https://code.tjp.lol/sliderule.git/commit/?id=20be557b7bc3d7ada78411b7b279c9f7580d0bc7'/>
<id>urn:sha1:20be557b7bc3d7ada78411b7b279c9f7580d0bc7</id>
<content type='text'>
Allow users to get access to the base logger *before* it is wrapped with the various levels.
This provides a single override point to filter or redirect all logging.
</content>
</entry>
<entry>
<title>nit style fix</title>
<updated>2023-09-23T19:18:49Z</updated>
<author>
<name>tjpcc</name>
<email>tjp@ctrl-c.club</email>
</author>
<published>2023-09-23T19:18:49Z</published>
<link rel='alternate' type='text/html' href='https://code.tjp.lol/sliderule.git/commit/?id=09c482d5016cfc7b628058893a1644fdf5fa699f'/>
<id>urn:sha1:09c482d5016cfc7b628058893a1644fdf5fa699f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>allow slash-ending paths in pathTree</title>
<updated>2023-09-15T23:00:08Z</updated>
<author>
<name>tjpcc</name>
<email>tjp@ctrl-c.club</email>
</author>
<published>2023-09-15T23:00:08Z</published>
<link rel='alternate' type='text/html' href='https://code.tjp.lol/sliderule.git/commit/?id=0ab036d34c5526e8c39da798bec2bc5d4a70a6b2'/>
<id>urn:sha1:0ab036d34c5526e8c39da798bec2bc5d4a70a6b2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>include the root route in pathtree.Routes()</title>
<updated>2023-09-15T22:20:03Z</updated>
<author>
<name>tjpcc</name>
<email>tjp@ctrl-c.club</email>
</author>
<published>2023-09-15T22:20:03Z</published>
<link rel='alternate' type='text/html' href='https://code.tjp.lol/sliderule.git/commit/?id=73f18bcd3a754e8a59100dd165d048a749aab1fe'/>
<id>urn:sha1:73f18bcd3a754e8a59100dd165d048a749aab1fe</id>
<content type='text'>
</content>
</entry>
<entry>
<title>log stderr on failed CGIs</title>
<updated>2023-09-09T14:42:21Z</updated>
<author>
<name>tjpcc</name>
<email>tjp@ctrl-c.club</email>
</author>
<published>2023-09-09T14:42:21Z</published>
<link rel='alternate' type='text/html' href='https://code.tjp.lol/sliderule.git/commit/?id=33648cc286e812a8603743c29e96830de3b4acb8'/>
<id>urn:sha1:33648cc286e812a8603743c29e96830de3b4acb8</id>
<content type='text'>
</content>
</entry>
</feed>
