MCPcopy Index your code
hub / github.com/1Panel-dev/1Panel / buildDownloadProxyURL

Function buildDownloadProxyURL

agent/utils/files/file_op.go:410–442  ·  view source on GitHub ↗
(proxy DownloadProxyConfig)

Source from the content-addressed store, hash-verified

408}
409
410func buildDownloadProxyURL(proxy DownloadProxyConfig) (*url.URL, error) {
411 proxyType := strings.TrimSpace(proxy.Type)
412 proxyHost := strings.TrimSpace(proxy.URL)
413 if proxyType == "" || proxyHost == "" {
414 return nil, buserr.New("ErrWgetProxyNotConfigured")
415 }
416 if !strings.Contains(proxyHost, "://") {
417 proxyHost = fmt.Sprintf("%s://%s", proxyType, proxyHost)
418 }
419 parsedURL, err := url.Parse(proxyHost)
420 if err != nil {
421 return nil, buserr.WithDetail("ErrWgetProxyInvalid", err.Error(), err)
422 }
423 if parsedURL.Scheme == "" {
424 parsedURL.Scheme = proxyType
425 }
426 if parsedURL.Host == "" && parsedURL.Path != "" {
427 parsedURL.Host = parsedURL.Path
428 parsedURL.Path = ""
429 }
430 if parsedURL.Host == "" {
431 return nil, buserr.New("ErrWgetProxyNotConfigured")
432 }
433 if strings.TrimSpace(proxy.Port) != "" && parsedURL.Port() == "" {
434 parsedURL.Host = net.JoinHostPort(parsedURL.Hostname(), strings.TrimSpace(proxy.Port))
435 }
436 if proxy.User != "" && proxy.Password != "" {
437 parsedURL.User = url.UserPassword(proxy.User, proxy.Password)
438 } else if proxy.User != "" {
439 parsedURL.User = url.User(proxy.User)
440 }
441 return parsedURL, nil
442}
443
444func newDownloadHTTPClient(options DownloadOptions) (*http.Client, error) {
445 if !options.IgnoreCertificate && options.Proxy == nil {

Callers 1

newDownloadHTTPClientFunction · 0.85

Calls 3

ParseMethod · 0.80
PortMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected