| Age | Commit message (Collapse) | Author |
|
=== New features
* www: implement functionality to remove cache by record name
=== Bug fixes
* www: check for possible null on NameServers environment
* www: fix caches record type showing "undefined"
=== Chores
* all: fix format of all asciidoc files
* cmd/rescached: add command "embed" and to run in development mode
|
|
The idea is to be able to view all content of documentation inside the
_doc file using the following command:
_doc$ ciigo serve
|
|
This is to make the adoc files parsed and rendered correctly by
asciidocgo and asciidoc tools.
|
|
The CHANGELOG.adoc file is formatted using asciidoc markup.
So, to make the rendered HTML readable, it must adhere to the asciidoc
format, especially when formatting the list content.
|
|
|
|
Changes,
* lib/memfs: skip mount if the Root node has been initialized
* lib/http: remove field memfs.Options in ServerOptions
|
|
This save the memory size from 80 to 72 bytes (-8 bytes).
|
|
This two commands is used internally for development.
The "embed" command embed all files inside "_www" directory into
Go file "memfs_generate.go".
This command replace "internal/generate_memfs.go".
The "dev" command run the rescached server in development mode using
"cmd/rescached/rescached.cfg.test" as the configuration.
The "dev" command listen on DNS port 5350, so to prevent conflict with
live rescached server, we run script _bin/nft_dnstest_chain.sh to redirect
UDP and TCP requests from port 53 to port 5350.
|
|
In the web user interface (WUI), we have a button "Remove from cache"
that displayed per record, but somehow this feature is not implemented,
probably missing from commits due to rebase or I completely forgot about
it.
Anyway, this commit implement the feature to remove record from cache
by clicking the button. On success, it will remove the removed record
from search result.
Fix #10
|
|
|
|
Due to refactoring on DNS library, we forgot to rename the field QType
to RType on the frontend. This cause the record type on caches showed
on the page as "undefined".
|
|
Previously, the options for HTTP server initialized internally, which
make it uneasy to changes the default rescached instance when running
in development mode.
This commit move the HTTP server initialization inside the Environment
init method. If its nil, the init will set the default HTTP server
options along with the Memfs.
|
|
This minimize storage size allocated by
* hostBlocks: from 88 to 80 bytes (-8 bytes)
* Environment: from 344 to 288 bytes (-56 bytes)
|
|
Previously, we initialize the rescached Server by passing the
path to configuration file and initialize the environment inside the
server.
This commit changes it to pass the instance of Environment. The idea
is to allow creating and running rescached Server without creating
configuration file first.
|
|
The latest share module remove the ContentEncoding from memfs
EmbedOptions.
This option turns out break the HTTP content negotiation [1] of
accept-encoding header, if the HTTP server does not handle it properly,
like in default Go HTTP server that we use on rescached server.
Update #10.
[1] https://developer.mozilla.org/en-US/docs/Web/HTTP/Content_negotiation
|
|
== 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.
|
|
This changes update the code based on refactoring on lib/dns package
on share module.
|
|
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.
|
|
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.
|
|
|
|
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.
|
|
|
|
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
|
|
== 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"
|
|
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.
|
|
Remove empty options in configurations to minimize confusion and
comment options that have default values.
|
|
The screenshots images point to the latest image in the master branch.
In the man page, the screenshot will be displayed as text.
|
|
|
|
Instead of using px use em unit instead.
|
|
If the RR value is object print the value as "key=value,...".
|
|
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.
|
|
While at it fix the binaries path on uninstall-common.
|
|
This is to allow user to install the rescached program through
`go install github.com/shuLhan/rescached-go/cmd/rescached`, without
using make.
|
|
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.
|
|
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.
|
|
|
|
The $(wildcard ...) statements seems either does not works on macOS
or it does not detech updated files.
|
|
When user open the rescached web interface, the front page will
render and refresh the list of non-local caches per 10 seconds.
|
|
|
|
Let the go tools handling the timestamp on source and test source
codes when running build and test.
|
|
This changes affect how the memfs.New and GoGenenerate called, does not
affect the user.
|
|
While at it, add more DNS RR types for displaying in the dashboard.
|
|
|
|
|
|
|
|
* all: generate new .SRCINFO
* PKGBUILD: remove asciidoctor from makedepends
|
|
|
|
* Add function to search and remove non-local caches
* Refactoring no how to create and remove record from hosts file
|
|
* 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.
|
|
|