Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 1ac2bae

Browse files
committed
review
1 parent 26561dd commit 1ac2bae

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

vpn/dylib/lib.go

+1
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ func OpenTunnel(cReadFD, cWriteFD int32) int32 {
4949
_, err = vpn.NewTunnel(ctx, slog.Make(), conn, vpn.NewClient(),
5050
vpn.UseAsDNSConfig(),
5151
vpn.UseAsRouter(),
52+
vpn.UseAsLogger(),
5253
)
5354
if err != nil {
5455
unix.Close(readFD)

vpn/tunnel.go

+8-4
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ type Tunnel struct {
3535
client Client
3636
conn Conn
3737

38+
// clientLogger is deliberately separate, to avoid the tunnel using itself
39+
// as a sink for it's own logs, which could lead to deadlocks
40+
clientLogger slog.Logger
3841
// router and dnsConfigurator may be nil
3942
router router.Router
4043
dnsConfigurator dns.OSConfigurator
@@ -60,6 +63,7 @@ func NewTunnel(
6063
speaker: *(s),
6164
ctx: ctx,
6265
logger: logger,
66+
clientLogger: slog.Make(),
6367
requestLoopDone: make(chan struct{}),
6468
client: client,
6569
}
@@ -161,7 +165,7 @@ func UseAsRouter() TunnelOption {
161165

162166
func UseAsLogger() TunnelOption {
163167
return func(t *Tunnel) {
164-
t.logger = t.logger.AppendSinks(t)
168+
t.clientLogger = t.clientLogger.AppendSinks(t)
165169
}
166170
}
167171

@@ -227,7 +231,7 @@ func (t *Tunnel) start(req *StartRequest) error {
227231
apiToken,
228232
&Options{
229233
Headers: header,
230-
Logger: t.logger,
234+
Logger: t.clientLogger,
231235
DNSConfigurator: t.dnsConfigurator,
232236
Router: t.router,
233237
TUNFileDescriptor: ptr.Ref(int(req.GetTunnelFileDescriptor())),
@@ -305,7 +309,7 @@ func convertWorkspaceUpdate(update tailnet.WorkspaceUpdate) *PeerUpdate {
305309
for i, agent := range update.UpsertedAgents {
306310
fqdn := make([]string, 0, len(agent.Hosts))
307311
for name := range agent.Hosts {
308-
fqdn = append(fqdn, name.WithoutTrailingDot())
312+
fqdn = append(fqdn, name.WithTrailingDot())
309313
}
310314
out.UpsertedAgents[i] = &Agent{
311315
Id: tailnet.UUIDToByteSlice(agent.ID),
@@ -327,7 +331,7 @@ func convertWorkspaceUpdate(update tailnet.WorkspaceUpdate) *PeerUpdate {
327331
for i, agent := range update.DeletedAgents {
328332
fqdn := make([]string, 0, len(agent.Hosts))
329333
for name := range agent.Hosts {
330-
fqdn = append(fqdn, name.WithoutTrailingDot())
334+
fqdn = append(fqdn, name.WithTrailingDot())
331335
}
332336
out.DeletedAgents[i] = &Agent{
333337
Id: tailnet.UUIDToByteSlice(agent.ID),

0 commit comments

Comments
 (0)