summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-02-01Release rescached v2.1.0 (2019-02-01)v2.1.0Shulhan
== New Features - Change default parent nameservers to Cloudflare DNS. We believe in Cloudflare! Please read Cloudflare DNS policy for more information, https://developers.cloudflare.com/1.1.1.1/commitment-to-privacy/privacy-policy/privacy-policy/ == Enhancements - Improve response performance. Previously we can serve around 93k request per second (RPS). The new enhancement increase the RPS to around 115k. == Bug Fixes - Fix the example certificate and key for DNS over HTTPS - Fix the hosts.block destination file in script to update blocked host file - Fix response with different query type that may not get pruned
2019-02-01cmd/rescached: write heap profile when debugging runtimeShulhan
While at it, make the debugRuntime only run if debug value in options is greater than or equal to 2.
2019-02-01go.mod: update package "share" to v0.3.0Shulhan
2019-01-29rescached: do not remove cached requests if one is failShulhan
There are many possibilities that can cause one request failed, we cannot just assume that one failed request responsible for the rest of request.
2019-01-29rescached: add more unit test for some methodsShulhan
The unit test only for New, WritePID, LoadMasterDir, LoadHostsDir, and processRequest with UDP.
2019-01-29cmd/rescached: add function to debug runtime memory allocationShulhan
This commit also remove HTTP profiling.
2019-01-29rescached: remove manual HTTP FlushShulhan
This cause memory race condition when processing DNS over HTTPS
2019-01-29rescached: remove request pool FreeRequest statementShulhan
2019-01-29rescached: fix logging prefix to match with its methodShulhan
2019-01-29rescached: split the process request into its own methodShulhan
This is to simplify testing process request without using channel.
2019-01-29response: renama checkExpiration to isExpiredShulhan
2019-01-29rescached: move loading system hosts file to cmd/rescachedShulhan
The New function should only initialize the server, not loading any data from OS.
2019-01-29cacheworker: print pruned record only on debug modeShulhan
Also, print total number of pruned records at the end of pruning.
2019-01-29cachesrequest: sort the content by map's keys on StringShulhan
2019-01-29all: change default parent nameservers to Cloudflare DNSShulhan
We believe in Cloudflare! Please read Cloudflare DNS policy for more information, https://developers.cloudflare.com/1.1.1.1/commitment-to-privacy/privacy-policy/privacy-policy/
2019-01-29rescached: check and initialize options with default value if its invalidShulhan
Since the Options may always be correct, the New function does not need to return an error anymore.
2019-01-28cmd/rescached: move loading hosts and master directory to libraryShulhan
2019-01-28Update changelog for next releaseShulhan
2019-01-28all: fix the example certificate and key for DNS over HTTPSShulhan
Previously, the Common Name (CN) for certificate is not a valid local domain name, because we tested it using IP address instead of domain name. This commit use the "localhost" in certificate CN and in configuration for DoH in browser.
2019-01-28makefile: run linter on buildShulhan
2019-01-26all: fix capitalized errors stringShulhan
2019-01-26cmd/resolver: simplify if-else condition on mainShulhan
2019-01-26cmd/rescached: add package name to non-importable packagesShulhan
This is a fix for `goimports` warnings.
2019-01-26cacheworker: replace "for select" with "for range"Shulhan
2019-01-26all: suppress linter warnings on long linesShulhan
2019-01-26all: suppress linter warnings on known global variablesShulhan
2019-01-26cachesrequest: fix mispelling on String commentShulhan
2019-01-26caches: pre-allocated keys using map lengthShulhan
2019-01-26options: set default listen address to loopback address and timeout to 5Shulhan
While at it, minimize global constants usage if they only used once along program.
2019-01-26rescached: check for nil OptionsShulhan
This is good practice, even if we knew that is not possible, because cmd/rescached will always pass the Options from parsing config file.
2019-01-26cmd/rescached: remove type config, use rescached.Options directlyShulhan
2019-01-24cacheworker: remove updateQueue, call cacheWorker.update directlyShulhan
2019-01-24caches: replace sync.Map with plain map and MutexShulhan
The benchmark output give better performance using plain map with Mutex rather than using sync.Map.
2019-01-24cachesrequest: replace sync.Map with Go plain map with MutexShulhan
Using plain map with Mutex give better performance than sync.Map. Benchmark using dnstrace with sync.Map result in ~93k requests per second while plain map result in ~100k requests per second.
2019-01-24cacheworker: add unit test for cacheWorkerShulhan
2019-01-24caches: implement Stringer interface on cachesShulhan
2019-01-24cacheslist: implement Stringer interface on cachesListShulhan
2019-01-24listrequest: replace items method with StringShulhan
2019-01-24cachesrequest: replace items method with StringShulhan
The initial usage of items is to test the content of cachesRequest, which also can be checked by converting the content into String.
2019-01-24scripts: update list of blocked hostsShulhan
2019-01-23scripts: update the hosts.block destination fileShulhan
2019-01-23cacheworker: remove queue for pruning response in cacheShulhan
Instead of using channel, we call the remove function directly, which minimize number of channel used on program.
2019-01-23cacheworker: check for nil "res" parameter on removeShulhan
2019-01-23cacheworker: add message to list if its contains other typeShulhan
2019-01-23listresponse: print the response using String method of responseShulhan
This affect how the test assertion on listResponse work, instead of comparing each item in list, we compare them with the output of String.
2019-01-22cacheworker: rename add() method to upsert()Shulhan
This change also rename the addQueue field to upsertQueue to reflect the process inside the channel and inside the function.
2019-01-22cacheworker: check for empty msg parameter on add()Shulhan
2019-01-22cacheworker: remove unused cacheThreshold fieldShulhan
The field cacheThreshold is only used to initialize the cachesList.
2019-01-20cachesrequest: add unit test for all methodsShulhan
2019-01-20cachesrequest: check for empty key and req on push parametersShulhan