Features
- SlickVPN Support (#961)
- VPNsecure.me support (#848)
- Update servers data built-in for ExpressVPN, Surfshark
- Control server: add
/vpn
route to replace/openvpn
(in future v4.0.0) - Control server: patch VPN settings using HTTP PUT at
/v1/vpn/settings
(undocumented, experimental)
Fixes
- Surfshark: remove no longer valid retro server data
- Bump github.com/breml/rootcerts from 0.2.3 to 0.2.6 (#1033, #1058)
Documentation
- Fix readme typo
sercice
toservice
(#1067)
Undocumented breaking changes
- Environment variable
OPENVPN_CLIENTCRT
->OPENVPN_CERT
(No breaking change since this was undocumented) - Environment variable
OPENVPN_CLIENTKEY
->OPENVPN_KEY
(No breaking change since this was undocumented) - Control server: replace response status code
404
with401
for unsupported routes and methods - Control server: do not redact openvpn credentials from JSON response
- Read base64 encoded data from environment variables (OpenVPN cert, key and encrypted key) instead of PEM encoded data
Maintenance
- Add mocks check to check for missing
//go:generate
comments and outdated mocks - Linting:
- upgrade golangci-lint to v1.49.0
- config: remove duplicate
predeclared
and commentedvarnamelen
,wrapcheck
- config: remove deprecated linters
ifshort
- config: add linters
asasalint
,usestdlibvars
,interfacebloat
,reassign
- Fix Slowloris attacks on HTTP servers
- Force set default of 5 minutes for pprof read timeout
- Change
ShutdownTimeout
totime.Duration
since it cannot be set to 0
- Use common mocks for ivpn and ipvanish
- OpenVPN user and password as nullable (they can be an empty string for custom provider)
- OpenVPN settings struct field
ClientKey
->Key
- OpenVPN settings struct field
ClientCrt
->Cert
- Remove deprecated
io/ioutil
import - Fix labels workflow:
- Limit labels workflow to run on commits coming from not-forked repositories
- Fix permissions to write for labels
- Bump docker/build-push-action from 3.0.0 to 3.1.1 (#1073, #1098)
- Bump github.com/stretchr/testify from 1.7.2 to 1.8.0 (#1042, #1052)