summaryrefslogtreecommitdiff
path: root/config/config.go
diff options
context:
space:
mode:
Diffstat (limited to 'config/config.go')
-rw-r--r--config/config.go46
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,