summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-12-04Release rescached v4.1.0 (2021-12-03)v4.1.0Shulhan
== Breaking changes * all: remove using tcp scheme in config and documentation Using TCP for parent name server is discouraged, because most of server disallow keeping the connection alive. The valid use case for TCP connection is when server received truncated UDP answer. Using UDP as parent scheme, will automatically assume that the server also capable of handling query in TCP. This is required when client (for example, your browser) re-send the query after receiving truncated UDP answer. Any query received by rescached through TCP will forwarded to the parent name server as TCP too, using the same address and port defined in one of UDP parent. While at it, use Cloudflare DNS server as default in configuration and as example in documentation. == New features * Add support to save and load caches to/from storage upon restart rescached now able to save and load caches to local storage upon restart. On POSIX, the caches is stored in /var/cache/rescached/rescached.gob, encoded using gob. Update #9 == Bug fixes * make the TCP forwarders as complementary of UDP The TCP forwarders only active when client send the DNS request as TCP. When the server receive that request it should also forward the request as TCP not as UDP to prevent the truncated response. Another use case for TCP is when the response is truncated, the client will send the query back through TCP connection. The server should forward this request using TCP instead of UDP. == Enhancements * remove the fallback name servers (NS) from server options The original idea of fallback NS is to send the query to the one define in resolv.conf, instead of using the one defined by user in ServerOptions NameServers, when an error occured. But, most of error usually caused by network (disconnected, time out), so re-sending query to fallback NS does not have any effect if the network it self is not working. This changes remove the unnecessary and complex fallback NS from server. * Do not cache truncated answer Previously only answer with non-zero response code is ignored. This changes ignore also answer where response header is truncated.
2021-12-04all: sync with latest share moduleShulhan
This changes update the code based on refactoring on lib/dns package on share module.
2021-11-14all: remove using tcp scheme in config and documentationShulhan
Using TCP for parent name server is discouraged, because most of server disallow keeping the connection alive. The valid use case for TCP connection is when server received truncated UDP answer. Using UDP as parent scheme, will automatically assume that the server also capable of handling query in TCP. This is required when client (for example, your browser) re-send the query after receiving truncated UDP answer. Any query received by rescached through TCP will forwarded to the parent name server as TCP too, using the same address and port defined in one of UDP parent. While at it, use Cloudflare DNS server as default in configuration and as example in documentation.
2021-11-14all: update share moduleShulhan
The update bring new features and enhancements for DNS server. * add support to save and load caches to/from storage rescached now able to save and load caches to local storage upon restart. On POSIX, the caches is stored in /var/cache/rescached/rescached.gob, encoded using gob. Update #9 * remove the fallback name servers (NS) from server options The original idea of fallback NS is to send the query to the one define in resolv.conf, instead of using the one defined by user in ServerOptions NameServers, when an error occured. But, most of error usually caused by network (disconnected, time out), so re-sending query to fallback NS does not have any effect if the network it self is not working. This changes remove the unnecessary and complex fallback NS from server. * do not cache truncated answer Previously only answer with non-zero response code is ignored. This changes ignore also answer where response header is truncated. * lib/dns: make the TCP forwarders as complementary of UDP The TCP forwarders only active when client send the DNS request as TCP. When the server receive that request it should also forward the request as TCP not as UDP to prevent the truncated response. Another use case for TCP is when the response is truncated, the client will send the query back through TCP connection. The server should forward this request using TCP instead of UDP.
2021-11-14cmd/resolver: fix redundant new linesShulhan
2021-11-14Makefile: add deploy task, to differentiate with deploy-personal-serverShulhan
Previously, the deploy task is to deploy the new version of rescached to my personal, public server. To make the task names consistent with macos (install-macos, deploy-macos, ...), we rename the deploy to deploy-personal-server; and the deploy task is default to deploying to Linux.
2021-11-06all: update module share to v0.31.0Shulhan
2021-07-13go.mod: update to latest share moduleShulhan
Changes affected by update, * lib/http: changes on Endpoint.Call function signature * lib/http: changes on CORS configuration * lib/test: changes on the Assert function signature
2021-01-26Release rescached v4.0.0 (2021-01-25)v4.0.0Shulhan
== New features Rescached now have a web user interface (wui) that can be accessed at http://127.0.0.1:5380. The interface can be used to monitoring caches, managing caches, environment, blocked hosts, internal hosts files, and zone files. == Breaking changes * The `rescached::dir.hosts` now default to "/etc/rescached/hosts.d" * The `rescached::dir.master` now default to "/etc/rescached/zone.d"
2021-01-25rescached: set tls.allow_insecure option to trueShulhan
Since the default parent is DNS over TLS, https://18.136.35.199, which is run using self-signed certificate, we need to allow_insecure to true to make the forward can connect without error.
2021-01-24all: update the configurations and expired certificatesShulhan
Remove empty options in configurations to minimize confusion and comment options that have default values.
2021-01-24README: add section to show the screenshots and usage of web interfaceShulhan
The screenshots images point to the latest image in the master branch. In the man page, the screenshot will be displayed as text.
2021-01-24Makefile: add deploy-macos as PHONY taskShulhan
2021-01-24_www: fix the layout of hosts.d and zone.dShulhan
Instead of using px use em unit instead.
2021-01-24zone.d: pretty print the resource record (RR) valueShulhan
If the RR value is object print the value as "key=value,...".
2021-01-24zone.d: fix creating resource recordShulhan
Instead of relying on event "oninput" get the value of each record values from the input element itself. Also, convert type RR Type and MX Preferences to integer before passing it to backend.
2021-01-23Makefile: remove old memfs file on cleanShulhan
While at it fix the binaries path on uninstall-common.
2021-01-23all: include the generated Go source codeShulhan
This is to allow user to install the rescached program through `go install github.com/shuLhan/rescached-go/cmd/rescached`, without using make.
2021-01-23_www: wrap the search input field with form elementShulhan
This is to allow user to trigger search by pressing Enter key on the text input field without clicking button Search. While at it, display information when no matched records found on search.
2021-01-23Makefile: add task to deploy and restart the rescahed service on macosShulhan
Executing `make deploy-macos` will build the binaries and deploy it to DIR_BIN and stop the current running rescached service to allow it to restart automatically.
2021-01-23_www: add function to clear search resultShulhan
2021-01-23Makefile: force generate the templateShulhan
The $(wildcard ...) statements seems either does not works on macOS or it does not detech updated files.
2021-01-22_www: display the list of caches in front pageShulhan
When user open the rescached web interface, the front page will render and refresh the list of non-local caches per 10 seconds.
2021-01-20all: rewrite the web user interface and the APIsShulhan
2021-01-13Makefile: simplify the tasksShulhan
Let the go tools handling the timestamp on source and test source codes when running build and test.
2021-01-12all: update with latest share modulesShulhan
This changes affect how the memfs.New and GoGenenerate called, does not affect the user.
2020-09-08_www/.../Dashboard: display the RR value as JSON stringifyShulhan
While at it, add more DNS RR types for displaying in the dashboard.
2020-09-07rescached.cfg.test: add configuration to test in developmentShulhan
2020-09-07rescached.cfg: set default parent to DNS over TLSShulhan
2020-09-07_www/../Dashboard: check for possible null on the AnswerShulhan
2020-09-07_AUR: update with latest commitShulhan
* all: generate new .SRCINFO * PKGBUILD: remove asciidoctor from makedepends
2020-09-06cmd/rescached: set default debug level to 0Shulhan
2020-09-06all: various changesShulhan
* Add function to search and remove non-local caches * Refactoring no how to create and remove record from hosts file
2020-09-05all: various fixes and clean upsShulhan
* Trim dot "." suffix on RR.Name before creating new one * Decrease the notification from default (5 seconds) to 3 seconds * Use the phrase "zone file" instead of "master file" * Update the SOA fields information to be less technical.
2020-09-04_www: update node modules dependenciesShulhan
2020-09-04_www: reorder the create record fields on Zone interfaceShulhan
Previously, the fields to create new record is name, type, and value. This commit move the type field to the top so when the type changes, the fields below it also changes according to its type. This is to simplify the field format for PTR record.
2020-09-04_www: make the hosts.d page has the same width with master.d pageShulhan
2020-09-04httpd: fix error return value when handling delete RRShulhan
2020-09-04_www: create separate form for handling create/update/delete SOA recordShulhan
Since each zone file only allow one SOA record, the form for creating, updating, or deleting the SOA record should be separated from others resource record.
2020-09-02all: handle saving the PTR record on Zone file editorShulhan
2020-09-02Makefile: set DIR_BIN, DIR_MAN, and DIR_RESCACHED on uninstall-macosShulhan
While at it, remove unused, OS specific, "coverbrowse" task.
2020-09-02resolverbench: check all answers value before printing unmatched responseShulhan
2020-09-02go.mod: update with latest share moduleShulhan
Fix hostname not converted to lowercase when parsing hosts files.
2020-09-02all: include the generated man pagesShulhan
This is to minimize user to install additional tools to build and install this software.
2020-08-25go.mod: update with latest share packageShulhan
Add second parameter to method PopulateCachesByXxx for clearity.
2020-08-25cmd/resolverbench: update with latest changes on lib/dnsShulhan
2020-08-23all: replace the internal hosts file with dns.HostsFileShulhan
2020-08-23.ignore: ignore the web UI public buildShulhan
2020-08-23all: replace hosts with dns.ResourceRecordShulhan
Both type hold the same fields, so use one from dns library.
2020-08-23_www: show notification on failed or successful responseShulhan