Добавил прокси для Телеграм
This commit is contained in:
@@ -96,6 +96,7 @@ type Telegram struct {
|
||||
Token string `toml:"token"`
|
||||
AllowedUserIDs []int64 `toml:"allowed_user_ids"`
|
||||
WebBaseURL string `toml:"web_base_url"` // для deep-link «открыть в вебе» (опц.)
|
||||
Proxy string `toml:"proxy"` // опц. HTTP-прокси для api.telegram.org
|
||||
}
|
||||
|
||||
// HTTP — параметры веб-сервера.
|
||||
|
||||
@@ -24,7 +24,12 @@ func newHTTPClient(proxy string, timeout time.Duration) (*http.Client, error) {
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("metadata: parse proxy %q: %w", proxy, err)
|
||||
}
|
||||
transport = &http.Transport{Proxy: http.ProxyURL(u)}
|
||||
// Клонируем дефолтный транспорт (dial/TLS-таймауты, keep-alive), а не
|
||||
// собираем голый — иначе при живом-но-залипшем прокси полагались бы
|
||||
// только на общий Client.Timeout. Он остаётся верхней границей запроса.
|
||||
t := http.DefaultTransport.(*http.Transport).Clone()
|
||||
t.Proxy = http.ProxyURL(u)
|
||||
transport = t
|
||||
}
|
||||
return &http.Client{Timeout: timeout, Transport: transport}, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user