Quentin McGaw
a182e3503b
feat: add VPNsecure.me support ( #848 )
...
- `OPENVPN_ENCRYPTED_KEY` environment variable
- `OPENVPN_ENCRYPTED_KEY_SECRETFILE` environment variable
- `OPENVPN_KEY_PASSPHRASE` environment variable
- `OPENVPN_KEY_PASSPHRASE_SECRETFILE` environment variable
- `PREMIUM_ONLY` environment variable
- OpenVPN user and password not required for vpnsecure provider
2022-08-15 16:54:58 -07:00
Richard Hodgson
d0dfc21e2b
feat: SlickVPN Support ( #961 )
...
- `internal/updater/html` package
- Add unit tests for slickvpn updating code
- Change shared html package to be more share-able
- Split html utilities in multiple files
- Fix processing .ovpn files with prefix space
Authored by @Rohaq
Co-authored-by: Quentin McGaw <quentin.mcgaw@gmail.com >
2022-08-15 08:25:06 -07:00
Quentin McGaw
8db2944749
chore(settings): OpenVPN ClientCrt -> Cert
2022-08-13 18:59:07 +00:00
Quentin McGaw
5986432a22
chore(settings): OpenVPN ClientKey -> Key
2022-08-13 18:58:09 +00:00
Quentin McGaw
1ab74e6bb3
chore: OpenVPN user and password as nullable
...
- Username and password can be the empty string for custom provider
2022-08-13 18:01:26 +00:00
Quentin McGaw
a6f00f2fb2
chore(lint): upgrade golangci-lint to v1.47.2
...
- Fix Slowloris attacks on HTTP servers
- Force set default of 5 minutes for pprof read timeout
- Change `ShutdownTimeout` to time.Duration since it cannot be set to 0
2022-08-01 21:09:16 +00:00
Quentin McGaw
535297dcf5
chore: extract.PEM replaces PEM parse functions
2022-06-24 23:10:00 +00:00
Quentin McGaw
75454be6b6
fix(pprof): override operation in global settings
2022-06-18 00:16:14 +00:00
Quentin McGaw
9898387579
feat(updater): Configurable min ratio
...
- `UPDATER_MIN_RATIO` variable
- `-minratio` flag for CLI operation
2022-06-12 14:03:00 +00:00
Quentin McGaw
33b8f5f596
chore(settings): updater DNS address as string
2022-06-11 20:11:20 +00:00
Quentin McGaw
3ff3816d77
fix(pia): restrict custom port choice
2022-06-09 16:36:59 +00:00
Quentin McGaw
c0bdae8baf
fix(protonvpn): restrict custom port choice
2022-06-09 16:36:17 +00:00
Quentin McGaw
36b504609b
chore(all): memory and thread safe storage
...
- settings: get filter choices from storage for settings validation
- updater: update servers to the storage
- storage: minimal deep copying and data duplication
- storage: add merged servers mutex for thread safety
- connection: filter servers in storage
- formatter: format servers to Markdown in storage
- PIA: get server by name from storage directly
- Updater: get servers count from storage directly
- Updater: equality check done in storage, fix #882
2022-06-05 15:19:16 +00:00
Quentin McGaw
90c6c8485b
chore(updater): common GetServers signature
...
- Log warnings when running outside of CLI mode
- Remove updater CLI bool setting
- Warnings are logged in updating functions
2022-05-28 20:58:50 +00:00
Quentin McGaw
67a9cacb61
hotfix(custom): allow empty servers data
2022-05-27 21:47:41 +00:00
Quentin McGaw
4bcd8ee9f5
chore(constants): add internal/constants/openvpn package
2022-05-27 16:29:49 +00:00
Quentin McGaw
1b2bcf901a
chore(surfshark): add package internal/provider/surshark/server
...
- Merge `internal/models/location.go` and `internal/constants/surfshark.go` into `internal/provider/surfshark/servers/locationdata.go`
2022-05-27 16:29:48 +00:00
Quentin McGaw
306de8feda
chore(constants): add internal/provider/privateinternetacess/presets package
2022-05-27 16:29:48 +00:00
Quentin McGaw
bd0868d764
chore(all): provider to servers map in allServers
...
- Simplify formatting CLI
- Simplify updater code
- Simplify filter choices for config validation
- Simplify all servers deep copying
- Custom JSON marshaling methods for `AllServers`
- Simplify provider constructor switch
- Simplify storage merging
- Simplify storage reading and extraction
- Simplify updating code
2022-05-27 16:17:53 +00:00
Quentin McGaw
2eec60cdd2
chore(custom): validate Openvpn file earlier
2022-05-07 19:33:21 +00:00
Quentin McGaw
9dd5e7bf1d
fix: PUID and PGID as 32 bit unsigned integers
2022-05-01 16:29:56 +00:00
Quentin McGaw
0c0f1663b1
chore: simplify provider GetConnection
2022-04-20 15:16:55 +00:00
Quentin McGaw
934fafb64b
chore(constants): internal/constants/vpn package
2022-04-18 11:14:07 +00:00
Quentin McGaw
a9cfd16d53
chore(validation): uniformize server filters build
2022-04-18 07:27:00 +00:00
Quentin McGaw
072b42d867
chore(v4): add v4 comments about server names
2022-04-17 16:21:21 +00:00
Quentin McGaw
5d66c193aa
chore(models): common Server & Servers for all providers ( #943 )
2022-04-17 16:21:19 +00:00
Quentin McGaw
54b7e23974
chore(constants): internal/constants/providers
...
- New package to avoid package import cycles
2022-04-16 19:30:26 +00:00
Quentin McGaw
10a13bc8a7
fix(health): change default target address to cloudflare.com:443
2022-04-11 20:21:15 +00:00
Quentin McGaw
179274ade0
feat(log): use github.com/qdm12/log library
2022-03-30 09:03:20 +00:00
Quentin McGaw
c6f68a64e6
fix(health): use TCP dialing instead of ping
...
- `HEALTH_TARGET_ADDRESS` to replace `HEALTH_ADDRESS_TO_PING`
- Remove `github.com/go-ping/ping` dependency
- Dial TCP the target address, appending `:443` if port is not set
2022-03-22 08:50:56 +00:00
Quentin McGaw
69eee345d2
feat(ivpn): allow no password for account IDs
...
- When matching `i-xxxx-xxxx-xxxx` username
- When matching `ivpn-xxxx-xxxx-xxxx` username
2022-03-09 21:01:25 +00:00
Quentin McGaw
920ad8b54b
chore(errors): review all errors in codebase
2022-02-20 02:58:16 +00:00
Quentin McGaw
ac4a4f83fc
chore(settings): split openvpn validation in functions
2022-02-20 00:08:55 +00:00
Quentin McGaw
a4652c2d32
feat(validation): reject server filters ignored for some VPN providers
2022-02-18 14:06:13 +00:00
Quentin McGaw
c40d4e075e
chore(validation): move functions from constants
...
- Move validation functions from `internal/constants` to `internal/configuration/settings/validation`
- Concatenate all OpenVPN constants in `internal/constants/openvpn.go`
2022-02-13 01:21:25 +00:00
Quentin McGaw
53952b143f
fix(server): allow to bind on a random port
2022-02-06 19:59:07 +00:00
Quentin McGaw
7a8f5f53d5
feat(openvpn): OPENVPN_PROCESS_USER and deprecates OPENVPN_ROOT
2022-01-27 23:34:19 +00:00
Quentin McGaw
1b585159d1
feat(server): HTTP_CONTROL_SERVER_PORT to HTTP_CONTROL_SERVER_ADDRESS
2022-01-27 23:15:08 +00:00
Quentin McGaw (desktop)
9fb085f361
hotfix(updater): do not default to custom
2022-01-27 12:57:27 +00:00
Quentin McGaw
1e3f878470
feat(updater): UPDATER_VPN_SERVICE_PROVIDERS
...
- Updater defaults to update the VPN provider in use if enabled
2022-01-26 22:41:06 +00:00
Quentin McGaw
9de6428585
feat(pprof): add pprof HTTP server ( #807 )
...
- `PPROF_ENABLED=no`
- `PPROF_BLOCK_PROFILE_RATE=0`
- `PPROF_MUTEX_PROFILE_RATE=0`
- `PPROF_HTTP_SERVER_ADDRESS=":6060"`
2022-01-26 17:23:55 -05:00
Quentin McGaw (desktop)
2cff64fd80
fix(settings): allow DNS_UPDATE_PERIOD=0
2022-01-23 00:36:45 +00:00
Quentin McGaw (desktop)
fdc0db07e0
fix(updater): do not allow or set custom provider
2022-01-22 22:23:40 +00:00
Quentin McGaw
7e2ea4d74d
hotfix(custom): allow empty user and password for OpenVPN
2022-01-13 15:18:39 +00:00
Quentin McGaw
6f5a78c22b
hotfix(settings): hostnames merging
2022-01-07 22:41:57 +00:00
Quentin McGaw
b0c2d5f299
hotfix(updater): defaults for settings in CLI mode
2022-01-07 22:29:30 +00:00
Quentin McGaw
b32c01c11a
fix(custom): OPENVPN_CUSTOM_CONFIG
2022-01-07 15:12:49 +00:00
Quentin McGaw
c40c8413b5
fix(custom): settings parsing for custom VPNSP
2022-01-07 09:23:29 +00:00
Quentin McGaw
ae074dfb2b
hotfix(surfshark): REGION retro-compatibility
2022-01-06 19:16:14 +00:00
Quentin McGaw
2c8a8f6cd5
fix(settings): HTTP proxy default address
2022-01-06 17:47:06 +00:00