4 Commits

Author SHA1 Message Date
mms-gianni
e08e336efe Update README.md 2024-10-02 09:19:49 +02:00
mms-gianni
3918cf39ac Merge pull request #64 from lutfuahmet/main
HTTP Timeout
2023-12-07 09:37:24 +01:00
ahmetlutfu
92b5233257 overriding default timeout via HTTP_TIMEOUT env variable. 2023-12-06 23:11:58 +03:00
ahmetlutfu
a849603d8b added timeout for http client 2023-12-06 23:07:52 +03:00
2 changed files with 10 additions and 2 deletions

View File

@@ -6,7 +6,7 @@
<div><img alt="License" src="https://img.shields.io/github/license/everywall/ladder"> <img alt="go.mod Go version " src="https://img.shields.io/github/go-mod/go-version/everywall/ladder"> <img alt="GitHub tag (with filter)" src="https://img.shields.io/github/v/tag/everywall/ladder"> <img alt="GitHub (Pre-)Release Date" src="https://img.shields.io/github/release-date-pre/everywall/ladder"> <img alt="GitHub Downloads all releases" src="https://img.shields.io/github/downloads/everywall/ladder/total"> <img alt="GitHub Build Status (with event)" src="https://img.shields.io/github/actions/workflow/status/everywall/ladder/release-binaries.yaml"></div>
*Ladder is a web proxy to help bypass paywalls.* This is a selfhosted version of [1ft.io](https://1ft.io) and [12ft.io](https://12ft.io). It is inspired by [13ft](https://github.com/wasi-master/13ft).
*Ladder is a http web proxy.* This is a selfhosted version of [1ft.io](https://1ft.io) and [12ft.io](https://12ft.io). It is inspired by [13ft](https://github.com/wasi-master/13ft).
### Why

View File

@@ -8,7 +8,9 @@ import (
"net/url"
"os"
"regexp"
"strconv"
"strings"
"time"
"ladder/pkg/ruleset"
@@ -21,6 +23,7 @@ var (
ForwardedFor = getenv("X_FORWARDED_FOR", "66.249.66.1")
rulesSet = ruleset.NewRulesetFromEnv()
allowedDomains = []string{}
defaultTimeout = 15 // in seconds
)
func init() {
@@ -28,6 +31,9 @@ func init() {
if os.Getenv("ALLOWED_DOMAINS_RULESET") == "true" {
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
@@ -181,7 +187,9 @@ func fetchSite(urlpath string, queries map[string]string) (string, *http.Request
}
// Fetch the site
client := &http.Client{}
client := &http.Client{
Timeout: time.Second * time.Duration(defaultTimeout),
}
req, _ := http.NewRequest("GET", url, nil)
if rule.Headers.UserAgent != "" {