<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pakakeh.go/lib/dns/server_example_test.go, branch main</title>
<subtitle>Collections of packages and tools for working with Go programming language.</subtitle>
<id>http://git.kilabit.info/pakakeh.go/atom?h=main</id>
<link rel='self' href='http://git.kilabit.info/pakakeh.go/atom?h=main'/>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/'/>
<updated>2026-03-25T22:34:30Z</updated>
<entry>
<title>lib/dns: refactoring DoT and DoH to use address instead of port</title>
<updated>2026-03-25T22:34:30Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2026-03-25T22:34:30Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=5a765dc7f90c2ebc9a11cd79dcfbd8a8b8d99fcd'/>
<id>urn:sha1:5a765dc7f90c2ebc9a11cd79dcfbd8a8b8d99fcd</id>
<content type='text'>
Using port makes the IP address of DoT and DoH listen on the same
address with UDP.
If we set ListenAddress to 0.0.0.0 and TLS termination is handled
by proxy, this cause DoT and DoH will also listen on all
addresses.
</content>
</entry>
<entry>
<title>all: convert license and copyright to use SPDX identifiers</title>
<updated>2026-01-15T10:26:33Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2026-01-15T10:14:54Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=7db8c302e1396eda40cd6a1e57f58ed791448556'/>
<id>urn:sha1:7db8c302e1396eda40cd6a1e57f58ed791448556</id>
<content type='text'>
With help of spdxconv tool [1], we able to bulk update all files license
and copyright format to comply with SPDX formats.

[1] https://kilabit.info/project/spdxconv/
</content>
</entry>
<entry>
<title>lib/dns: move all caches operations from Server to Caches type</title>
<updated>2022-05-30T15:44:28Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2022-05-28T07:39:10Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=d3c7d2231f02167c33fdf27032c62d011d0992dc'/>
<id>urn:sha1:d3c7d2231f02167c33fdf27032c62d011d0992dc</id>
<content type='text'>
Previously all caches operation are tied to the Server type.

In order to separate the responsibilities between server and caches,
we move all caches operations to Cache type.
</content>
</entry>
<entry>
<title>all: rewrite all codes to use "var" instead of ":="</title>
<updated>2022-05-12T16:38:42Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2022-05-12T16:38:42Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=15f02872a61eaa33e217bbc120d8f6534c8f0ae4'/>
<id>urn:sha1:15f02872a61eaa33e217bbc120d8f6534c8f0ae4</id>
<content type='text'>
Using ":=" simplify the code but we lose the type.  For example,

  v := F()

The only way we know what the type of v is by inspecting the function
F.
Another disadvantages of using ":=" may cause extra variables
allocation where two or more variables with same type is declared
inside body of function where it could be only one.

While at it, we split the struct for test case into separate type.
</content>
</entry>
<entry>
<title>lib/dns: refactoring, change signature of client Lookup</title>
<updated>2021-11-15T18:27:48Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2021-11-15T18:27:48Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=339a047adea6c13d294460b9d77b9b48fadcb003'/>
<id>urn:sha1:339a047adea6c13d294460b9d77b9b48fadcb003</id>
<content type='text'>
Previously, Lookup() method on Client pass the question name, type, and
class as parameters.

This changes make those parameters into MessageQuestion.
</content>
</entry>
<entry>
<title>lib/dns: refactoring, introduce new type RecordClass</title>
<updated>2021-11-14T11:13:10Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2021-11-14T11:13:10Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=c2f3d1575ad29294ebadb9dd7ee6d7a06dc955ae'/>
<id>urn:sha1:c2f3d1575ad29294ebadb9dd7ee6d7a06dc955ae</id>
<content type='text'>
Previously, the record class is represented by uint16 using prefix
QueryClassXxx.

This changes make the record class to be an independent type, to make
code more strict (prevent passing invalid value), and readable.
</content>
</entry>
<entry>
<title>lib/dns: refactoring, create type RecordType to represent type of RR</title>
<updated>2021-11-14T10:52:52Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2021-11-14T10:46:02Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=3f02602db8cfe6fbb09d550ac723fc251eb81f1d'/>
<id>urn:sha1:3f02602db8cfe6fbb09d550ac723fc251eb81f1d</id>
<content type='text'>
Previously, we use uint16 to represent type for ResourceRecord Type or
Question type.

To make the code more strict, where parameter or return value, must be
expected as record type, we add new type to represent the RR type:
RecordType.

This changes also rename any variable name of QType or qtype to RType
or rtype because QType is misleading. The type defined the
ResourceRecord to be queried not only question.
</content>
</entry>
<entry>
<title>lib/dns: use snake case for file naming</title>
<updated>2021-11-13T07:40:47Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2021-11-11T17:19:22Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=f5691caf18928e3a4a5d282ebacf237640e872b3'/>
<id>urn:sha1:f5691caf18928e3a4a5d282ebacf237640e872b3</id>
<content type='text'>
Using snake case make the file naming more readable.
</content>
</entry>
</feed>
