package openvpn import ( "strings" "github.com/fatih/color" "github.com/qdm12/gluetun/internal/constants" ) type logLevel uint8 const ( levelInfo logLevel = iota levelWarn levelError ) func processLogLine(s string) (filtered string, level logLevel) { for _, ignored := range []string{ "WARNING: you are using user/group/chroot/setcon without persist-tun -- this may cause restarts to fail", "NOTE: UID/GID downgrade will be delayed because of --client, --pull, or --up-delay", } { if s == ignored { return "", levelInfo } } switch { case strings.HasPrefix(s, "NOTE: "): filtered = strings.TrimPrefix(s, "NOTE: ") level = levelInfo case strings.HasPrefix(s, "WARNING: "): filtered = strings.TrimPrefix(s, "WARNING: ") level = levelWarn case strings.HasPrefix(s, "Options error: "): filtered = strings.TrimPrefix(s, "Options error: ") level = levelError case s == "Initialization Sequence Completed": return color.HiGreenString(s), levelInfo case s == "AUTH: Received control message: AUTH_FAILED": filtered = s + ` Your credentials might be wrong ๐Ÿคจ ` level = levelError case strings.Contains(s, "TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)"): //nolint:lll filtered = s + ` ๐Ÿš’๐Ÿš’๐Ÿš’๐Ÿš’๐Ÿš’๐Ÿšจ๐Ÿšจ๐Ÿšจ๐Ÿšจ๐Ÿšจ๐Ÿšจ๐Ÿš’๐Ÿš’๐Ÿš’๐Ÿš’๐Ÿš’ That error usually happens because either: 1. The VPN server IP address you are trying to connect to is no longer valid ๐Ÿ”Œ Update your server information using https://github.com/qdm12/gluetun/wiki/Updating-Servers 2. The VPN server crashed ๐Ÿ’ฅ, try changing your VPN servers filtering options such as REGION 3. Your Internet connection is not working ๐Ÿคฏ, ensure it works 4. Something else โžก๏ธ https://github.com/qdm12/gluetun/issues/new/choose ` level = levelWarn default: filtered = s level = levelInfo } filtered = constants.ColorOpenvpn().Sprintf(filtered) return filtered, level }