chore(custom): validate Openvpn file earlier

This commit is contained in:
Quentin McGaw
2022-05-07 18:27:20 +00:00
parent da8c104ebd
commit 2eec60cdd2
2 changed files with 11 additions and 1 deletions

View File

@@ -8,6 +8,7 @@ import (
"github.com/qdm12/gluetun/internal/configuration/settings/helpers" "github.com/qdm12/gluetun/internal/configuration/settings/helpers"
"github.com/qdm12/gluetun/internal/constants" "github.com/qdm12/gluetun/internal/constants"
"github.com/qdm12/gluetun/internal/constants/providers" "github.com/qdm12/gluetun/internal/constants/providers"
"github.com/qdm12/gluetun/internal/openvpn/extract"
"github.com/qdm12/gluetun/internal/openvpn/parse" "github.com/qdm12/gluetun/internal/openvpn/parse"
"github.com/qdm12/gotree" "github.com/qdm12/gotree"
) )
@@ -147,6 +148,12 @@ func validateOpenVPNConfigFilepath(isCustom bool,
return err return err
} }
extractor := extract.New()
_, _, err = extractor.Data(confFile)
if err != nil {
return fmt.Errorf("failed extracting information from custom configuration file: %w", err)
}
return nil return nil
} }

View File

@@ -18,7 +18,10 @@ func (p *Provider) BuildConf(connection models.Connection,
settings settings.OpenVPN) (lines []string, err error) { settings settings.OpenVPN) (lines []string, err error) {
lines, _, err = p.extractor.Data(*settings.ConfFile) lines, _, err = p.extractor.Data(*settings.ConfFile)
if err != nil { if err != nil {
return nil, fmt.Errorf("failed extracting information from custom configuration file: %w", err) // Configuration file is already validated in settings validation in
// internal/configuration/settings/openvpn.go in `validateOpenVPNConfigFilepath`.
// Therefore this error is the result of a programming error.
panic(fmt.Sprintf("failed extracting information from custom configuration file: %s", err))
} }
lines = modifyConfig(lines, connection, settings) lines = modifyConfig(lines, connection, settings)