overriding default timeout via HTTP_TIMEOUT env variable.

This commit is contained in:
ahmetlutfu
2023-12-06 23:11:58 +03:00
parent a849603d8b
commit 92b5233257

View File

@@ -8,6 +8,7 @@ import (
"net/url" "net/url"
"os" "os"
"regexp" "regexp"
"strconv"
"strings" "strings"
"time" "time"
@@ -22,6 +23,7 @@ var (
ForwardedFor = getenv("X_FORWARDED_FOR", "66.249.66.1") ForwardedFor = getenv("X_FORWARDED_FOR", "66.249.66.1")
rulesSet = ruleset.NewRulesetFromEnv() rulesSet = ruleset.NewRulesetFromEnv()
allowedDomains = []string{} allowedDomains = []string{}
defaultTimeout = 15 // in seconds
) )
func init() { func init() {
@@ -29,6 +31,9 @@ func init() {
if os.Getenv("ALLOWED_DOMAINS_RULESET") == "true" { if os.Getenv("ALLOWED_DOMAINS_RULESET") == "true" {
allowedDomains = append(allowedDomains, rulesSet.Domains()...) allowedDomains = append(allowedDomains, rulesSet.Domains()...)
} }
if timeoutStr := os.Getenv("HTTP_TIMEOUT"); timeoutStr != "" {
defaultTimeout, _ = strconv.Atoi(timeoutStr)
}
} }
// extracts a URL from the request ctx. If the URL in the request // extracts a URL from the request ctx. If the URL in the request
@@ -183,7 +188,7 @@ func fetchSite(urlpath string, queries map[string]string) (string, *http.Request
// Fetch the site // Fetch the site
client := &http.Client{ client := &http.Client{
Timeout: time.Second * 15, Timeout: time.Second * time.Duration(defaultTimeout),
} }
req, _ := http.NewRequest("GET", url, nil) req, _ := http.NewRequest("GET", url, nil)