diff options
Diffstat (limited to 'config/config.go')
| -rw-r--r-- | config/config.go | 46 |
1 files changed, 28 insertions, 18 deletions
diff --git a/config/config.go b/config/config.go index 63dec5b..8d9eaa5 100644 --- a/config/config.go +++ b/config/config.go @@ -18,6 +18,7 @@ import ( "crypto/tls" "encoding/json" "fmt" + "io" "io/ioutil" "net/http" "net/url" @@ -28,9 +29,12 @@ import ( ) type ConfigUrls struct { - SmallUrl string `json:"small_https_download_url"` - LargeUrl string `json:"large_https_download_url"` - UploadUrl string `json:"https_upload_url"` + SmallUrl string `json:"small_https_download_url"` + SmallUrlHost string + LargeUrl string `json:"large_https_download_url"` + LargeUrlHost string + UploadUrl string `json:"https_upload_url"` + UploadUrlHost string } type Config struct { @@ -40,9 +44,13 @@ type Config struct { Test_Endpoint string } -func (c *Config) Get(configHost string, configPath string) error { +func (c *Config) Get(configHost string, configPath string, keyLogger io.Writer) error { configTransport := http2.Transport{} configTransport.TLSClientConfig = &tls.Config{InsecureSkipVerify: true} + + if !utilities.IsInterfaceNil(keyLogger) { + configTransport.TLSClientConfig.KeyLogWriter = keyLogger + } configClient := &http.Client{Transport: &configTransport} // Extraneous /s in URLs is normally okay, but the Apple CDN does not // like them. Make sure that we put exactly one (1) / between the host @@ -54,7 +62,7 @@ func (c *Config) Get(configHost string, configPath string) error { resp, err := configClient.Get(c.Source) if err != nil { return fmt.Errorf( - "Error: Could not connect to configuration host %s: %v\n", + "could not connect to configuration host %s: %v", configHost, err, ) @@ -63,7 +71,7 @@ func (c *Config) Get(configHost string, configPath string) error { jsonConfig, err := ioutil.ReadAll(resp.Body) if err != nil { return fmt.Errorf( - "Error: Could not read configuration content downloaded from %s: %v\n", + "could not read configuration content downloaded from %s: %v", c.Source, err, ) @@ -72,29 +80,31 @@ func (c *Config) Get(configHost string, configPath string) error { err = json.Unmarshal(jsonConfig, c) if err != nil { return fmt.Errorf( - "Error: Could not parse configuration returned from %s: %v\n", + "could not parse configuration returned from %s: %v", c.Source, err, ) } - //if len(c.Test_Endpoint) != 0 { - if false { + if len(c.Test_Endpoint) != 0 { tempUrl, err := url.Parse(c.Urls.LargeUrl) if err != nil { - return fmt.Errorf("Error parsing large_https_download_url: %v", err) + return fmt.Errorf("error parsing large_https_download_url: %v", err) } - c.Urls.LargeUrl = tempUrl.Scheme + "://" + c.Test_Endpoint + "/" + tempUrl.Path + c.Urls.LargeUrl = tempUrl.Scheme + "://" + c.Test_Endpoint + "" + tempUrl.Path + c.Urls.LargeUrlHost = tempUrl.Host tempUrl, err = url.Parse(c.Urls.SmallUrl) if err != nil { - return fmt.Errorf("Error parsing small_https_download_url: %v", err) + return fmt.Errorf("error parsing small_https_download_url: %v", err) } - c.Urls.SmallUrl = tempUrl.Scheme + "://" + c.Test_Endpoint + "/" + tempUrl.Path + c.Urls.SmallUrl = tempUrl.Scheme + "://" + c.Test_Endpoint + "" + tempUrl.Path + c.Urls.SmallUrlHost = tempUrl.Host tempUrl, err = url.Parse(c.Urls.UploadUrl) if err != nil { - return fmt.Errorf("Error parsing https_upload_url: %v", err) + return fmt.Errorf("error parsing https_upload_url: %v", err) } - c.Urls.UploadUrl = tempUrl.Scheme + "://" + c.Test_Endpoint + "/" + tempUrl.Path + c.Urls.UploadUrl = tempUrl.Scheme + "://" + c.Test_Endpoint + "" + tempUrl.Path + c.Urls.UploadUrlHost = tempUrl.Host } return nil } @@ -114,7 +124,7 @@ func (c *Config) IsValid() error { if parsedUrl, err := url.ParseRequestURI(c.Urls.LargeUrl); err != nil || parsedUrl.Scheme != "https" { return fmt.Errorf( - "Configuration url large_https_download_url is invalid: %s", + "configuration url large_https_download_url is invalid: %s", utilities.Conditional( len(c.Urls.LargeUrl) != 0, c.Urls.LargeUrl, @@ -125,7 +135,7 @@ func (c *Config) IsValid() error { if parsedUrl, err := url.ParseRequestURI(c.Urls.SmallUrl); err != nil || parsedUrl.Scheme != "https" { return fmt.Errorf( - "Configuration url small_https_download_url is invalid: %s", + "configuration url small_https_download_url is invalid: %s", utilities.Conditional( len(c.Urls.SmallUrl) != 0, c.Urls.SmallUrl, @@ -136,7 +146,7 @@ func (c *Config) IsValid() error { if parsedUrl, err := url.ParseRequestURI(c.Urls.UploadUrl); err != nil || parsedUrl.Scheme != "https" { return fmt.Errorf( - "Configuration url https_upload_url is invalid: %s", + "configuration url https_upload_url is invalid: %s", utilities.Conditional( len(c.Urls.UploadUrl) != 0, c.Urls.UploadUrl, |
