1// Copyright 2021 The Gitea Authors. All rights reserved.
2// SPDX-License-Identifier: MIT
3
4package setting
5
6import (
7 "net/url"
8
9 "forgejo.org/modules/log"
10)
11
12// Proxy settings
13var Proxy = struct {
14 Enabled bool
15 ProxyURL string
16 ProxyURLFixed *url.URL
17 ProxyHosts []string
18}{
19 Enabled: false,
20 ProxyURL: "",
21 ProxyHosts: []string{},
22}
23
24func loadProxyFrom(rootCfg ConfigProvider) {
25 sec := rootCfg.Section("proxy")
26 Proxy.Enabled = sec.Key("PROXY_ENABLED").MustBool(false)
27 Proxy.ProxyURL = sec.Key("PROXY_URL").MustString("")
28 if Proxy.ProxyURL != "" {
29 var err error
30 Proxy.ProxyURLFixed, err = url.Parse(Proxy.ProxyURL)
31 if err != nil {
32 log.Error("Global PROXY_URL is not valid")
33 Proxy.ProxyURL = ""
34 }
35 }
36 Proxy.ProxyHosts = sec.Key("PROXY_HOSTS").Strings(",")
37}