Eugene Bujak
571be68733
Validate certificates and update certificate statuses on launch as well.
2019-02-15 16:28:28 +03:00
Eugene Bujak
bdec98f18e
Properly calculate if certificate expires in 30 minutes or not.
2019-02-15 16:28:28 +03:00
Eugene Bujak
28df187012
/tls/configure -- restart HTTPS server if settings changed
...
Fixes not using new HTTPS certificate after submitting it.
2019-02-15 16:28:28 +03:00
Eugene Bujak
57a33654f7
Certificate that doesn't go through the chain is not fatal, just send the warning over json.
2019-02-15 16:28:28 +03:00
Eugene Bujak
30050bf278
Spin up an HTTPS server when certificates, port and private key are configured.
2019-02-15 16:28:28 +03:00
Eugene Bujak
5cbaeb82a8
Introduce /tls/validate and validateCertificates() that will also be used by /tls/configure
2019-02-15 16:28:28 +03:00
Eugene Bujak
876bec5a65
/tls/configure -- introduce unmarshalTLS() that transparently base64-decodes the certificate
2019-02-15 16:28:28 +03:00
Eugene Bujak
4b4faad9e8
Fix status for certificates not updating.
2019-02-15 16:28:28 +03:00
Eugene Bujak
0aeca6bbf5
Don't keep certificates and keys encoded with base64 in yaml config
2019-02-15 16:28:28 +03:00
Eugene Bujak
4a14c199d8
/tls/configure -- allow submitting empty certificates and keys to clear them out from config
2019-02-15 16:28:28 +03:00
Eugene Bujak
d42718465d
/tls/configure -- certificates/keys are now transferred encoded with base64
2019-02-15 16:28:28 +03:00
Eugene Bujak
4da55dc2aa
Fixup of previous commit -- fix build failure
2019-02-15 16:28:27 +03:00
Eugene Bujak
3d3e0784ea
tls/configure -- Backend implementation of parsing user certs
2019-02-15 16:28:27 +03:00
Eugene Bujak
c5b1105fc1
/tls/status -- Expand random stubs for separate statuses of certificate and key
2019-02-15 16:28:27 +03:00
Eugene Bujak
38869b22a6
tls/status -- make stubs add warning and status randomly
2019-02-15 16:28:27 +03:00
Ildar Kamalov
7451eb1346
Initial components for encryption settings
2019-02-15 16:28:27 +03:00
Eugene Bujak
8725c1df7a
Add stub OpenAPI methods
2019-02-15 16:28:26 +03:00
Andrey Meshkov
a40ddb094b
Fix review comments
2019-02-11 14:22:36 +03:00
Andrey Meshkov
9a03190a62
Fix #579
...
1. Added --workdir command-line argument that lets configure the working dir.
2. Made "dnsforward" use this workdir parameter when saving/reading querylog.
3. Reworked "dnsforward" -- moved http handlers out of there to control.go
2019-02-10 20:47:43 +03:00
Eugene Bujak
853582dade
/install/configure -- Don't fail if HTTP listen host and port don't change
2019-02-07 18:24:42 +03:00
Eugene Bujak
3a94080491
/install/get_addresses -- don't send link-local addresses
2019-02-07 18:24:42 +03:00
Andrey Meshkov
bb8d7c37bb
Minor cleanup, added strings, added more information to response when error occurs
2019-02-07 14:22:08 +03:00
Eugene Bujak
fe671152c2
get rid of go-spew and cleanup go.mod from unused packages
2019-02-06 20:50:17 +03:00
Eugene Bujak
398312cd80
Move installation of /install handlers into a separate optional function
2019-02-06 17:28:08 +03:00
Eugene Bujak
06a28a461d
/install/configure -- Rebind HTTP server when we get new host and port
2019-02-06 17:25:18 +03:00
Eugene Bujak
5abe5af707
/install/configure -- Start DNS server explicitly
2019-02-06 17:22:46 +03:00
Eugene Bujak
daae040f9c
Check if IP:port combinations are possible before returning OK on /install/configure
2019-02-06 17:22:46 +03:00
Eugene Bujak
f2b3c3a14c
/install/get_addresses -- made IP address omitempty
2019-02-06 17:21:23 +03:00
Eugene Bujak
d3e81c47f6
rename /install/ path names to be more fitting
2019-02-06 17:21:23 +03:00
Eugene Bujak
c14aff3dba
/install/get_default_addresses -- Remove subnet suffix from addresses
2019-02-06 17:21:23 +03:00
Eugene Bujak
d97c426646
Fill out port 80 if it's available, otherwise port 3000
2019-02-06 17:21:23 +03:00
Eugene Bujak
34e14930de
/install/get_default_addresses -- now it gives out list of interfaces
2019-02-06 17:21:23 +03:00
Eugene Bujak
302c3a767a
Initial implementation of welcome/firstrun/installer page in go backend
2019-02-06 17:21:23 +03:00
Eugene Bujak
f21aebd1cf
/install/get_default_addresses -- make fields lowercase
2019-02-06 17:17:38 +03:00
Eugene Bujak
c36a7895ad
Add install page API stubs
2019-02-06 17:17:38 +03:00
Andrey Meshkov
ec6b1f7c42
Added golangci-lint configuration and prepared for the integrattion
2019-01-25 20:13:57 +03:00
Andrey Meshkov
d078851246
gometalinter
2019-01-25 20:13:57 +03:00
Andrey Meshkov
246f726115
Fix #502
2019-01-04 21:22:22 +03:00
Eugene Bujak
368e2d1ebd
move log wrapper library outside into hmage/golibs/log
2018-12-29 19:12:45 +03:00
Eugene Bujak
d8802a9709
Use new log wrapper and add more functions to it.
2018-12-29 17:37:18 +03:00
Eugene Bujak
87b3c92f71
Add /dhcp/interfaces API call to list available network interfaces.
2018-12-28 18:26:56 +03:00
Eugene Bujak
9294c9ecb2
Add DHCP API stubs for JS development.
2018-12-28 18:26:56 +03:00
Andrey Meshkov
cc96593ebf
upd to 0.9.3, removed jedist1/xsecretbox from dependencies
2018-12-25 01:59:38 +03:00
Andrey Meshkov
e711f6e5fe
Start using dnsproxy
2018-12-24 15:19:52 +03:00
Eugene Bujak
0f5dd661f5
Add support for bootstrapping upstream DNS servers by hostname.
2018-12-06 00:22:20 +03:00
Eugene Bujak
e31905864b
Get rid of mentions of CoreDNS in code except for upgrading and in readme. Add config upgrade.
2018-12-05 21:08:43 +03:00
Eugene Bujak
f6942213c8
Use dnsforward for checking if upstream DNS server is working.
2018-12-05 19:17:17 +03:00
Eugene Bujak
e357620740
Plug correct stats handler functions.
2018-12-05 16:57:21 +03:00
Eugene Bujak
d27fd0488d
Move filter-related variables, types and methods to filter.go
2018-12-05 16:56:11 +03:00
Eugene Bujak
9c4b791621
coredns reload -> dnsServer.Reconfigure()
2018-12-05 16:56:11 +03:00
Eugene Bujak
ea1353422f
User rules -- hold them as a slice of strings, which is how dns forwarding server will expect them.
2018-12-05 16:54:56 +03:00
Eugene Bujak
6257ff123f
Fix gometalinter warnings
2018-11-28 13:38:19 +03:00
Eugene Bujak
70c5afd6a5
Restore Engrish function names to normal English.
2018-11-28 13:38:19 +03:00
Eugene Bujak
701fd10c1c
Protect against users deleting the filter ID's in the config file.
...
Incidentally, it also simplifies upgrade schema from 0 to 1.
2018-11-28 13:38:19 +03:00
Eugene Bujak
6cb991fe7f
Clean up some code -- reorganize some structs and unexport some consts.
2018-11-28 13:38:19 +03:00
Eugene Bujak
ec7efcc9d6
Move config upgrade to separate upgrade.go
2018-11-28 13:38:19 +03:00
Eugene Bujak
12a8011fb3
Get rid of unnecessary duplicate type coreDnsFilter.
2018-11-27 16:48:57 +03:00
Eugene Bujak
47e2a1004d
Remove IDE-specific noise from source code.
2018-11-27 16:05:43 +03:00
Eugene Bujak
2139bb9c79
Allow querying and changeing i18n language via API.
2018-11-21 20:44:20 +03:00
Andrey Meshkov
2e879896ff
Close test upstream
2018-11-06 00:52:27 +03:00
Andrey Meshkov
451922b858
Added bootstrap DNS to the config file
...
DNS healthcheck now uses the upstream package methods
2018-11-06 00:47:59 +03:00
Andrey Meshkov
484c0ceaff
Upstream plugin prototype
2018-11-01 14:45:32 +03:00
Andrey Meshkov
54bdacdde2
Fix review comments: NextFilterId collisions
2018-10-30 17:16:20 +03:00
Andrey Meshkov
591065aa3a
Added filterId to the querylog
...
Updated the openapi.yaml accordingly
Some minor refactoring/renaming
Fix other review comments
2018-10-30 12:24:59 +03:00
Andrey Meshkov
32d4e80c93
Fix #371 #421
...
Filters are now saved to a file
Also, they're loaded from the file on startup
Filter ID is not passed to the CoreDNS plugin config (server-side AG DNS must be changed accordingly)
Some minor refactoring, unused functions removed
2018-10-30 02:17:24 +03:00
Andrey Meshkov
abb51ddb8a
Add ErrAlreadyExists
2018-10-29 16:17:18 +03:00
A.J. Ruckman
b3ae247520
use keyed fields
2018-10-22 22:51:51 +03:00
A.J. Ruckman
b3840b5790
minor tweaks
2018-10-22 22:51:51 +03:00
Eugene Bujak
5437a9d3a6
Do not use port 8618, it's a leftover from a time when we had two binaries.
...
Should fix 378 but needs testing from users having the problem since couldn't reproduce it here yet.
2018-10-17 18:55:27 +03:00
Eugene Bujak
3e2a3afc52
Rename from 'Adguard DNS' to 'AdGuard Home'.
2018-10-15 16:02:19 +03:00
Eugene Bujak
bad88961e9
WIP -- single binary -- works, replies to DNS, but need to check what got broken
2018-10-12 17:11:57 +03:00
Eugene Bujak
751be05a31
API filtering/add_url -- accept JSON instead of name=value lines
2018-10-11 18:33:56 +03:00
Eugene Bujak
413228e6ec
API backend -- implement ability to turn toggle all protection in one go, helpful to temporarily disable all kinds of filtering
2018-10-10 20:13:03 +03:00
Eugene Bujak
903b20dcab
Remove dead code
2018-10-10 15:47:08 +03:00
Eugene Bujak
37f6d38c49
Implement online stats calculation in coredns plugin instead of scraping prometheus.
2018-10-09 04:45:05 +03:00
Eugene Bujak
4ecb84f9ad
Fix some lint warnings
2018-10-07 23:43:24 +03:00
Eugene Bujak
a2434d4574
coredns plugin -- Calculate top for domains, clients and blocked both from querylog and running requests.
...
This moves the functionality from frontend to coredns plugin.
2018-10-07 23:42:17 +03:00
Eugene Bujak
656d092ad6
if coredns unexpectedly quits, restart it
2018-10-07 02:21:27 +03:00
Eugene Bujak
2244c21b76
Fix race conditions found by go's race detector
2018-10-07 02:21:27 +03:00
Eugene Bujak
19e76b6938
Add API call to reset stats
2018-10-04 14:29:17 +03:00
Eugene Bujak
51ec58b0ce
Web UI -- persistent stats by writing them into stats.json at exit
2018-10-04 14:29:16 +03:00
Eugene Bujak
7d7360c700
Web UI API -- Give out 24-hour stat instead of last 3 minutes.
2018-10-03 22:44:50 +03:00
Eugene Bujak
7b7f713880
Be less noisy during long periods of time
2018-09-28 18:08:26 +03:00
Eugene Bujak
ff86d6b7dc
Set default servers to tls://1.1.1.1 and tls://1.0.0.1
...
Also add support for tls:// in webUI API
2018-09-26 17:47:23 +03:00
Eugene Bujak
a65a40c6be
Update /status to return currently set upstream DNS servers.
2018-09-25 19:53:36 +03:00
Eugene Bujak
bd0fa4cc4f
Fix 'index out of range' panic when adding a filter URL that has empty line in contents
2018-09-25 18:23:02 +03:00
Eugene Bujak
c3f6a96f2f
Add API endpoint to fetch version.json from github.io
2018-09-20 20:02:25 +03:00
Eugene Bujak
e733c19504
Implement API to test for upstream DNS servers.
2018-09-19 19:12:09 +03:00
Eugene Bujak
4548eb8d11
Implement simple basic auth.
...
Closes #326 .
2018-09-18 20:59:41 +03:00
Eugene Bujak
076c9de68e
Fix many lint warnings found by gometalinter
2018-09-14 18:40:05 +03:00
Eugene Bujak
5c6aa910ef
Fix a missed argument that breaks go test (which invokes go vet and fails if that fails)
2018-09-14 14:47:27 +03:00
Eugene Bujak
3b44efc8e3
/add_url -- it fetches the URL and checks if contents are valid filter, fails if it is not, and returns number of rules if it is
2018-09-14 04:33:54 +03:00
Eugene Bujak
7094ed4f28
Fixup of previous commit -- errand keystroke crept in
2018-09-07 17:59:24 +03:00
Eugene Bujak
f623c3d909
API /stats_top -- sort top entries by value
2018-09-07 17:50:03 +03:00
Eugene Bujak
8198b65f29
API /stats_top -- show only top entries for last 3 minutes
2018-09-07 17:49:33 +03:00
Eugene Bujak
04562dece3
Rewrite how historical stats are stored and calculated.
...
Closes #310 .
2018-09-06 02:11:36 +03:00
Eugene Bujak
fe397943d6
After filters were redownloaded and deemed to be fresh, tell coredns server to reload
2018-09-06 02:09:05 +03:00
Eugene Bujak
f2621c4a9a
Remove debug logging during checks if coredns is alive
2018-09-06 02:04:16 +03:00
Eugene Bujak
859f1590dd
Be more atomic during writing of files -- this prevents other processes from seeing empty or impartial files
2018-09-06 02:03:03 +03:00
Eugene Bujak
33fbccf0ba
Move starting of coredns server into separate function
2018-09-06 02:00:44 +03:00