Add option to support sslrootcert parameter

This commit is contained in:
Dan Sosedoff 2020-02-05 22:01:25 -06:00
parent cc35a754e0
commit 9c7f566d4d
2 changed files with 11 additions and 6 deletions

View File

@ -19,6 +19,7 @@ type Options struct {
Pass string `long:"pass" description:"Password for user"`
DbName string `long:"db" description:"Database name"`
Ssl string `long:"ssl" description:"SSL option"`
SslRootCert string `long:"ssl-root-cert" description:"SSL Root Cert"`
HTTPHost string `long:"bind" description:"HTTP server host" default:"localhost"`
HTTPPort uint `long:"listen" description:"HTTP server listen port" default:"8081"`
AuthUser string `long:"auth-user" description:"HTTP basic auth user"`
@ -43,6 +44,7 @@ type Options struct {
var Opts Options
// ParseOptions returns a new options struct from the input arguments
func ParseOptions(args []string) (Options, error) {
var opts = Options{}

View File

@ -93,6 +93,8 @@ func IsBlank(opts command.Options) bool {
// BuildStringFromOptions returns a new connection string built from options
func BuildStringFromOptions(opts command.Options) (string, error) {
query := neturl.Values{}
// If connection string is provided we just use that
if opts.URL != "" {
return FormatURL(opts)
@ -106,14 +108,15 @@ func BuildStringFromOptions(opts command.Options) (string, error) {
}
}
// Disable ssl for localhost connections, most users have it disabled
if opts.Ssl == "" && (opts.Host == "localhost" || opts.Host == "127.0.0.1") {
opts.Ssl = "disable"
}
query := neturl.Values{}
if opts.Ssl != "" {
query.Add("sslmode", opts.Ssl)
} else {
if opts.Host == "localhost" || opts.Host == "127.0.0.1" {
query.Add("sslmode", "disable")
}
}
if opts.SslRootCert != "" {
query.Add("sslrootcert", opts.SslRootCert)
}
url := neturl.URL{