v3.20.0

passteque/gluetunv3.20.0Jul 19, 2021by qdm12

AI Summary

Fixes IPVanish certificate validation, OpenVPN restart logic, and shutdown handling. Adds IPv6 pull filter support and updates server information for ProtonVPN and IPVanish.

Key Highlights

  • IPVanish certificate validation fix
  • OpenVPN restart logic and deadlock fixes
  • IPv6 pull filter support
  • Alpine Linux upgrade to version 3.14

New Features

  • IPv6 pull filter
  • IPVanish certificate fix
  • OpenVPN restart logic fix

Full Release Notes

## Bug fixes

- IPVanish: certificate validation option fixed
- Fix OpenVPN restart logic
  - Remove OpenVPN eventual deadlock after a restart
  - Fix OpenVPN run loop panicing about log streams after one or more internal openvpn restart
- Shutdowns of subprograms (openvpn and unbound) are handled by the Go program
  - Openvpn and Unbound do not receive OS signals
  - Openvpn and Unbound run in a different process group than the entrypoint
  - Openvpn and Unbound are gracefully shutdown by the entrypoint
  - Update golibs with a modified `github.com/qdm12/golibs/command` package
  - Update `github.com/qdm12/dns` to `v1.9.0` where Unbound is launched in its own group
- Fix events routing behavior if `VERSION_INFORMATION=off`
- Behavior when exiting at boot
  - Events routing routine exits when gluetun stops
  - Remove deadlock on dns shutdown

## Features

- OpenVPN pull filter for ipv6 options if `OPENVPN_IPV6=off`
- Update servers information:
  - ProtonVPN
  - IPVanish
- Upgrade to Alpine 3.14
- Clean suffix new line(s) for credentials

## Documentation

- Add [Youtube video](https://youtu.be/0F6I03LQcI4)
- Simplify metdata and move it at top of readme

## Maintenance

### Dockerfile

- Download `golangci-lint` from `qmcgaw/binpot`
- `xcputranslate` version as build argument

### Readme

- Use native markdown code for svg title image instead of HTML's `<svg>`

### Logs

- Deduplicate error logs for `goshutdown`
- Remove outdated auth error warning about PIA

### Asynchronous logic

- Make all loop's `SetStatus` context aware
- Rework DNS run loop
  - Fix fragile user triggered logic
  - Simplify state logic
- Rework Openvpn run loop
- Rework openvpn unhealthy triggered restart to be in the healthcheck loop instead of in the openvpn loop