1
0
Fork 0
mirror of https://codeberg.org/forgejo/forgejo.git synced 2025-08-06 17:40:57 +00:00

add files

This commit is contained in:
pat-s 2025-06-25 22:33:30 +02:00
parent 7ab27a7a7f
commit faa2dcdfca
No known key found for this signature in database
GPG key ID: 3C6318841EF78925
20 changed files with 1484 additions and 98 deletions

View file

@ -150,26 +150,44 @@ func (r *Request) getResponse() (*http.Response, error) {
return nil, err
}
trans := r.setting.Transport
if trans == nil {
// create default transport
trans = &http.Transport{
TLSClientConfig: r.setting.TLSClientConfig,
Proxy: http.ProxyFromEnvironment,
DialContext: TimeoutDialer(r.setting.ConnectTimeout),
}
} else if t, ok := trans.(*http.Transport); ok {
if t.TLSClientConfig == nil {
t.TLSClientConfig = r.setting.TLSClientConfig
}
if t.DialContext == nil {
t.DialContext = TimeoutDialer(r.setting.ConnectTimeout)
}
}
var client *http.Client
client := &http.Client{
Transport: trans,
Timeout: r.setting.ReadWriteTimeout,
if r.setting.Transport != nil {
// Use custom transport if provided
trans := r.setting.Transport
if t, ok := trans.(*http.Transport); ok {
if t.TLSClientConfig == nil {
t.TLSClientConfig = r.setting.TLSClientConfig
}
if t.DialContext == nil {
t.DialContext = TimeoutDialer(r.setting.ConnectTimeout)
}
}
client = &http.Client{
Transport: trans,
Timeout: r.setting.ReadWriteTimeout,
}
} else {
// Use the HTTP client pool for better connection reuse
poolClient := GetDefaultClient()
// Create a client with custom timeout if needed
if r.setting.ReadWriteTimeout != 0 {
client = &http.Client{
Transport: poolClient.Transport,
Timeout: r.setting.ReadWriteTimeout,
}
} else {
client = poolClient
}
// Apply TLS config if needed
if r.setting.TLSClientConfig != nil {
client = GetGlobalClientPool().GetClientWithTLS("default", r.setting.TLSClientConfig)
if r.setting.ReadWriteTimeout != 0 {
client.Timeout = r.setting.ReadWriteTimeout
}
}
}
if len(r.setting.UserAgent) > 0 && len(r.req.Header.Get("User-Agent")) == 0 {