Skip to content

Commit 6f9b319

Browse files
committed
Avoid double assign of a.network
1 parent 71071d5 commit 6f9b319

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

agent/agent.go

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -210,13 +210,10 @@ func (a *agent) run(ctx context.Context) error {
210210
a.closeMutex.Unlock()
211211
if network == nil {
212212
a.logger.Debug(ctx, "creating tailnet")
213-
network, err = a.createTailnet(ctx, metadata.DERPMap)
213+
err = a.createTailnet(ctx, metadata.DERPMap)
214214
if err != nil {
215215
return xerrors.Errorf("create tailnet: %w", err)
216216
}
217-
a.closeMutex.Lock()
218-
a.network = network
219-
a.closeMutex.Unlock()
220217
} else {
221218
// Update the DERP map!
222219
network.SetDERPMap(metadata.DERPMap)
@@ -245,9 +242,10 @@ func (a *agent) trackConnGoroutine(fn func()) error {
245242
return nil
246243
}
247244

248-
func (a *agent) createTailnet(ctx context.Context, derpMap *tailcfg.DERPMap) (network *tailnet.Conn, err error) {
245+
func (a *agent) createTailnet(ctx context.Context, derpMap *tailcfg.DERPMap) (err error) {
249246
a.closeMutex.Lock()
250247
if a.isClosed() {
248+
a.network = nil
251249
a.closeMutex.Unlock()
252250
return nil, xerrors.New("closed")
253251
}
@@ -264,6 +262,9 @@ func (a *agent) createTailnet(ctx context.Context, derpMap *tailcfg.DERPMap) (ne
264262
defer func() {
265263
if err != nil {
266264
network.Close()
265+
a.closeMutex.Lock()
266+
a.network = nil
267+
a.closeMutex.Unlock()
267268
}
268269
}()
269270
a.network = network
@@ -287,7 +288,7 @@ func (a *agent) createTailnet(ctx context.Context, derpMap *tailcfg.DERPMap) (ne
287288
go a.sshServer.HandleConn(conn)
288289
}
289290
}); err != nil {
290-
return nil, err
291+
return err
291292
}
292293

293294
reconnectingPTYListener, err := network.Listen("tcp", ":"+strconv.Itoa(codersdk.TailnetReconnectingPTYPort))
@@ -327,7 +328,7 @@ func (a *agent) createTailnet(ctx context.Context, derpMap *tailcfg.DERPMap) (ne
327328
go a.handleReconnectingPTY(ctx, msg, conn)
328329
}
329330
}); err != nil {
330-
return nil, err
331+
return err
331332
}
332333

333334
speedtestListener, err := network.Listen("tcp", ":"+strconv.Itoa(codersdk.TailnetSpeedtestPort))
@@ -355,7 +356,7 @@ func (a *agent) createTailnet(ctx context.Context, derpMap *tailcfg.DERPMap) (ne
355356
}
356357
}
357358
}); err != nil {
358-
return nil, err
359+
return err
359360
}
360361

361362
statisticsListener, err := network.Listen("tcp", ":"+strconv.Itoa(codersdk.TailnetStatisticsPort))
@@ -386,7 +387,7 @@ func (a *agent) createTailnet(ctx context.Context, derpMap *tailcfg.DERPMap) (ne
386387
a.logger.Critical(ctx, "serve statistics HTTP server", slog.Error(err))
387388
}
388389
}); err != nil {
389-
return nil, err
390+
return err
390391
}
391392

392393
return network, nil

0 commit comments

Comments
 (0)