<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>dns, branch HEAD</title>
<subtitle>DNS client and server implementations using the Go project&#39;s dnsmessage package
</subtitle>
<entry>
<id>355f00a27e0b5415caa88c3b59f61dfa4fa42279</id>
<published>2024-11-04T08:30:32Z</published>
<updated>2024-11-04T08:30:32Z</updated>
<title type="text">Update godoc link to working host</title>
<link rel="alternate" type="text/html" href="commit/355f00a27e0b5415caa88c3b59f61dfa4fa42279.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 355f00a27e0b5415caa88c3b59f61dfa4fa42279
parent 08629ce995314c6ed4761911338d6f02a5d3b484
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Mon,  4 Nov 2024 19:30:32 +1100

Update godoc link to working host

</content>
</entry>
<entry>
<id>08629ce995314c6ed4761911338d6f02a5d3b484</id>
<published>2024-07-27T11:11:17Z</published>
<updated>2024-07-27T11:11:17Z</updated>
<title type="text">dns: consistent doc format</title>
<link rel="alternate" type="text/html" href="commit/08629ce995314c6ed4761911338d6f02a5d3b484.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 08629ce995314c6ed4761911338d6f02a5d3b484
parent 32fb5e1b072c805eea80c9150f648d849edc963a
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Sat, 27 Jul 2024 21:11:17 +1000

dns: consistent doc format

</content>
</entry>
<entry>
<id>32fb5e1b072c805eea80c9150f648d849edc963a</id>
<published>2024-06-22T06:24:28Z</published>
<updated>2024-06-22T06:26:20Z</updated>
<title type="text">dns: upgrade golang.org/x/net to stable release</title>
<link rel="alternate" type="text/html" href="commit/32fb5e1b072c805eea80c9150f648d849edc963a.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 32fb5e1b072c805eea80c9150f648d849edc963a
parent b35d6340d594a820bb31e3beb1a2446b89a0d8da
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Sat, 22 Jun 2024 16:24:28 +1000

dns: upgrade golang.org/x/net to stable release

</content>
</entry>
<entry>
<id>b35d6340d594a820bb31e3beb1a2446b89a0d8da</id>
<published>2024-02-29T05:28:31Z</published>
<updated>2024-02-29T05:28:31Z</updated>
<title type="text">Correct godoc links</title>
<link rel="alternate" type="text/html" href="commit/b35d6340d594a820bb31e3beb1a2446b89a0d8da.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit b35d6340d594a820bb31e3beb1a2446b89a0d8da
parent 8960d9d808cecb41ae6bf023cec57c0e133c77c6
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Thu, 29 Feb 2024 16:28:31 +1100

Correct godoc links

</content>
</entry>
<entry>
<id>8960d9d808cecb41ae6bf023cec57c0e133c77c6</id>
<published>2021-12-21T05:56:14Z</published>
<updated>2021-12-21T05:56:14Z</updated>
<title type="text">ignore built recursor binary</title>
<link rel="alternate" type="text/html" href="commit/8960d9d808cecb41ae6bf023cec57c0e133c77c6.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 8960d9d808cecb41ae6bf023cec57c0e133c77c6
parent 32888e323dda0ea3d9a7112643732358d57509e3
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Tue, 21 Dec 2021 16:56:14 +1100

ignore built recursor binary

</content>
</entry>
<entry>
<id>32888e323dda0ea3d9a7112643732358d57509e3</id>
<published>2021-12-21T05:55:16Z</published>
<updated>2021-12-21T05:55:16Z</updated>
<title type="text">minor doc typos</title>
<link rel="alternate" type="text/html" href="commit/32888e323dda0ea3d9a7112643732358d57509e3.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 32888e323dda0ea3d9a7112643732358d57509e3
parent ed53ec5febe195955fd7f0bf9befeec804bf3b52
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Tue, 21 Dec 2021 16:55:16 +1100

minor doc typos

</content>
</entry>
<entry>
<id>ed53ec5febe195955fd7f0bf9befeec804bf3b52</id>
<published>2021-12-19T09:57:34Z</published>
<updated>2021-12-19T09:59:04Z</updated>
<title type="text">server: dedupe WriteMsg logic on error msg responses</title>
<link rel="alternate" type="text/html" href="commit/ed53ec5febe195955fd7f0bf9befeec804bf3b52.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit ed53ec5febe195955fd7f0bf9befeec804bf3b52
parent 598b53e1e47686b8c47241b874109f3b70c5f2d1
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Sun, 19 Dec 2021 20:57:34 +1100

server: dedupe WriteMsg logic on error msg responses

</content>
</entry>
<entry>
<id>598b53e1e47686b8c47241b874109f3b70c5f2d1</id>
<published>2021-12-18T10:22:56Z</published>
<updated>2021-12-18T10:28:56Z</updated>
<title type="text">dns: add Handlers for common server responses</title>
<link rel="alternate" type="text/html" href="commit/598b53e1e47686b8c47241b874109f3b70c5f2d1.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 598b53e1e47686b8c47241b874109f3b70c5f2d1
parent f62764615c3e0fa8465b5bdf32fd067841e9fb91
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Sat, 18 Dec 2021 21:22:56 +1100

dns: add Handlers for common server responses

this takes more stuff out of cmd/recursor that could be used by other
servers.
While here reject even more qtypes from recursive resolution

</content>
</entry>
<entry>
<id>f62764615c3e0fa8465b5bdf32fd067841e9fb91</id>
<published>2021-12-18T07:24:12Z</published>
<updated>2021-12-18T10:22:25Z</updated>
<title type="text">dns_test: add example dns.Handler</title>
<link rel="alternate" type="text/html" href="commit/f62764615c3e0fa8465b5bdf32fd067841e9fb91.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit f62764615c3e0fa8465b5bdf32fd067841e9fb91
parent 60703b621feba1f8aff3879589ef37a0b466801a
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Sat, 18 Dec 2021 18:24:12 +1100

dns_test: add example dns.Handler

</content>
</entry>
<entry>
<id>60703b621feba1f8aff3879589ef37a0b466801a</id>
<published>2021-12-18T07:22:45Z</published>
<updated>2021-12-18T07:22:45Z</updated>
<title type="text">cmd/recursor: return error when no more servers to ask</title>
<link rel="alternate" type="text/html" href="commit/60703b621feba1f8aff3879589ef37a0b466801a.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 60703b621feba1f8aff3879589ef37a0b466801a
parent 2cf560f78905b6f035e5eb06dfeae712d2346370
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Sat, 18 Dec 2021 18:22:45 +1100

cmd/recursor: return error when no more servers to ask

So we eturn SERVFAIL correctly to clients, the same way that
Cloudflare, quad9 et al. do.

</content>
</entry>
<entry>
<id>2cf560f78905b6f035e5eb06dfeae712d2346370</id>
<published>2021-12-18T07:22:10Z</published>
<updated>2021-12-18T07:22:10Z</updated>
<title type="text">cmd/recursor: test resolving a wrongly delegated domain</title>
<link rel="alternate" type="text/html" href="commit/2cf560f78905b6f035e5eb06dfeae712d2346370.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 2cf560f78905b6f035e5eb06dfeae712d2346370
parent 769cb642185672c6028e5169628823cbdffcf718
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Sat, 18 Dec 2021 18:22:10 +1100

cmd/recursor: test resolving a wrongly delegated domain

</content>
</entry>
<entry>
<id>769cb642185672c6028e5169628823cbdffcf718</id>
<published>2021-12-18T04:10:24Z</published>
<updated>2021-12-18T04:10:24Z</updated>
<title type="text">cmd/recursor: only filter matching RRs for cache when needed</title>
<link rel="alternate" type="text/html" href="commit/769cb642185672c6028e5169628823cbdffcf718.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 769cb642185672c6028e5169628823cbdffcf718
parent 590fd1b7ff6f75bd5afaea2e2db06d8063841c17
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Sat, 18 Dec 2021 15:10:24 +1100

cmd/recursor: only filter matching RRs for cache when needed

</content>
</entry>
<entry>
<id>590fd1b7ff6f75bd5afaea2e2db06d8063841c17</id>
<published>2021-12-18T04:08:54Z</published>
<updated>2021-12-18T04:08:54Z</updated>
<title type="text">cmd/recursor: comments on caching records</title>
<link rel="alternate" type="text/html" href="commit/590fd1b7ff6f75bd5afaea2e2db06d8063841c17.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 590fd1b7ff6f75bd5afaea2e2db06d8063841c17
parent b141f1193309066d69c8a1759da0d6cf4d6d60b7
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Sat, 18 Dec 2021 15:08:54 +1100

cmd/recursor: comments on caching records

With an explanation of why we lookup before we insert into the cache

</content>
</entry>
<entry>
<id>b141f1193309066d69c8a1759da0d6cf4d6d60b7</id>
<published>2021-12-18T03:49:52Z</published>
<updated>2021-12-18T03:49:52Z</updated>
<title type="text">gofmt</title>
<link rel="alternate" type="text/html" href="commit/b141f1193309066d69c8a1759da0d6cf4d6d60b7.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit b141f1193309066d69c8a1759da0d6cf4d6d60b7
parent 9ecb07389b456761ee8a4e23e62be9f58b030937
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Sat, 18 Dec 2021 14:49:52 +1100

gofmt

</content>
</entry>
<entry>
<id>9ecb07389b456761ee8a4e23e62be9f58b030937</id>
<published>2021-12-18T03:37:40Z</published>
<updated>2021-12-18T03:43:29Z</updated>
<title type="text">doc: tutorial with the even simpler Ask function</title>
<link rel="alternate" type="text/html" href="commit/9ecb07389b456761ee8a4e23e62be9f58b030937.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 9ecb07389b456761ee8a4e23e62be9f58b030937
parent dc137f704dec33e5b5ab4cdb9548bb3b0d5bee3d
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Sat, 18 Dec 2021 14:37:40 +1100

doc: tutorial with the even simpler Ask function

that is the simplest operation, not Exchange (anymore)!

</content>
</entry>
<entry>
<id>dc137f704dec33e5b5ab4cdb9548bb3b0d5bee3d</id>
<published>2021-12-18T03:21:16Z</published>
<updated>2021-12-18T03:26:21Z</updated>
<title type="text">cmd/recursor: bail out on query loop</title>
<link rel="alternate" type="text/html" href="commit/dc137f704dec33e5b5ab4cdb9548bb3b0d5bee3d.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit dc137f704dec33e5b5ab4cdb9548bb3b0d5bee3d
parent d5834ac9c24e2b94ddd01468976b08de9bb90ce8
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Sat, 18 Dec 2021 14:21:16 +1100

cmd/recursor: bail out on query loop

Pretty easy fix: just keep track of where we&#39;re up to each time we
call resolve().

Fixes: https://todo.sr.ht/~otl/dns/4

</content>
</entry>
<entry>
<id>d5834ac9c24e2b94ddd01468976b08de9bb90ce8</id>
<published>2021-12-18T03:08:44Z</published>
<updated>2021-12-18T03:14:22Z</updated>
<title type="text">cmd/recursor: rewrite cache and recursor algorithm</title>
<link rel="alternate" type="text/html" href="commit/d5834ac9c24e2b94ddd01468976b08de9bb90ce8.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit d5834ac9c24e2b94ddd01468976b08de9bb90ce8
parent 16fb0dea8a6bd2b750ffd7f706401125f18d222a
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Sat, 18 Dec 2021 14:08:44 +1100

cmd/recursor: rewrite cache and recursor algorithm

Now we only ever send queries to nameservers, not just things we
happen to find in the additional section of a reply.
This change also does caching more nicely; cache any records that we
get from nameservers. Authoritative answers get priority.
Fixes: https://todo.sr.ht/~otl/dns/4

</content>
</entry>
<entry>
<id>16fb0dea8a6bd2b750ffd7f706401125f18d222a</id>
<published>2021-12-17T08:36:58Z</published>
<updated>2021-12-17T08:36:58Z</updated>
<title type="text">recursor: set more correct header bits in response</title>
<link rel="alternate" type="text/html" href="commit/16fb0dea8a6bd2b750ffd7f706401125f18d222a.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 16fb0dea8a6bd2b750ffd7f706401125f18d222a
parent a7c06b85bf15297629c13f8aae6cf51c828119b2
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Fri, 17 Dec 2021 19:36:58 +1100

recursor: set more correct header bits in response

This is what quad9 and google&#39;s dns resolver do

</content>
</entry>
<entry>
<id>a7c06b85bf15297629c13f8aae6cf51c828119b2</id>
<published>2021-12-17T08:25:20Z</published>
<updated>2021-12-17T08:26:13Z</updated>
<title type="text">recursor: actually, move recursive stuff back to cmd</title>
<link rel="alternate" type="text/html" href="commit/a7c06b85bf15297629c13f8aae6cf51c828119b2.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit a7c06b85bf15297629c13f8aae6cf51c828119b2
parent 2c109646ee0be071d39acc68f8cda66157d37582
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Fri, 17 Dec 2021 19:25:20 +1100

recursor: actually, move recursive stuff back to cmd

it&#39;s too specific to the implementation of a recursive resolver.
More stuff will be added there later I reckon.

</content>
</entry>
<entry>
<id>2c109646ee0be071d39acc68f8cda66157d37582</id>
<published>2021-12-17T07:40:58Z</published>
<updated>2021-12-17T07:40:58Z</updated>
<title type="text">recursor: reject more invalid messages</title>
<link rel="alternate" type="text/html" href="commit/2c109646ee0be071d39acc68f8cda66157d37582.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 2c109646ee0be071d39acc68f8cda66157d37582
parent 7e5b66014d8e51608b3c909ab643e1f91f12b8db
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Fri, 17 Dec 2021 18:40:58 +1100

recursor: reject more invalid messages

</content>
</entry>
<entry>
<id>7e5b66014d8e51608b3c909ab643e1f91f12b8db</id>
<published>2021-12-16T12:29:11Z</published>
<updated>2021-12-16T12:29:11Z</updated>
<title type="text">More tests</title>
<link rel="alternate" type="text/html" href="commit/7e5b66014d8e51608b3c909ab643e1f91f12b8db.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 7e5b66014d8e51608b3c909ab643e1f91f12b8db
parent 20fd186cb05aed778db0ee7d84c3e413e3ad68fe
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Thu, 16 Dec 2021 23:29:11 +1100

More tests

</content>
</entry>
<entry>
<id>20fd186cb05aed778db0ee7d84c3e413e3ad68fe</id>
<published>2021-12-16T12:04:02Z</published>
<updated>2021-12-16T12:04:02Z</updated>
<title type="text">dns: error on receiving random messages</title>
<link rel="alternate" type="text/html" href="commit/20fd186cb05aed778db0ee7d84c3e413e3ad68fe.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 20fd186cb05aed778db0ee7d84c3e413e3ad68fe
parent 521607802a026aae130395eb147b81d480b94e34
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Thu, 16 Dec 2021 23:04:02 +1100

dns: error on receiving random messages

Caller can handle the error appropriately I reckon...

</content>
</entry>
<entry>
<id>521607802a026aae130395eb147b81d480b94e34</id>
<published>2021-12-16T09:11:37Z</published>
<updated>2021-12-16T09:11:37Z</updated>
<title type="text">dns: Separate sending messages from sending bytes</title>
<link rel="alternate" type="text/html" href="commit/521607802a026aae130395eb147b81d480b94e34.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 521607802a026aae130395eb147b81d480b94e34
parent 554ced8329b2f5a7abf40a2131cf5e869c1e17d4
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Thu, 16 Dec 2021 20:11:37 +1100

dns: Separate sending messages from sending bytes

That made it easy to then let us ResponseWriter to implement io.Writer

</content>
</entry>
<entry>
<id>554ced8329b2f5a7abf40a2131cf5e869c1e17d4</id>
<published>2021-12-16T07:49:40Z</published>
<updated>2021-12-16T07:49:40Z</updated>
<title type="text">dns: cleaner error handling on send packet</title>
<link rel="alternate" type="text/html" href="commit/554ced8329b2f5a7abf40a2131cf5e869c1e17d4.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 554ced8329b2f5a7abf40a2131cf5e869c1e17d4
parent a5e7854c436639d68f9ccb98f3168d94cdd5eb0b
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Thu, 16 Dec 2021 18:49:40 +1100

dns: cleaner error handling on send packet

</content>
</entry>
<entry>
<id>a5e7854c436639d68f9ccb98f3168d94cdd5eb0b</id>
<published>2021-12-16T07:03:31Z</published>
<updated>2021-12-16T07:03:31Z</updated>
<title type="text">dns: Move recursive resolution functions into package</title>
<link rel="alternate" type="text/html" href="commit/a5e7854c436639d68f9ccb98f3168d94cdd5eb0b.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit a5e7854c436639d68f9ccb98f3168d94cdd5eb0b
parent ded9109ce8770cd39b01c1fb5a8afdc1bd1fc335
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Thu, 16 Dec 2021 18:03:31 +1100

dns: Move recursive resolution functions into package

They seem generic enough to be in the package rather than in the
server implementation - ignoring the cache, of course!

</content>
</entry>
<entry>
<id>ded9109ce8770cd39b01c1fb5a8afdc1bd1fc335</id>
<published>2021-12-16T03:22:12Z</published>
<updated>2021-12-16T03:22:12Z</updated>
<title type="text">New Ask functions</title>
<link rel="alternate" type="text/html" href="commit/ded9109ce8770cd39b01c1fb5a8afdc1bd1fc335.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit ded9109ce8770cd39b01c1fb5a8afdc1bd1fc335
parent 0be319b95e9008dcc63694c16025f23e90e74300
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Thu, 16 Dec 2021 14:22:12 +1100

New Ask functions

These let us specify just a question without needing to worry about
the entire DNS message structure.

</content>
</entry>
<entry>
<id>0be319b95e9008dcc63694c16025f23e90e74300</id>
<published>2021-12-14T03:32:17Z</published>
<updated>2021-12-14T03:32:17Z</updated>
<title type="text">cmd/recursor: cache empty answers too</title>
<link rel="alternate" type="text/html" href="commit/0be319b95e9008dcc63694c16025f23e90e74300.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 0be319b95e9008dcc63694c16025f23e90e74300
parent 3a23ded8a9048c791d17b7cc06e978412c4c4973
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Tue, 14 Dec 2021 14:32:17 +1100

cmd/recursor: cache empty answers too

</content>
</entry>
<entry>
<id>3a23ded8a9048c791d17b7cc06e978412c4c4973</id>
<published>2021-12-14T01:37:30Z</published>
<updated>2021-12-14T01:37:30Z</updated>
<title type="text">cmd/recursor: early return on authoritative flag</title>
<link rel="alternate" type="text/html" href="commit/3a23ded8a9048c791d17b7cc06e978412c4c4973.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 3a23ded8a9048c791d17b7cc06e978412c4c4973
parent 3b6333ee3bb41ffb8165a098957014d84fe3d565
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Tue, 14 Dec 2021 12:37:30 +1100

cmd/recursor: early return on authoritative flag

Because we have an authoritative answer, so that means it&#39;s time to
stop the lookup and return the result!

</content>
</entry>
<entry>
<id>3b6333ee3bb41ffb8165a098957014d84fe3d565</id>
<published>2021-12-14T01:08:38Z</published>
<updated>2021-12-14T01:08:38Z</updated>
<title type="text">cmd/recursor: early return on NXDOMAIN, early break on hints</title>
<link rel="alternate" type="text/html" href="commit/3b6333ee3bb41ffb8165a098957014d84fe3d565.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 3b6333ee3bb41ffb8165a098957014d84fe3d565
parent 11f7c1c6cd3a633c23b4f79de0712ad7a21fe302
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Tue, 14 Dec 2021 12:08:38 +1100

cmd/recursor: early return on NXDOMAIN, early break on hints

</content>
</entry>
<entry>
<id>11f7c1c6cd3a633c23b4f79de0712ad7a21fe302</id>
<published>2021-12-14T00:20:31Z</published>
<updated>2021-12-14T00:20:31Z</updated>
<title type="text">cmd/recursor: use net.JoinHostPort to make a dial string</title>
<link rel="alternate" type="text/html" href="commit/11f7c1c6cd3a633c23b4f79de0712ad7a21fe302.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 11f7c1c6cd3a633c23b4f79de0712ad7a21fe302
parent 1f9c5f7d3e3cb82ed12d1f801522d6d31318d5a0
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Tue, 14 Dec 2021 11:20:31 +1100

cmd/recursor: use net.JoinHostPort to make a dial string

don&#39;t roll our own

</content>
</entry>
<entry>
<id>1f9c5f7d3e3cb82ed12d1f801522d6d31318d5a0</id>
<published>2021-12-13T14:43:43Z</published>
<updated>2021-12-13T14:43:43Z</updated>
<title type="text">cmd: initial commit of a recursive resolver</title>
<link rel="alternate" type="text/html" href="commit/1f9c5f7d3e3cb82ed12d1f801522d6d31318d5a0.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 1f9c5f7d3e3cb82ed12d1f801522d6d31318d5a0
parent 20437cba892afb84e1f0ee38f0430ff98f4796d8
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Tue, 14 Dec 2021 01:43:43 +1100

cmd: initial commit of a recursive resolver

</content>
</entry>
<entry>
<id>20437cba892afb84e1f0ee38f0430ff98f4796d8</id>
<published>2021-12-12T09:35:59Z</published>
<updated>2021-12-12T09:35:59Z</updated>
<title type="text">New import path olowe.co</title>
<link rel="alternate" type="text/html" href="commit/20437cba892afb84e1f0ee38f0430ff98f4796d8.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 20437cba892afb84e1f0ee38f0430ff98f4796d8
parent 278edeb3778ea102ba404c672b2b0fc325c4e99c
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Sun, 12 Dec 2021 20:35:59 +1100

New import path olowe.co

No vendor lock-in

</content>
</entry>
<entry>
<id>278edeb3778ea102ba404c672b2b0fc325c4e99c</id>
<published>2021-12-12T02:17:49Z</published>
<updated>2021-12-12T02:17:49Z</updated>
<title type="text">doc: use rfc5737 documentation IP addresses</title>
<link rel="alternate" type="text/html" href="commit/278edeb3778ea102ba404c672b2b0fc325c4e99c.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 278edeb3778ea102ba404c672b2b0fc325c4e99c
parent 4a855f830665972ffa0869e3f736e0c38cc650f9
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Sun, 12 Dec 2021 13:17:49 +1100

doc: use rfc5737 documentation IP addresses

</content>
</entry>
<entry>
<id>4a855f830665972ffa0869e3f736e0c38cc650f9</id>
<published>2021-12-12T01:53:50Z</published>
<updated>2021-12-12T01:53:50Z</updated>
<title type="text">release under ISC license</title>
<link rel="alternate" type="text/html" href="commit/4a855f830665972ffa0869e3f736e0c38cc650f9.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 4a855f830665972ffa0869e3f736e0c38cc650f9
parent ad190d6323ad7247346e80062588e43990bb8a8f
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Sun, 12 Dec 2021 12:53:50 +1100

release under ISC license

</content>
</entry>
<entry>
<id>ad190d6323ad7247346e80062588e43990bb8a8f</id>
<published>2021-12-12T01:43:37Z</published>
<updated>2021-12-12T01:43:37Z</updated>
<title type="text">doc: more Server documentation</title>
<link rel="alternate" type="text/html" href="commit/ad190d6323ad7247346e80062588e43990bb8a8f.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit ad190d6323ad7247346e80062588e43990bb8a8f
parent 9f874ebabf29b3b405b3dc9f372a3817316c0ce7
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Sun, 12 Dec 2021 12:43:37 +1100

doc: more Server documentation

</content>
</entry>
<entry>
<id>9f874ebabf29b3b405b3dc9f372a3817316c0ce7</id>
<published>2021-12-11T20:49:00Z</published>
<updated>2021-12-11T20:49:00Z</updated>
<title type="text">doc: minor wording</title>
<link rel="alternate" type="text/html" href="commit/9f874ebabf29b3b405b3dc9f372a3817316c0ce7.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 9f874ebabf29b3b405b3dc9f372a3817316c0ce7
parent 34b7ff6848bbacc4e57778693394019c3dcc6fbc
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Sun, 12 Dec 2021 07:49:00 +1100

doc: minor wording

</content>
</entry>
<entry>
<id>34b7ff6848bbacc4e57778693394019c3dcc6fbc</id>
<published>2021-12-11T20:45:48Z</published>
<updated>2021-12-11T20:45:48Z</updated>
<title type="text">shorter server test error handling</title>
<link rel="alternate" type="text/html" href="commit/34b7ff6848bbacc4e57778693394019c3dcc6fbc.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 34b7ff6848bbacc4e57778693394019c3dcc6fbc
parent e51fa8976c97e8055eb8be271a3742833c887115
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Sun, 12 Dec 2021 07:45:48 +1100

shorter server test error handling

Because we&#39;re not really handling the error, we&#39;re just bailing out

</content>
</entry>
<entry>
<id>e51fa8976c97e8055eb8be271a3742833c887115</id>
<published>2021-12-11T20:41:04Z</published>
<updated>2021-12-11T20:41:04Z</updated>
<title type="text">Initial package documentation</title>
<link rel="alternate" type="text/html" href="commit/e51fa8976c97e8055eb8be271a3742833c887115.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit e51fa8976c97e8055eb8be271a3742833c887115
parent e118827ab70e6a4b5e60cd6b2d9faca1c579d5c8
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Sun, 12 Dec 2021 07:41:04 +1100

Initial package documentation

</content>
</entry>
<entry>
<id>e118827ab70e6a4b5e60cd6b2d9faca1c579d5c8</id>
<published>2021-12-11T19:14:22Z</published>
<updated>2021-12-11T19:24:15Z</updated>
<title type="text">Document some exported symbols</title>
<link rel="alternate" type="text/html" href="commit/e118827ab70e6a4b5e60cd6b2d9faca1c579d5c8.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit e118827ab70e6a4b5e60cd6b2d9faca1c579d5c8
parent a978f917d391a3e682f3931a985c1aa85cf5bbf5
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Sun, 12 Dec 2021 06:14:22 +1100

Document some exported symbols

Still some functions to be documented.
Still no examples yet.

</content>
</entry>
<entry>
<id>a978f917d391a3e682f3931a985c1aa85cf5bbf5</id>
<published>2021-12-09T07:57:22Z</published>
<updated>2021-12-09T07:57:22Z</updated>
<title type="text">server: make default, empty server safe</title>
<link rel="alternate" type="text/html" href="commit/a978f917d391a3e682f3931a985c1aa85cf5bbf5.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit a978f917d391a3e682f3931a985c1aa85cf5bbf5
parent 0fc4e74ad9ea6060d49dfd2bb0369b798d10ade3
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Thu,  9 Dec 2021 18:57:22 +1100

server: make default, empty server safe

We won&#39;t get nil pointer derefs when someone doesn&#39;t set a Handler
function.
While here add a test for it

</content>
</entry>
<entry>
<id>0fc4e74ad9ea6060d49dfd2bb0369b798d10ade3</id>
<published>2021-12-09T07:09:36Z</published>
<updated>2021-12-09T07:09:36Z</updated>
<title type="text">dump</title>
<link rel="alternate" type="text/html" href="commit/0fc4e74ad9ea6060d49dfd2bb0369b798d10ade3.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 0fc4e74ad9ea6060d49dfd2bb0369b798d10ade3
parent f4835a3962d972a64a38ccdc989c49ab0020ffb6
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Thu,  9 Dec 2021 18:09:36 +1100

dump

</content>
</entry>
<entry>
<id>f4835a3962d972a64a38ccdc989c49ab0020ffb6</id>
<published>2021-11-22T05:03:11Z</published>
<updated>2021-11-22T05:04:38Z</updated>
<title type="text">docs: add READMEs, refer to online docs</title>
<link rel="alternate" type="text/html" href="commit/f4835a3962d972a64a38ccdc989c49ab0020ffb6.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit f4835a3962d972a64a38ccdc989c49ab0020ffb6
parent efd494bd5b7398121f3a56854b91384bd53f358e
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Mon, 22 Nov 2021 16:03:11 +1100

docs: add READMEs, refer to online docs

</content>
</entry>
<entry>
<id>efd494bd5b7398121f3a56854b91384bd53f358e</id>
<published>2021-11-20T01:32:40Z</published>
<updated>2021-11-20T01:32:40Z</updated>
<title type="text">cmd/dohproxy: add some configuration file tests</title>
<link rel="alternate" type="text/html" href="commit/efd494bd5b7398121f3a56854b91384bd53f358e.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit efd494bd5b7398121f3a56854b91384bd53f358e
parent 6b8f8a165e7b32c133ee48fc2233f91692db5d91
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Sat, 20 Nov 2021 12:32:40 +1100

cmd/dohproxy: add some configuration file tests

</content>
</entry>
<entry>
<id>6b8f8a165e7b32c133ee48fc2233f91692db5d91</id>
<published>2021-11-20T01:31:22Z</published>
<updated>2021-11-20T01:32:15Z</updated>
<title type="text">cmd/dohproxy: only ever read max dns message size</title>
<link rel="alternate" type="text/html" href="commit/6b8f8a165e7b32c133ee48fc2233f91692db5d91.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 6b8f8a165e7b32c133ee48fc2233f91692db5d91
parent 1c3a28b4e3d5fcd9374467eac2287607a1a8e669
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Sat, 20 Nov 2021 12:31:22 +1100

cmd/dohproxy: only ever read max dns message size

Even if content-length header is omitted.
While here remove unused constants.

</content>
</entry>
<entry>
<id>1c3a28b4e3d5fcd9374467eac2287607a1a8e669</id>
<published>2021-11-20T00:32:21Z</published>
<updated>2021-11-20T00:32:21Z</updated>
<title type="text">Use fancy bit operations to encode message length</title>
<link rel="alternate" type="text/html" href="commit/1c3a28b4e3d5fcd9374467eac2287607a1a8e669.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 1c3a28b4e3d5fcd9374467eac2287607a1a8e669
parent 2f4ad6437420a56d016b5d1ac5eb61c2a7234254
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Sat, 20 Nov 2021 11:32:21 +1100

Use fancy bit operations to encode message length

Instead of encoding/binary package. Removes that package dependency

</content>
</entry>
<entry>
<id>2f4ad6437420a56d016b5d1ac5eb61c2a7234254</id>
<published>2021-11-20T00:19:50Z</published>
<updated>2021-11-20T00:19:50Z</updated>
<title type="text">Use the message length field to only read that much</title>
<link rel="alternate" type="text/html" href="commit/2f4ad6437420a56d016b5d1ac5eb61c2a7234254.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 2f4ad6437420a56d016b5d1ac5eb61c2a7234254
parent c245affd0ab63714b15dc1e6bd67307059e8da4f
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Sat, 20 Nov 2021 11:19:50 +1100

Use the message length field to only read that much

Using io.ReadAll doesn&#39;t work properly. The socket has a queue that
may be entirely drained by this call, which means we could
accidentally read a bit of the next message if there is one in the
queue.

</content>
</entry>
<entry>
<id>c245affd0ab63714b15dc1e6bd67307059e8da4f</id>
<published>2021-11-19T02:35:11Z</published>
<updated>2021-11-19T02:35:11Z</updated>
<title type="text">read the entire DNS message over TCP, handle EOF</title>
<link rel="alternate" type="text/html" href="commit/c245affd0ab63714b15dc1e6bd67307059e8da4f.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit c245affd0ab63714b15dc1e6bd67307059e8da4f
parent fcbc0eaeb5ac159cd2b10e70e5deaae703cf5189
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Fri, 19 Nov 2021 13:35:11 +1100

read the entire DNS message over TCP, handle EOF

we were just reading 1024 bytes may or may not have contained the
whole message. And before we weren&#39;t even handling EOF from the
underlying connection. Now the io package handles it for us.

</content>
</entry>
<entry>
<id>fcbc0eaeb5ac159cd2b10e70e5deaae703cf5189</id>
<published>2021-11-19T01:58:15Z</published>
<updated>2021-11-19T01:58:15Z</updated>
<title type="text">error on receiving a message with the wrong message ID</title>
<link rel="alternate" type="text/html" href="commit/fcbc0eaeb5ac159cd2b10e70e5deaae703cf5189.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit fcbc0eaeb5ac159cd2b10e70e5deaae703cf5189
parent 692accac0fc8763da7b9063b1948fa08415b4b7f
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Fri, 19 Nov 2021 12:58:15 +1100

error on receiving a message with the wrong message ID

</content>
</entry>
<entry>
<id>692accac0fc8763da7b9063b1948fa08415b4b7f</id>
<published>2021-11-18T01:42:57Z</published>
<updated>2021-11-18T01:42:57Z</updated>
<title type="text">dohproxy: forward queries using DoT if set in config</title>
<link rel="alternate" type="text/html" href="commit/692accac0fc8763da7b9063b1948fa08415b4b7f.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 692accac0fc8763da7b9063b1948fa08415b4b7f
parent 015a48510c60210055aa9a6ac0ca5fa6d5678d74
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Thu, 18 Nov 2021 12:42:57 +1100

dohproxy: forward queries using DoT if set in config

</content>
</entry>
<entry>
<id>015a48510c60210055aa9a6ac0ca5fa6d5678d74</id>
<published>2021-11-18T01:05:57Z</published>
<updated>2021-11-18T01:42:44Z</updated>
<title type="text">Add config option to understand DNS-over-TLS forwarding</title>
<link rel="alternate" type="text/html" href="commit/015a48510c60210055aa9a6ac0ca5fa6d5678d74.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 015a48510c60210055aa9a6ac0ca5fa6d5678d74
parent a8959a402c8c0f2557c2a365ab5b3d83c2cfa11d
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Thu, 18 Nov 2021 12:05:57 +1100

Add config option to understand DNS-over-TLS forwarding

</content>
</entry>
<entry>
<id>a8959a402c8c0f2557c2a365ab5b3d83c2cfa11d</id>
<published>2021-11-17T07:50:47Z</published>
<updated>2021-11-17T07:50:47Z</updated>
<title type="text">oops</title>
<link rel="alternate" type="text/html" href="commit/a8959a402c8c0f2557c2a365ab5b3d83c2cfa11d.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit a8959a402c8c0f2557c2a365ab5b3d83c2cfa11d
parent 88787149cf89ee12e50156d2be193b2194e4052f
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Wed, 17 Nov 2021 18:50:47 +1100

oops

</content>
</entry>
<entry>
<id>88787149cf89ee12e50156d2be193b2194e4052f</id>
<published>2021-11-17T07:05:31Z</published>
<updated>2021-11-17T07:50:05Z</updated>
<title type="text">Seperate packet handling over UDP and TCP better</title>
<link rel="alternate" type="text/html" href="commit/88787149cf89ee12e50156d2be193b2194e4052f.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 88787149cf89ee12e50156d2be193b2194e4052f
parent b3a0993e1f1aff1ad84b2e0cd680e5697bfd17dc
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Wed, 17 Nov 2021 18:05:31 +1100

Seperate packet handling over UDP and TCP better

Because it&#39;s a stream versus just 1 packet so there&#39;s some tricky
handling that should be seperate for clarity

</content>
</entry>
<entry>
<id>b3a0993e1f1aff1ad84b2e0cd680e5697bfd17dc</id>
<published>2021-11-16T09:29:49Z</published>
<updated>2021-11-16T09:29:49Z</updated>
<title type="text">Remove testing files</title>
<link rel="alternate" type="text/html" href="commit/b3a0993e1f1aff1ad84b2e0cd680e5697bfd17dc.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit b3a0993e1f1aff1ad84b2e0cd680e5697bfd17dc
parent 217f4622afa63243080fe9f0fafc00f18d7d94e5
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Tue, 16 Nov 2021 20:29:49 +1100

Remove testing files

</content>
</entry>
<entry>
<id>217f4622afa63243080fe9f0fafc00f18d7d94e5</id>
<published>2021-11-16T09:28:32Z</published>
<updated>2021-11-16T09:28:32Z</updated>
<title type="text">Don&#39;t send an empty DoH response</title>
<link rel="alternate" type="text/html" href="commit/217f4622afa63243080fe9f0fafc00f18d7d94e5.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 217f4622afa63243080fe9f0fafc00f18d7d94e5
parent 66267fa01f36cd99f4b3ac53250a1b8cbd3e2568
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Tue, 16 Nov 2021 20:28:32 +1100

Don&#39;t send an empty DoH response

forgot to put in the early return

</content>
</entry>
<entry>
<id>66267fa01f36cd99f4b3ac53250a1b8cbd3e2568</id>
<published>2021-11-16T09:01:34Z</published>
<updated>2021-11-16T09:01:34Z</updated>
<title type="text">Support making DNS queries over TLS</title>
<link rel="alternate" type="text/html" href="commit/66267fa01f36cd99f4b3ac53250a1b8cbd3e2568.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 66267fa01f36cd99f4b3ac53250a1b8cbd3e2568
parent 1bcf9fa40865b1840d67029d990dcbfe61a43a23
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Tue, 16 Nov 2021 20:01:34 +1100

Support making DNS queries over TLS

Little gotcha is that TCP messages need to be prepended with
a 2-octet length field!

</content>
</entry>
<entry>
<id>1bcf9fa40865b1840d67029d990dcbfe61a43a23</id>
<published>2021-11-15T22:48:37Z</published>
<updated>2021-11-15T22:48:37Z</updated>
<title type="text">Move core DNS routines into the dns package</title>
<link rel="alternate" type="text/html" href="commit/1bcf9fa40865b1840d67029d990dcbfe61a43a23.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 1bcf9fa40865b1840d67029d990dcbfe61a43a23
parent 0500699332efdcf7796b1879af478f78f096d221
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Tue, 16 Nov 2021 09:48:37 +1100

Move core DNS routines into the dns package

because it doesn&#39;t really have anything to do with DNS over HTTPS

</content>
</entry>
<entry>
<id>0500699332efdcf7796b1879af478f78f096d221</id>
<published>2021-11-14T02:12:22Z</published>
<updated>2021-11-14T02:12:22Z</updated>
<title type="text">Log errors returned to clients to stdout too</title>
<link rel="alternate" type="text/html" href="commit/0500699332efdcf7796b1879af478f78f096d221.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 0500699332efdcf7796b1879af478f78f096d221
parent eae15e682554c49c592c049eb8b7d19f6631b245
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Sun, 14 Nov 2021 13:12:22 +1100

Log errors returned to clients to stdout too

</content>
</entry>
<entry>
<id>eae15e682554c49c592c049eb8b7d19f6631b245</id>
<published>2021-11-14T01:35:04Z</published>
<updated>2021-11-14T01:35:56Z</updated>
<title type="text">Guard against payloads larger than permitted by DoH spec</title>
<link rel="alternate" type="text/html" href="commit/eae15e682554c49c592c049eb8b7d19f6631b245.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit eae15e682554c49c592c049eb8b7d19f6631b245
parent b1bd5dc331f07d95b1cfcb9b3671fa1162fdd3c0
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Sun, 14 Nov 2021 12:35:04 +1100

Guard against payloads larger than permitted by DoH spec

This change just parses and checks the Content-Length header.
But requests may not always have Content-Length, so we need to
also simply not read any more than dns.MaxMsgSize bytes from the request body.

</content>
</entry>
<entry>
<id>b1bd5dc331f07d95b1cfcb9b3671fa1162fdd3c0</id>
<published>2021-11-14T00:31:20Z</published>
<updated>2021-11-14T00:31:20Z</updated>
<title type="text">Only forward DNS queries upstream</title>
<link rel="alternate" type="text/html" href="commit/b1bd5dc331f07d95b1cfcb9b3671fa1162fdd3c0.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit b1bd5dc331f07d95b1cfcb9b3671fa1162fdd3c0
parent 0a3ca79c8e36dc108fecf910524518063dadd56c
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Sun, 14 Nov 2021 11:31:20 +1100

Only forward DNS queries upstream

If someone made a POST request with any old bytes in the body we&#39;d forward that upstream regardless.
Validate stuff sent to us by parsing the DNS queries and packing, unpacking each, then forward

</content>
</entry>
<entry>
<id>0a3ca79c8e36dc108fecf910524518063dadd56c</id>
<published>2021-11-13T03:03:31Z</published>
<updated>2021-11-13T03:04:50Z</updated>
<title type="text">Make git.sr.ht/~otl/dns a Go package</title>
<link rel="alternate" type="text/html" href="commit/0a3ca79c8e36dc108fecf910524518063dadd56c.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 0a3ca79c8e36dc108fecf910524518063dadd56c
parent 8286582481dcaeaca322a57edebda5a492cf9b98
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Sat, 13 Nov 2021 14:03:31 +1100

Make git.sr.ht/~otl/dns a Go package

And rename dohtest to dohproxy. This thing is going live soon baby

</content>
</entry>
<entry>
<id>8286582481dcaeaca322a57edebda5a492cf9b98</id>
<published>2021-11-10T06:50:31Z</published>
<updated>2021-11-10T06:50:31Z</updated>
<title type="text">Do not process messages with bad Content-Type</title>
<link rel="alternate" type="text/html" href="commit/8286582481dcaeaca322a57edebda5a492cf9b98.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 8286582481dcaeaca322a57edebda5a492cf9b98
parent 06284f593e7c502d86b2f496e93d3dffb0705ba2
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Wed, 10 Nov 2021 17:50:31 +1100

Do not process messages with bad Content-Type

But if there is no media set, then precess it as a DNS message anyway.
This replicates the current behaviour of unbound

</content>
</entry>
<entry>
<id>06284f593e7c502d86b2f496e93d3dffb0705ba2</id>
<published>2021-11-10T06:26:40Z</published>
<updated>2021-11-10T06:28:27Z</updated>
<title type="text">Initial commit pls don&#39;t use this</title>
<link rel="alternate" type="text/html" href="commit/06284f593e7c502d86b2f496e93d3dffb0705ba2.html" />
<author>
<name>Oliver Lowe</name>
<email>o@olowe.co</email>
</author>
<content type="text">commit 06284f593e7c502d86b2f496e93d3dffb0705ba2
Author: Oliver Lowe &lt;o@olowe.co&gt;
Date:   Wed, 10 Nov 2021 17:26:40 +1100

Initial commit pls don&#39;t use this

</content>
</entry>
</feed>
