Skip to content

Commit 0d25eb7

Browse files
committed
Fix missing RootPoolFromContext and TimeFuncFromContext in HTTP clients
1 parent 9ae045e commit 0d25eb7

File tree

4 files changed

+20
-0
lines changed

4 files changed

+20
-0
lines changed

protocol/tailscale/endpoint.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ import (
4141
"github.com/sagernet/sing/common/logger"
4242
M "github.com/sagernet/sing/common/metadata"
4343
N "github.com/sagernet/sing/common/network"
44+
"github.com/sagernet/sing/common/ntp"
4445
"github.com/sagernet/sing/service"
4546
"github.com/sagernet/sing/service/filemanager"
4647
"github.com/sagernet/tailscale/ipn"
@@ -176,6 +177,7 @@ func NewEndpoint(ctx context.Context, router adapter.Router, logger log.ContextL
176177
},
177178
TLSClientConfig: &tls.Config{
178179
RootCAs: adapter.RootPoolFromContext(ctx),
180+
Time: ntp.TimeFuncFromContext(ctx),
179181
},
180182
},
181183
},

service/ccm/service.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package ccm
33
import (
44
"bytes"
55
"context"
6+
stdTLS "crypto/tls"
67
"encoding/json"
78
"errors"
89
"io"
@@ -26,6 +27,7 @@ import (
2627
E "github.com/sagernet/sing/common/exceptions"
2728
M "github.com/sagernet/sing/common/metadata"
2829
N "github.com/sagernet/sing/common/network"
30+
"github.com/sagernet/sing/common/ntp"
2931
aTLS "github.com/sagernet/sing/common/tls"
3032

3133
"github.com/anthropics/anthropic-sdk-go"
@@ -111,6 +113,10 @@ func NewService(ctx context.Context, logger log.ContextLogger, tag string, optio
111113
httpClient := &http.Client{
112114
Transport: &http.Transport{
113115
ForceAttemptHTTP2: true,
116+
TLSClientConfig: &stdTLS.Config{
117+
RootCAs: adapter.RootPoolFromContext(ctx),
118+
Time: ntp.TimeFuncFromContext(ctx),
119+
},
114120
DialContext: func(ctx context.Context, network, addr string) (net.Conn, error) {
115121
return serviceDialer.DialContext(ctx, network, M.ParseSocksaddr(addr))
116122
},

service/derp/service.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package derp
33
import (
44
"bufio"
55
"context"
6+
stdTLS "crypto/tls"
67
"encoding/json"
78
"fmt"
89
"io"
@@ -31,6 +32,7 @@ import (
3132
"github.com/sagernet/sing/common/logger"
3233
M "github.com/sagernet/sing/common/metadata"
3334
N "github.com/sagernet/sing/common/network"
35+
"github.com/sagernet/sing/common/ntp"
3436
aTLS "github.com/sagernet/sing/common/tls"
3537
"github.com/sagernet/sing/service"
3638
"github.com/sagernet/sing/service/filemanager"
@@ -159,6 +161,10 @@ func (d *Service) Start(stage adapter.StartStage) error {
159161
httpClients = append(httpClients, &http.Client{
160162
Transport: &http.Transport{
161163
ForceAttemptHTTP2: true,
164+
TLSClientConfig: &stdTLS.Config{
165+
RootCAs: adapter.RootPoolFromContext(d.ctx),
166+
Time: ntp.TimeFuncFromContext(d.ctx),
167+
},
162168
DialContext: func(ctx context.Context, network, addr string) (net.Conn, error) {
163169
return verifyDialer.DialContext(ctx, network, M.ParseSocksaddr(addr))
164170
},

service/ocm/service.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package ocm
33
import (
44
"bytes"
55
"context"
6+
stdTLS "crypto/tls"
67
"encoding/json"
78
"errors"
89
"io"
@@ -26,6 +27,7 @@ import (
2627
E "github.com/sagernet/sing/common/exceptions"
2728
M "github.com/sagernet/sing/common/metadata"
2829
N "github.com/sagernet/sing/common/network"
30+
"github.com/sagernet/sing/common/ntp"
2931
aTLS "github.com/sagernet/sing/common/tls"
3032

3133
"github.com/go-chi/chi/v5"
@@ -103,6 +105,10 @@ func NewService(ctx context.Context, logger log.ContextLogger, tag string, optio
103105
httpClient := &http.Client{
104106
Transport: &http.Transport{
105107
ForceAttemptHTTP2: true,
108+
TLSClientConfig: &stdTLS.Config{
109+
RootCAs: adapter.RootPoolFromContext(ctx),
110+
Time: ntp.TimeFuncFromContext(ctx),
111+
},
106112
DialContext: func(ctx context.Context, network, addr string) (net.Conn, error) {
107113
return serviceDialer.DialContext(ctx, network, M.ParseSocksaddr(addr))
108114
},

0 commit comments

Comments
 (0)