Cuong Manh Le
e385547461
internal/net: fix wrong address when testing network up
2023-02-27 20:13:44 +07:00
Cuong Manh Le
83b551fb2d
internal/controld: check if ipv4 is available before connect to API
...
Updates #53
2023-02-27 20:13:42 +07:00
Cuong Manh Le
45f827a2c5
internal/controld: connect to API using ipv4 only
...
Connecting to API using ipv6 sometimes hang at TLS handshake, using ipv4
only so we can fetch the config more reliably.
Fixed #53
2023-02-27 19:54:52 +07:00
Cuong Manh Le
3218b5fac1
Add quic-free binaries in build pipeline
...
Updates #51
2023-02-27 19:54:18 +07:00
Cuong Manh Le
df514d15a5
Update quic-go to v0.32.0
...
Updates #51
2023-02-27 19:51:39 +07:00
Cuong Manh Le
50b0e5a4b0
cmd/ctrld: use proper exit codes for status command
...
While at it, disable sort commands, so help output will be in order.
Updates #48
2023-02-27 19:50:28 +07:00
Yegor S
6428ac23a0
Merge pull request #20 from Control-D-Inc/upx
...
Add upx to goreleaser builds
2023-02-14 14:09:13 -05:00
Yegor S
790cb773e2
Merge pull request #17 from Control-D-Inc/readme-badge
...
Add some badges to README.md
2023-02-13 11:52:36 -05:00
Yegor S
9dab097268
Merge pull request #10 from GiddyGoatGaming/patch-1
...
ci.yml: bump checkout -> v3 and setup-go-faster -> 1.8.0
2023-02-13 11:51:06 -05:00
Cuong Manh Le
f13f61592c
Add upx to goreleaser builds
...
Reducing the size of the final binaries, except for darwin, where the
packed binaries failed to run.
2023-02-13 21:58:45 +07:00
Cuong Manh Le
2f42fc055d
Add some badges to README.md
2023-02-08 00:53:16 +07:00
Yegor S
a08b39be16
Merge pull request #16 from Control-D-Inc/remove-darwin-from-regular-release
...
Remove darwin from regular builds
v1.1.0
2023-02-07 12:36:18 -05:00
Cuong Manh Le
d73ece9d9e
Remove darwin from regular builds
...
PR #13 add notarizing step for darwin, but forgot to remove darwin from
regular OS builds.
2023-02-08 00:21:15 +07:00
Yegor S
be6e2cc0a2
Merge pull request #14 from Control-D-Inc/cuonglm/fix-readme-conflicts
...
Remove conflicts marker in README.md
2023-02-07 11:54:13 -05:00
Cuong Manh Le
56d8c102e1
Remove conflicts marker in README.md
2023-02-07 23:22:12 +07:00
Yegor S
3602484109
Merge pull request #11 from Control-D-Inc/release-branch-v1.1.0
...
Release branch v1.1.0
2023-02-07 11:10:32 -05:00
Cuong Manh Le
0e09b45bca
cmd/ctrld: bump version to v1.1.0
2023-02-07 22:53:54 +07:00
Cuong Manh Le
8571580aae
cmd/ctrld: fatal if failed to get default iface name
...
So it left a chance for system service manager to bring up ctrld for us.
Without default iface name, ctrld could not work properly anyway.
2023-02-07 22:53:49 +07:00
Cuong Manh Le
d3fe2c730c
cmd/ctrld: surpress backoff logging message
2023-02-07 22:53:41 +07:00
Cuong Manh Le
318fec27de
cmd/ctrld: fatal loudly if listen failed
...
For address already in use error when listening, we have a workaround to
spawn a new listener on different port. However, if that case does not
match, we must fatal to notice the error to user.
2023-02-07 22:53:27 +07:00
Cuong Manh Le
beca95d5b9
cmd/ctrld: fix systemd dependencies config
...
See https://github.com/systemd/systemd/issues/22360
2023-02-07 22:53:14 +07:00
Yegor S
59619476ca
Merge pull request #13 from Control-D-Inc/goreleaser-macos-notarize
...
Add notarizing darwin binary with gon
2023-02-06 22:42:45 -05:00
Cuong Manh Le
31b30c52b1
Add notarizing darwin binary with gon
2023-02-07 09:34:42 +07:00
Cuong Manh Le
851f9b9742
all: fork tailscale Linux dns manager package
...
With modification to fit our use case.
2023-02-03 02:47:31 +07:00
Cuong Manh Le
b8772d7b4a
cmd/ctrld: log fatal if could not start the listener
2023-02-03 02:16:19 +07:00
Cuong Manh Le
eb0dd6235e
cmd/ctrld: use NetworkManager to disable DNS manager
...
Currently, ctrld force NetworkManager ignore auto DNS setup from DHCP
per connection. This does not work well, because an interface can be
attached to many connections. So if `ctrld` started with a connection,
then user connect to new one, the DNS configured by ctrld will be
override.
Instead, we can force NetworkManager not to manage DNS by:
- Using dns=none
- Set systemd-resolved=false
So NetworkManager won't attempt to send DNS setup to systemd-resolved,
leaving what ctrld set as-is.
2023-02-02 22:10:06 +07:00
Cuong Manh Le
1c2cd555bd
cmd/ctrld: ensure ctrld start after NetworkManager
2023-02-01 23:11:33 +07:00
Cuong Manh Le
8c47ffb5ec
cmd/ctrld: make NetworkManger ignore auto dns
...
So the DNS that set by ctrld won't be override on startup.
2023-02-01 23:11:33 +07:00
Cuong Manh Le
44bd580e48
cmd/ctrld: fix reset DNS when uninstalling
...
The "--iface" needs to be explicitly passed, otherwise, ctrld does not
know which interface to restore.
2023-02-01 23:11:33 +07:00
Cuong Manh Le
61156453b2
cmd/ctrld: workaround setting DNS issue on Linux
...
On some Ubuntu systems, we experiment with DNS is not set even though
systemd-resolved log indicates that it set them. To ensure the DNS will
be set, after setting them, double check the current DNS for interface
is actually the value was set, if not, attempting to set again.
While at it, also make sure the DNS is set when ctrld start on Linux.
2023-02-01 23:11:33 +07:00
Cuong Manh Le
37de5441c1
cmd/ctrld: silent DHCPv6 error
...
It's hard to imagine a system with IPv6 but not IPv4, so silent the
DHCPv6 error if any.
2023-02-01 23:11:33 +07:00
Cuong Manh Le
149941f17f
cmd/ctrld: do set/reset DNS only when start/stop/uninstall
2023-02-01 23:11:33 +07:00
Cuong Manh Le
4ea1e64795
all: make cache scope to upstream
2023-02-01 23:11:32 +07:00
Cuong Manh Le
06372031b5
cmd/ctrld: add more logging details
2023-02-01 23:09:01 +07:00
Cuong Manh Le
c82a0e2562
cmd/ctrld: optimizing set/reset DNS
...
Currently, when reset DNS, ctrld always find the net.Interface by
interface name. This may produce unexpected error because the interface
table may be cleared at the time ctrld is being stopped.
Instead, we can get the net interface only once, and use that interface
for restoring the DNS before shutting down.
While at it, also making logging message clearer.
2023-01-24 16:57:16 +07:00
Cuong Manh Le
b0dc96aa01
cmd/ctrld: use debug level when --log set
2023-01-24 16:57:08 +07:00
Cuong Manh Le
31e4bcb4c3
cmd/ctrld: init logging before processing --cd
...
So it's easier to debug in case of weird thing happens.
2023-01-24 01:32:51 +07:00
Cuong Manh Le
9fc546443b
cmd/ctrld: ignore syscall.EINTR on Linux
...
Observing while tested on Ubuntu 22.04.1, the request to reset using
systemd resolved via dbus may be interruped.
2023-01-24 01:32:44 +07:00
Cuong Manh Le
8a2c48e996
cmd/ctrld: allow log/cache flags work wit --cd flag
2023-01-23 14:06:51 +07:00
Cuong Manh Le
1186963531
all: use controld dialer for probing network
2023-01-23 14:06:43 +07:00
Cuong Manh Le
837563dcd5
all: wait for network up before running
...
If ctrld setup the interface correctly, the interface DNS is set to
ctrld listener address. At boot time, the ctrld is not up yet, so it
would break the processing Control D config fetching.
Fixing this by waiting for network up before doing the query.
2023-01-23 00:48:33 +07:00
Cuong Manh Le
cd37d93b06
cmd/ctrld: ensure cleaning up done when self-uninstall
...
While at it, also making DNS reset always use DHCP.
2023-01-21 13:43:07 +07:00
Yegor Sak
340016ab70
Update README.md
2023-01-21 13:41:36 +07:00
Yegor Sak
4c8ea45922
Update docs/ephemeral_mode.md, README.md
2023-01-21 13:41:36 +07:00
Yegor Sak
056b76d5a8
Update docs/basic_mode.md
2023-01-21 13:41:36 +07:00
Yegor Sak
f9d6223af5
Update README.md
...
Deleted docs/controld_config.md
2023-01-21 13:41:36 +07:00
Cuong Manh Le
f6371360bc
all: satisfy staticcheck
2023-01-21 01:14:03 +07:00
Cuong Manh Le
46965b04b4
internal/resolvconffile: add build tag for test file
2023-01-21 01:14:03 +07:00
Cuong Manh Le
065a391ff4
cmd/ctrld: check elevated privilege for service mode
2023-01-21 01:13:59 +07:00
Cuong Manh Le
d830706692
cmd/ctrld: always process "--cd" in start mode
...
So if there's any error in fetching configuration, it will be reported
to user and service won't start.
2023-01-21 01:13:54 +07:00