Quentin McGaw
c0621bf381
chore(lint): upgrade linter to v1.56.2
2024-03-21 17:02:11 +00:00
Quentin McGaw
abe2aceb18
feat(wireguard): clarify wireguard is up message
2023-07-18 15:53:39 +00:00
Quentin McGaw
919b55c3aa
feat(wireguard): WIREGUARD_ALLOWED_IPS variable ( #1291 )
2023-07-06 09:08:59 +02:00
Quentin McGaw
2873b06275
fix(wireguard): wrap setupIPv6 rule error correctly
2023-06-28 13:08:23 +00:00
Quentin McGaw
4292a500ae
fix(wireguard): delete existing Wireguard link before adding it
2023-06-10 20:23:21 +00:00
Quentin McGaw
40cdb4f662
fix(netlink): RouteList list routes from all tables
...
- Do not filter by link anymore
- IPv6 detection simplified
2023-06-08 09:12:46 +00:00
Quentin McGaw
caabaf918e
feat(dev): support development on darwin (OSX)
...
- Netlink linux tagged files
- Netlink linux || darwin tagged files
- Create non-implemented files for NOT linux
- Create non-implemented files for NOT linux and NOT darwin
- Specify wireguard netlink integration test as for linux only
2023-05-29 07:26:59 +00:00
Quentin McGaw
38ddcfa756
chore(netlink): define own types with minimal fields
...
- Allow to swap `github.com/vishvananda/netlink`
- Allow to add build tags for each platform
- One step closer to development on non-Linux platforms
2023-05-29 06:44:58 +00:00
Quentin McGaw
163ac48ce4
chore(wireguard): fix netlink integration test
...
- Broken since recent commit 9d1a0b60a2
2023-05-29 05:54:01 +00:00
Quentin McGaw
9d1a0b60a2
fix(netlink): use AddrReplace instead of AddrAdd
2023-05-28 10:22:51 +00:00
Lars Haalck
1dd38bc658
feat(wireguard): WIREGUARD_MTU enviromnent variable ( #1571 )
2023-05-21 15:11:07 +02:00
Quentin McGaw
86ec75722a
chore(wireguard): use netip.AddrPort instead of *net.UDPAddr
2023-05-20 20:06:12 +00:00
Quentin McGaw
00ee6ff9a7
chore(wireguard): fix netlink integration tests
2023-05-20 20:06:12 +00:00
Quentin McGaw
d21a943779
chore(all): use netip.Prefix for ip networks
...
- remove usage of `net.IPNet`
- remove usage of `netaddr.IPPrefix`
2023-04-27 13:42:50 +00:00
Quentin McGaw
219d1f371c
chore(all): wrap all sentinel errors
...
- Force to use `errors.Is` instead of `==` to compare errors
2023-04-20 23:10:06 +00:00
Quentin McGaw
723d0f5e12
chore(lint): upgrade from v1.51.2 to v1.52.2
2023-04-12 09:40:00 +00:00
Quentin McGaw
4ba159e483
chore(all): review error wrappings
...
- remove repetitive `cannot` and `failed` prefixes
- rename `unmarshaling` to `decoding`
2023-04-01 16:57:18 +00:00
Quentin McGaw
2e3eb1fd7b
fix(wireguard): ignore IPv6 addresses if IPv6 is not supported
2022-12-14 11:52:03 +00:00
Quentin McGaw
03ed3cb1c8
feat(wireguard): WIREGUARD_IMPLEMENTATION variable
...
- Can be `auto` (default), `userspace` or `kernelspace`
2022-12-02 11:16:27 +00:00
Quentin McGaw
f70609c464
fix(wireguard): ignore IPv6 addresses if IPv6 disabled
2022-10-17 06:31:32 +00:00
EkilDeew
875690ab18
feat(network): enable ipv6 connection and tunneling ( #1114 )
...
Co-authored-by: Quentin McGaw <quentin.mcgaw@gmail.com >
2022-09-13 17:18:10 -07:00
Quentin McGaw
7506625f40
chore(tests): fix netlink test for previous crash
2022-09-06 12:17:51 +00:00
Quentin McGaw
5ddd703f6a
feat(vpn): auto detection of IPv6 support
...
- `OPENVPN_IPV6` removed
- Affects OpenVPN
- Use the same mechanism for OpenVPN and Wireguard
- Check only once at program start since this is unlikely to change at runtime
- Log if IPv6 is supported
- Remove `IPv6` boolean from settings structs
- Move IPv6 detection as a method on NetLinker
2022-09-06 12:16:29 +00:00
Quentin McGaw
284d4340b1
fix(tests): fix netlink wireguard test
2022-09-05 15:23:31 +00:00
Quentin McGaw
aa53436e56
chore(lint): upgrade golangci-lint to v1.49.0
...
- Add linter `interfacebloat` and fix code issues
- Add linter `reassign`
- Remove deprecated linter `nosnakecase`
2022-08-24 21:48:24 +00:00
Quentin McGaw
578ef768ab
chore(all): return concrete types, accept interfaces
...
- Remove exported interfaces unused locally
- Define interfaces to accept arguments
- Return concrete types, not interfaces
2022-06-11 01:34:30 +00:00
Quentin McGaw
eb18eaf0a9
fix(wireguard): continue on ipv6 route add permission denial
2022-05-28 21:06:21 +00:00
Quentin McGaw
7fd45cf17f
feat(wireguard): add debug logs for IPv6 detection
...
- To debug issue #998
- Enable with `LOG_LEVEL=debug`
2022-05-27 17:27:53 +00:00
Quentin McGaw
5ffe8555ba
chore(lint): upgrade golangci-lint from v1.44.2 to v1.46.2
...
- Add linter `execinquery`
- Add linter `nosprintfhostport`
2022-05-27 00:52:25 +00:00
Quentin McGaw
920ad8b54b
chore(errors): review all errors in codebase
2022-02-20 02:58:16 +00:00
Quentin McGaw
7d824a5179
chore(settings): refactor settings processing ( #756 )
...
- Better settings tree structure logged using `qdm12/gotree`
- Read settings from environment variables, then files, then secret files
- Settings methods to default them, merge them and override them
- `DNS_PLAINTEXT_ADDRESS` default changed to `127.0.0.1` to use DoT. Warning added if set to something else.
- `HTTPPROXY_LISTENING_ADDRESS` instead of `HTTPPROXY_PORT` (with retro-compatibility)
2022-01-06 06:40:23 -05:00
Quentin McGaw
cfa3bb3b64
feat(internal/wireguard): opportunistic kernelspace
...
- Auto detect if kernelspace implementation is available
- Fallback to Go userspace implementation if kernel is not available
2021-12-14 11:03:36 +00:00
Quentin McGaw (desktop)
59a3a072e0
Feat: support IPv6 routing for Wireguard
2021-09-21 15:12:48 +00:00
Quentin McGaw (desktop)
9f001bbc06
Feat: log wireguard server endpoint
2021-09-18 19:12:27 +00:00
Quentin McGaw (desktop)
82ac568ee3
Fix: wireguard cleanup preventing restarts
2021-09-04 22:29:04 +00:00
Quentin McGaw (desktop)
b3d8b78205
Maint: only internal/netlink depends on github.com/vishvananda/netlink
2021-08-23 21:12:28 +00:00
Quentin McGaw (desktop)
ee82a85543
Maint: internal/routing uses internal/netlink
2021-08-23 20:56:10 +00:00
Quentin McGaw
614eb10d67
Wireguard support for Mullvad and Windscribe ( #565 )
...
- `internal/wireguard` client package with unit tests
- Implementation works with kernel space or user space if unavailable
- `WIREGUARD_PRIVATE_KEY`
- `WIREGUARD_ADDRESS`
- `WIREGUARD_PRESHARED_KEY`
- `WIREGUARD_PORT`
- `internal/netlink` package used by `internal/wireguard`
2021-08-22 14:58:39 -07:00