<feed xmlns='http://www.w3.org/2005/Atom'>
<title>sliderule.git/internal/server.go, branch v1.6.4</title>
<subtitle>The small web toolkit for Go
</subtitle>
<id>https://code.tjp.lol/sliderule.git/atom?h=v1.6.4</id>
<link rel='self' href='https://code.tjp.lol/sliderule.git/atom?h=v1.6.4'/>
<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>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>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>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>
<entry>
<title>now we should allow empty address</title>
<updated>2023-05-04T03:13:31Z</updated>
<author>
<name>tjpcc</name>
<email>tjp@ctrl-c.club</email>
</author>
<published>2023-05-04T03:13:31Z</published>
<link rel='alternate' type='text/html' href='https://code.tjp.lol/sliderule.git/commit/?id=11b693e72fc5f141f4d38307a4c49829f8059a8e'/>
<id>urn:sha1:11b693e72fc5f141f4d38307a4c49829f8059a8e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>add JoinDefaultPort for servers' configuration</title>
<updated>2023-05-03T18:22:27Z</updated>
<author>
<name>tjpcc</name>
<email>tjp@ctrl-c.club</email>
</author>
<published>2023-05-03T18:22:27Z</published>
<link rel='alternate' type='text/html' href='https://code.tjp.lol/sliderule.git/commit/?id=def2baade5a4af58e3444cf6c923b1e4de584329'/>
<id>urn:sha1:def2baade5a4af58e3444cf6c923b1e4de584329</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Initial Router work.</title>
<updated>2023-02-02T23:15:53Z</updated>
<author>
<name>tjpcc</name>
<email>tjp@ctrl-c.club</email>
</author>
<published>2023-02-02T23:15:53Z</published>
<link rel='alternate' type='text/html' href='https://code.tjp.lol/sliderule.git/commit/?id=ac024567e880f0da59557f0051018f4ac932c6ad'/>
<id>urn:sha1:ac024567e880f0da59557f0051018f4ac932c6ad</id>
<content type='text'>
- Router type, supports: adding handlers, serving, fetching the matching
  handler for a route.
- Private PathTree type handles the modified radix trie.
</content>
</entry>
<entry>
<title>gopher support.</title>
<updated>2023-01-28T22:01:41Z</updated>
<author>
<name>tjpcc</name>
<email>tjp@ctrl-c.club</email>
</author>
<published>2023-01-28T21:52:35Z</published>
<link rel='alternate' type='text/html' href='https://code.tjp.lol/sliderule.git/commit/?id=66a1b1f39a1e1d5499b548b36d18c8daa872d7da'/>
<id>urn:sha1:66a1b1f39a1e1d5499b548b36d18c8daa872d7da</id>
<content type='text'>
Some of the contrib packages were originally built gemini-specific and
had to be refactored into generic core functionality and thin
protocol-specific wrappers for each of gemini and gopher.
</content>
</entry>
</feed>
