Cuong Manh Le
073af0f89c
Always use ctrld bootstrap nameserver for ResolverTypeOS
...
So in case no nameservers can be found, default OS resolver could still
resolve queries.
2023-09-22 18:37:54 +07:00
Cuong Manh Le
6028b8f186
internal/router/edgeos: use /etc/version for checking USG
...
Since mca-cli-op may not be available during boot time.
2023-09-22 18:37:04 +07:00
Cuong Manh Le
126477ef88
all: do not depend on vyatta-dhcpd service on EdgeOS
...
The only reason that forces ctrld to depend on vyatta-dhcpd service on
EdgeOS is allowing ctrld to watch lease files properly, because those
files may not be created at the time client info table initialized.
However, on some EdgeOS version, vyatta-dhcpd could not start with an
empty config file, causing restart loop itself, flooding systemd log,
making the router run out of memory.
To fix this, instead of depending on vyatta-dhcpd, we should just watch
for lease files creation, then adding them to watch list.
While at it, also making ctrld starts after nss-lookup, ensuring we have
a working DNS before starting ctrld.
2023-09-22 18:35:36 +07:00
Cuong Manh Le
13391fd469
Generating working default config in non-cd mode
...
Using the same approach as in cd mode, but do it only once when running
ctrld the first time, then the config will be re-used then.
While at it, also adding Dockerfile.debug for better troubleshooting
with alpine base image.
2023-09-22 18:34:46 +07:00
Cuong Manh Le
82e44b01af
Add hosts file as source for hostname resolver
2023-09-22 18:29:37 +07:00
Cuong Manh Le
e355fd70ab
Upgrading quic-go to v0.38.0
2023-09-22 18:28:36 +07:00
Cuong Manh Le
d5c171735e
internal/clientinfo: make ptr lookup failure log level WARN
2023-09-22 18:27:22 +07:00
Yegor S
b175368794
Merge pull request #83 from Control-D-Inc/issue-82
...
Use 1.20-bullseye in Dockerfile
2023-09-06 12:50:30 -04:00
Cuong Manh Le
bcf4c25ba8
Use 1.20-bullseye in Dockerfile
...
The current quic-go v0.32.0 could not be built with go 1.21, next
release of ctrld will upgrade it to latest version.
Fixes #82
2023-09-05 22:39:15 +07:00
Yegor S
11b09af76d
Merge pull request #78 from Control-D-Inc/add-missing-commits
...
Add missing commits
2023-08-30 10:51:00 -04:00
Yegor S
af0380a96a
Merge pull request #73 from Control-D-Inc/fix-missing-build-script
...
scripts: add missing build script
2023-08-30 10:50:30 -04:00
Cuong Manh Le
f39512b4c0
cmd/ctrld: only write to config file if listener config changed
...
Updates #149
2023-08-29 10:01:33 +07:00
Cuong Manh Le
7ce62ccaec
Validate DoH/DoH3 endpoint properly
...
When resolver type is doh/doh3, the endpoint must be a valid http url.
Updates #149
2023-08-29 10:01:06 +07:00
Cuong Manh Le
44c0a06996
scripts: add missing build script
2023-08-17 16:52:04 +07:00
Yegor S
f7d3db06c6
Update README.md
2023-08-15 12:03:25 -04:00
Yegor S
0ca37dc707
Merge pull request #68 from Control-D-Inc/release-branch-v1.3.0
...
Release branch v1.3.0
v1.3.0
2023-08-15 11:49:47 -04:00
Cuong Manh Le
2bcba7b578
cmd/ctrld: workaround staticcheck complain on non-Linux OSes
2023-08-15 18:22:38 +07:00
Cuong Manh Le
829e93c079
cmd: allow import/running ctrld as library
2023-08-15 18:22:38 +07:00
Cuong Manh Le
4896563e3c
Various improvements and bug fixes
...
- Watch more events for lease file changes
- Improving network up detection by using bootstrap IPv6 along side
IPv4 one.
- Emitting log to notice user that ctrld is starting.
- Using systemd wrapper to provide correct status.
- Restoring DNS on stop on Windows.
2023-08-14 21:22:11 +07:00
Cuong Manh Le
0c096d5f07
internal/router: make router.Cleanup idempotent
...
On routers where we want to wait for NTP by checking nvram key. Before
waiting, we clean up the router to ensure it's restored to original
state. However, router.Cleanup is not idempotent, causing dnsmasq
restarted. On tomato/ddwrt, restarting have no delay, and spawning new
dnsmasq process immediately. On merlin, somehow it takes time to spawn
new dnsmasq process, causing ctrld wrongly think there's no one
listening on port 53.
Fixing this by ensuring router.Cleanup is idempotent. While at it, also
adding "ntp_done" to nvram key, which is now using on latest ddwrt.
2023-08-14 21:22:11 +07:00
Yegor Sak
ab8f072388
Update README.md
2023-08-11 20:28:03 +07:00
Cuong Manh Le
32219e7d32
internal/router: wait ntp synced on Synology
2023-08-11 20:28:03 +07:00
Cuong Manh Le
d292e03d1b
Satisfying staticcheck linter
2023-08-10 00:33:42 +07:00
Cuong Manh Le
5dd6336953
internal/router/synology: define normal exit condition
2023-08-10 00:00:24 +07:00
Cuong Manh Le
854a244ebb
Fix restart command when ctrld service was already stopped
2023-08-09 23:57:52 +07:00
Cuong Manh Le
125b4b6077
cmd/ctrld: wait ctrld started during restart command
2023-08-09 23:57:41 +07:00
Cuong Manh Le
46e8d4fad7
cmd/ctrld: prevent race condition when ping socket control server
2023-08-09 23:57:30 +07:00
Cuong Manh Le
e5389ffecb
internal/clientinfo: use all possible source IP for listing clients
2023-08-09 23:57:20 +07:00
Cuong Manh Le
46509be8a0
cmd/ctrld: start service before restart on Windows
...
On Windows, calling s.Restart will fail if service is not running,
ensure ctrld is started before calling restart.
2023-08-09 23:57:08 +07:00
Cuong Manh Le
d3d2ed539f
cmd/ctrld: correct syscall.Errno for Windows
...
On Windows, the syscall error numbers are different, so correct the
value so we can detect right errors we want.
2023-08-09 23:56:55 +07:00
Cuong Manh Le
8496adc638
cmd/ctrld: make self-check process more resilient
2023-08-09 23:56:41 +07:00
Cuong Manh Le
e1d078a2c3
Ignoring RFC 1918 addresses for ControlD upstream
2023-08-09 23:56:31 +07:00
Cuong Manh Le
0dee7518c4
cmd/ctrld: validate UID during start command
2023-08-09 23:56:20 +07:00
Cuong Manh Le
774f07dd7f
internal/router: only do cleanup in cd mode on freebsd
2023-08-09 23:56:07 +07:00
Cuong Manh Le
c271896551
all: add support for provision token
2023-08-09 23:55:56 +07:00
Cuong Manh Le
82d887f52d
cmd/ctrld: preserve OS error when updating listener config
2023-08-09 23:55:45 +07:00
Cuong Manh Le
6e27f877ff
internal/clientinfo: use ptr cache when listing clients
2023-08-09 23:55:29 +07:00
Cuong Manh Le
39a2cab051
internal/clientinfo: only do self discover with client id
...
While at it, also ensure that client info table was initialized before
doing any lookup.
2023-08-09 23:55:13 +07:00
Cuong Manh Le
72d2f4e7e3
internal/controld: add support for parsing client id from raw UID
2023-08-09 23:54:44 +07:00
Cuong Manh Le
19bc44a7f3
all: prevent data race when accessing zerolog.Logger
2023-08-09 23:54:23 +07:00
Cuong Manh Le
59dc74ffbb
internal: record correct interfaces for queries from router on Firewalla
2023-08-09 23:54:23 +07:00
Cuong Manh Le
12c8ab696f
cmd/ctrld: use RFC1918 addresses as nameservers if required
2023-08-09 23:54:23 +07:00
Cuong Manh Le
28f32bd7e5
cmd/ctrld: use controlServer register method
2023-08-09 23:54:23 +07:00
Cuong Manh Le
6b43639be5
cmd/ctrld: wait until ctrld listener ready to do self-check
2023-08-09 23:54:23 +07:00
Cuong Manh Le
6be80e4827
internal/router: generalize freebsd-like router support
2023-08-09 23:54:23 +07:00
Cuong Manh Le
437fb1b16d
all: add clients list command to debug Mac discovery
2023-08-09 23:54:23 +07:00
Cuong Manh Le
61b6431b6e
cmd/ctrld: trim os version on freebsd
2023-08-09 23:54:23 +07:00
Cuong Manh Le
7ccecdd9f7
cmd/ctrld: add more debugging information when self-check failed
2023-08-09 23:54:23 +07:00
Cuong Manh Le
e43b2b5530
internal/clientinfo: add doc comments for mdns operations
...
While at it, also remove un-used channel argument of probe function.
2023-08-09 23:54:23 +07:00
Cuong Manh Le
2cd8b7e021
internal/clientinfo: remove dhcp from refresher list
...
dhcp lease files are watched separately using fsnotify, it does not need
to be in refresher list.
2023-08-09 23:54:23 +07:00