Yegor Sak
49441f62f3
Update file config.md
2024-02-07 14:39:17 +07:00
Cuong Manh Le
99651f6e5b
internal/router: supports UniFi UXG products
2024-02-07 14:38:50 +07:00
Cuong Manh Le
edca1f4f89
Drop quic free build
...
Since go1.21, Go standard library have added support for QUIC protocol.
The binary size gains between quic and quic-free version is now minimal.
Removing the quic free build, simplify the code and build process.
2024-02-07 14:38:19 +07:00
Yegor S
3d834f00f6
Update README.md
2024-02-02 12:03:29 -05:00
Yegor S
61fb71b1fa
Update README.md
...
bump go min version
2024-01-23 19:57:57 -05:00
Yegor S
f8967c376f
Merge pull request #135 from Control-D-Inc/release-branch-v1.3.4
...
Release branch v1.3.4
v1.3.4
2024-01-23 19:44:37 -05:00
Cuong Manh Le
6d3c86c0be
internal/clientinfo: add kea-dhcp4 to readLeaseFile
...
While at it, also removing duplicated characters in cutset of
strings.Trim function.
2024-01-23 01:31:14 +07:00
Cuong Manh Le
e42554f892
internal/router/dnsmasq: always include client's mac/ip
...
Since ctrld now supports MAC rules, the client's mac and ip must always
be sent to ctrld. Otherwise, the mac policy won't work when ctrld is an
upstream of dnsmasq.
2024-01-22 23:13:31 +07:00
Cuong Manh Le
28984090e5
internal/router: report error if DNS shield is enabled in UniFi OS
2024-01-22 23:13:09 +07:00
Cuong Manh Le
251255c746
all: change bootstrap DNS for ipv4/ipv6
2024-01-22 23:12:55 +07:00
Cuong Manh Le
32709dc64c
internal/router: use daemon -r option
...
So if ctrld is killed unexpectedly, daemon will respawn new ctrld and
keep the system DNS working.
2024-01-22 23:12:39 +07:00
Cuong Manh Le
71f26a6d81
Add prometheus exporter
...
Updates #6
2024-01-22 23:12:17 +07:00
Cuong Manh Le
44352f8006
all: make discovery refresh interval configurable
2024-01-22 23:10:59 +07:00
Cuong Manh Le
af38623590
internal/clientinfo: read mdns data from avahi-daemon cache
...
When avahi-daemon is avaibale, reading data from its cache help ctrld
populate the mdns data with already known services within local network,
allowing discover client info more quickly.
2024-01-22 23:10:47 +07:00
Cuong Manh Le
9c1665a759
internal/clientinfo: add kea-dhcp4 parser
2024-01-22 23:10:28 +07:00
Cuong Manh Le
eaad24e5e5
internal/clientinfo: add host_entries.conf parser
2024-01-22 23:10:17 +07:00
Ginder Singh
cfaf32f71a
Added upstream proto option to mobile library
...
Changed android listener IP to 0.0.0.0
2024-01-22 23:10:02 +07:00
Cuong Manh Le
51b235b61a
internal/clientinfo: implement ndp listen
...
So when new clients join the network, ctrld can really the event and
update client information to NDP table quickly.
2024-01-22 23:10:00 +07:00
Cuong Manh Le
0a6d9d4454
internal/clientinfo: add Ubios custom device name
2024-01-22 23:06:52 +07:00
Cuong Manh Le
dc700bbd52
internal/router: use max-cache-ttl=0 on some routers
...
On some routers, dnsmasq config may change cache-size dynamically after
ctrld starts, causing dnsmasq crashes.
Fixing this by using max-cache-ttl, which have the same effect with
setting cache-size=0 but won't conflict with existing routers config.
2024-01-22 23:05:56 +07:00
Cuong Manh Le
cb445825f4
internal/clientinfo: add NDP discovery
2024-01-22 23:05:44 +07:00
Cuong Manh Le
4d996e317b
Fix wrong toml struct tag for arp discovery
2024-01-22 23:04:22 +07:00
Yegor S
30c9012004
Update config.md
2023-12-19 16:58:49 -05:00
Yegor S
2a23feaf4b
Merge pull request #113 from Control-D-Inc/release-branch-v1.3.3
...
Release branch v1.3.3
v1.3.3
2023-12-18 22:28:45 -05:00
Cuong Manh Le
b82ad3720c
cmd/cli: guard against nil client info
...
Though it's only possible raised in testing, still better to be safe.
2023-12-19 01:48:07 +07:00
Cuong Manh Le
8d2cb6091e
cmd/cli: add QUERY/REPLY prefix to proxying log
...
So the log in INFO log is aligned, making it easier for human to
monitoring the log, either via console or running "tail" command.
2023-12-19 01:31:30 +07:00
Yegor Sak
3023f33dff
Update file config.md
2023-12-18 21:32:26 +07:00
Cuong Manh Le
22e97e981a
cmd/cli: ignore invalid flags for "ctrld run"
2023-12-18 21:32:01 +07:00
Cuong Manh Le
44484e1231
cmd/cli: add WSAEHOSTUNREACH to network error
...
Windows may raise WSAEHOSTUNREACH instead WSAENETUNREACH in case of
network not available when resuming from sleep or switching network, so
checkUpstream is never kicked in for this type of error.
2023-12-18 21:31:46 +07:00
Cuong Manh Le
eac60b87c7
Improving DOH header logging
2023-12-18 21:31:35 +07:00
Cuong Manh Le
8db28cb76e
cmd/cli: improving logging of proxying action
...
INFO level becomes a sensible setting for normal operation that does not
overwhelm. Adding some small details to make DEBUG level more useful.
2023-12-18 21:31:08 +07:00
Cuong Manh Le
8dbe828b99
cmd/cli: change socket dir to /var/run on *nix
2023-12-18 21:30:53 +07:00
Cuong Manh Le
5c24acd952
cmd/cli: fix bug causes checkUpstream run only once
...
To prevent duplicated running of checkUpstream function at the same
time, upstream monitor uses a boolean to report whether the upstream is
checking. If this boolean is true, then other calls after the first one
will be returned immediately.
However, checkUpstream does not set this boolean to false when it
finishes, thus all future calls to checkUpstream won't be run, causing
the upstream is marked as down forever.
Fixing this by ensuring the boolean is reset once checkUpstream done.
While at it, also guarding all upstream monitor operations with a mutex,
ensuring there's no race condition between marking upstream state.
2023-12-18 21:30:36 +07:00
Yegor S
998b9a5c5d
Merge pull request #103 from Control-D-Inc/release-branch-v1.3.2
...
Release branch v1.3.2
v1.3.2
2023-12-13 10:00:11 -05:00
Cuong Manh Le
0084e9ef26
internal/clientinfo: silent staticcheck S1008
...
The code is written for readability purpose.
2023-12-13 14:53:29 +07:00
Cuong Manh Le
122600bff2
cmd/cli: remove redundant return statement
2023-12-13 14:53:29 +07:00
Cuong Manh Le
41846b6d4c
all: add config to enable/disable answering WAN clients
2023-12-13 14:53:29 +07:00
Cuong Manh Le
dfbcb1489d
cmd/cli: improving loop guard test
...
We see number of failed test in Github Action, mostly on MacOS or
Windows due to the fact that goroutines are scheduled to be run
consequently.
This commit improves the test, ensuring at least 2 goroutines were
started before increasing the counting.
2023-12-13 14:53:29 +07:00
Cuong Manh Le
684019c2e3
all: force re-bootstrapping with timeout error
2023-12-11 22:55:16 +07:00
Cuong Manh Le
e92619620d
cmd/cli: doing router setup based on "--iface" flag
...
Solving downgrading issue from newer version to v1.3.1, and also easier
to explain the logic: either doing "magic stuff" or do nothing.
2023-12-11 22:55:16 +07:00
Cuong Manh Le
cebfd12d5c
internal/clientinfo: ensure RFC1918 address is chosen over others
2023-12-07 00:04:17 +07:00
Cuong Manh Le
874ff01ab8
cmd/cli: ensure log time field is formated with ms
2023-12-06 22:31:35 +07:00
Alex Paguis
0bb8703f78
Update document for new client_id_preference param
2023-12-06 15:33:05 +07:00
Cuong Manh Le
0bb51aa71d
cmd/cli: add loop guard for LAN/PTR queries
2023-12-06 15:33:05 +07:00
Cuong Manh Le
af2c1c87e0
cmd/cli: improve logging for new LAN/PTR flow
2023-12-06 15:33:05 +07:00
Cuong Manh Le
8939debbc0
cmd/cli: do not send test query to external upstreams
2023-12-06 15:33:05 +07:00
Cuong Manh Le
7591a0ccc6
all: add client id preference config param
...
So client can chose how client id is generated.
2023-12-06 15:33:05 +07:00
Cuong Manh Le
c3ff8182af
all: ignoring local interfaces RFC1918 IP for private resolver
...
Otherwises, the discovery may make a looping with new PTR query flow.
2023-12-06 15:33:05 +07:00
Cuong Manh Le
5897c174d3
all: fix LAN hostname checking condition
...
The LAN hostname in question is FQDN, "." suffix must be trimmed before
checking.
While at it, also add tests for LAN/PTR query checking functions.
2023-12-06 15:33:05 +07:00
Cuong Manh Le
f9a3f4c045
Implement new flow for LAN and private PTR resolution
...
- Use client info table.
- If no sufficient data, use gateway/os/defined local upstreams.
- If no data is returned, use remote upstream
2023-11-30 18:28:51 +07:00