summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-09-07Release rescached v4.4.3 (2024-09-07)v4.4.3Shulhan
=== Enhancements * cmd/rescached: add sub command to print the current version Running "rescached version" now will print the program version. * support SVCB record (type 64) and HTTPS record (type 65) The latest update on "lib/dns" package support RFC 9460, SVCB record (type 64) and HTTPS record (type 65). === Chores * all: replace module "share" with "pakakeh.go" The module "share" has been moved to new repository at SourceHut and we rename it to make it more unique instead of common English words "share". * all: move repository to SourceHut The new repository and project page for rescached is at https://sr.ht/~shulhan/rescached .
2024-09-07go.mod: update all dependenciesShulhan
2024-09-07all: all: replace licensing format to REUSE.tomlShulhan
Using ".reuse/dep5" has been deprecated since REUSE v3.2.
2024-07-15_www/doc: update TODO listShulhan
Remove items that has been finished or not related to current implementation.
2024-07-15_www: inform that caches is auto refresh every 10 secondsShulhan
2024-07-15internal/cmd/www: an HTTP server for testing web UIShulhan
The web user interface can be run using existing rescached server by setting the SERVER value in class Rescached (_www/rescached.js).
2024-07-07_www: reformat all files using prettierShulhan
2024-07-06go.mod: update all dependenciesShulhan
2024-03-27go.mod: fix the go module versioningShulhan
Seems like the latest Go require the minor version to be explicitly defined [1][2]. [1] https://github.com/golang/go/issues/65568 [2] https://github.com/golang/go/issues/66175
2024-03-27_AUR: update the submodule to latest commitShulhan
2024-03-27go.mod: update module pakakeh.goShulhan
The latest update on "lib/dns" package support RFC 9460, SVCB record (type 64) and HTTPS record (type 65).
2024-03-27all: comply with lintersShulhan
Fix the code as recommended by linters, for example using context for HTTP client request, using 0600 for file permission, using string concatenation instead of fmt, using "%w" for error, and reorder defer.
2024-03-21cmd/rescached: add sub command to print the current versionShulhan
2024-03-21all: move repository to SourceHutShulhan
2024-03-21all: replace module "share" with "pakakeh.go"Shulhan
The module "share" has been moved to new repository at SourceHut and we rename it to make it more unique instead of common English words "share".
2024-02-04all: apply recommendation from linter reviveShulhan
2024-02-04go.mod: update dependenciesShulhan
2024-02-04_AUR: update AUR packageShulhan
2023-11-30go.mod: update share module and its dependenciesShulhan
2023-11-09Release rescached v4.4.2 (2023-11-10)v4.4.2Shulhan
* all: remove loading system hosts file:: Loading and caching system hosts file (for example, /etc/hosts in POSIX) will leaks internal hosts if the rescached server is open to public. The system hosts file are handled by nssswitch.conf "files" internally so no need to loading it. * cmd/resolver: replace "math/rand" with "crypto/rand":: The random number from "math/rand" is predictable if the seed is known. Even though the random number here is only for generating unique request ID, we still need to prevent this by using more secure random number.
2023-11-09_AUR: update for next releaseShulhan
2023-11-09_sys: update all man pagesShulhan
2023-11-09go.mod: update share and ciigo modulesShulhan
= Release share v0.50.1 (2023-11-05) This release bring many enhancements to "lib/memfs", a library for caching file system in memory. === Enhancements * lib/memfs: return nil in AddChild if file not exist * lib/memfs: quote the path in the returned error * lib/memfs: add method Child to Node * lib/memfs: call the Init method in the embedded file * lib/memfs: include empty directory * lib/memfs: re-scan directory content on Node’s Update = Release share v0.50.0 (2023-10-04) This release bring many enhancements thanks to linters like revive, fieldaligment, and shadow. This release also replace "math/rand.Seed" with "crypto/rand". Since Go 1.20 the "math/rand.Seed" is considered deprecated (the initial value of rand is seeded automatically, not zero). Now, it is the time to replace "math/rand" with more secure random number generator, from "crypto/rand". This changes affect tests in package "lib/email", "lib/http", and "lib/stmp". = Release ciigo v0.10.1 (2023-11-07) In this release, update on asciidoctor-go add new features to parse unordered list with '-' and some bug fixes related to rendering list. The update on share module fix for permission error when scanning using memfs and HTTP redirect for request to directory that does not end with slash.
2023-09-23cmd/resolver: replace "math/rand" with "crypto/rand"Shulhan
The random number from "math/rand" is predictable if the seed is known. Even though the random number here is only for generating unique request ID, we still need to prevent this by using more secure random number.
2023-09-23go.mod: update all dependencies and set Go mod version to 1.20Shulhan
The update on share module affect the following changes, * lib/dns: removing dns.ZoneRecords, replacing it with map[string][]*dns.ResourceRecord * lib/dns: file Name in Zone renamed to Origin * lib/dns: replace call to Caches.InternalPopulate with InternalPopulateZone that accept zone as parameter
2023-09-23Makefile: replace golangci-lint linterShulhan
The golangci-lint become unusable. Even running "make" on the their master branch does not works. Since I use go tip (master) on local, sometimes golangci-lint does not run. This changes replace golangci-lint with "go vet", fieldalignment and shadow (from x/tools), and revive.
2023-09-23all: remove loading system hosts fileShulhan
Loading and caching system hosts file (for example, /etc/hosts in POSIX) will leaks internal hosts if the rescached server is open to public. The system hosts file are handled by nssswitch.conf "files" internally so no need to loading it.
2023-04-01Release rescached v4.4.1 (2023-04-01)v4.4.1Shulhan
=== Enhancements * go.mod: set Go version to 1.19 and update share module The latest share module has several fixes and enhancements regarding DNS library, including * lib/dns: simplify unpackDomainName return value for end * lib/dns: use the packet length to derive current offset * lib/dns: handle zone file with CRLF line ending * lib/dns: allow parsing TXT rdata without quote in zone file * lib/dns: fix parsing SRV record from zone file * lib/dns: fix packing and unpacking resource record HINFO * lib/dns: fix packing, parsing, and saving MINFO resource data * _www/doc: update the index and resolver documentation
2023-04-01all: update go doc commentsShulhan
While at it, use "_" for unused parameter on methods.
2023-04-01all: remove ineffectual assignment to errShulhan
2023-04-01go.mod: set Go version to 1.19 and update share moduleShulhan
The latest share module has several fixes and enhancements regarding DNS library, including * lib/dns: simplify unpackDomainName return value for end * lib/dns: use the packet length to derive current offset * lib/dns: handle zone file with CRLF line ending * lib/dns: allow parsing TXT rdata without quote in zone file * lib/dns: fix parsing SRV record from zone file * lib/dns: fix packing and unpacking resource record HINFO * lib/dns: fix packing, parsing, and saving MINFO resource data
2023-03-03go.mod: update all dependenciesShulhan
2022-08-25_www/doc: update the index and resolver documentationShulhan
While at it, rename the README.adoc to README and made symlink to it as README.adoc.
2022-08-06Release rescached v4.4.0 (2022-08-06)v4.4.0Shulhan
This release refactoring the resolver command as CLI to rescached server. The resolver command now can manage environment, caches, hosts.d, and zone.d in the server; not just query.
2022-08-06_www/doc: format documentation for resolverShulhan
Some block code in the examples are not formatted correctly due to spaces.
2022-08-06_AUR: track latest changes in AUR submoduleShulhan
2022-08-06go.mod: update all dependenciesShulhan
2022-07-11test: wait for server before running the testShulhan
On build.kilabit.info, 2 out 5 building this repository return an error dial tcp 127.0.0.1:5381: connect: connection refused This is due to server is not ready accepting connection while the test for client is already running.
2022-06-12all: un-export HostsFiles and Zones fields on EnvironmentShulhan
Previously those fields exported because web client need it to initialize the content for /hosts.d and /zone.d pages. Since we now have HTTP API for that, web client can call get request to the respective API without depends on the environment.
2022-06-12_www: refactoring, various bug fixes and cleanupsShulhan
On refactoring, - standardize the method names on the rescached.js to match with the Client, for example prefixing block.d operations with Blockd. - use the GET /block.d, GET /hosts.d, GET /zone.d to fetch the resources instead of using GET /environment for all. On bug fixes, - fix updating SOA record on zone.d due to refactoring
2022-06-12all: trim the zone's name from request on HTTP API zone.d record deleteShulhan
When calling API for zone.d record delete, client send the fully qualified domain name on record to be deleted, but caches store only the subdomains internally. This cause the delete action fail, because no internal record match with request.
2022-06-12all: make GET /api/hosts.d to return list of hosts.d if name is emptyShulhan
This is to provide an HTTP API to fetch list of hosts.d files on the server.
2022-06-12all: fixes HTTP API for updating environmentShulhan
There are two issues when updating environment. One is on the front, where debug value is send as string. Another one is the back, where new environment overwrite all of options where it should only update only DNS server options and Debug fields.
2022-06-12_www/block.d: fix the variable names on hosts block.dShulhan
In the commit 0b92dbb8463d, we changes the field HostsBlocks in Environment to HostBlockd, but we forgot to changes the code in the web. This changes fix this issue.
2022-06-09go.mod: update to share module v0.38.0Shulhan
This changes affect the dns Server where all caches related methods has been moved to field Caches.
2022-06-09all: add integration tests for HTTP API related to block.dShulhan
The test is conducted by running the server and call the HTTP API using the Client methods.
2022-06-09all: change the HTTP API to update hosts in block.dShulhan
We have HTTP API to enable or disable block.d by batch by passing all block.d records. The name of HTTP API is /v2/block.d/update and this is duplicate with API to update the content of hosts in block.d. This changes fix this by creating new HTTP API /v2/block.d/fetch that fetch the latest hosts file from specific block.d by its name. While at it, - reformat html and JavaScript files using js-beautify - rename constants and methods for HTTP APIs - add and update comments for some HTTP APIs
2022-05-22all: use the exported Blockd type instead of interface{}Shulhan
Since we have exported the Blockd type from rescached package, any Blockd operation on the HTTP server and on the client on cmd/resolver can use it instead of using interface{}.
2022-05-22cmd/resolver: implement command to list hosts in block.dShulhan
Given the following command $ resolver block.d It will print all hosts in block.d in the JSON format, for example { "pgl.yoyo.org": { "Name": "pgl.yoyo.org", "URL": "http://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts\u0026showintro=0\u0026startdate[day]=\u0026startdate[month]=\u0026startdate[year]=\u0026mimetype=plaintext", "LastUpdated": "2022-04-20 01:54:30 WIB", "IsEnabled": false }, "someonewhocares.org": { "Name": "someonewhocares.org", "URL": "http://someonewhocares.org/hosts/hosts", "LastUpdated": "2022-04-20 00:53:22 WIB", "IsEnabled": false }, "winhelp2002.mvps.org": { "Name": "winhelp2002.mvps.org", "URL": "http://winhelp2002.mvps.org/hosts.txt", "LastUpdated": "2022-04-20 01:35:38 WIB", "IsEnabled": false } }
2022-05-22all: implement HTTP API to fetch list of block.dShulhan
Given the following request, GET /api/block.d It will return list of hosts in block.d as JSON format: { "data": { "<name>": <Blockd> ... } }