mirror of
https://github.com/tailscale/tailscale.git
synced 2025-04-22 08:51:41 +00:00
tsnet: add Server method to listener
Allow callers to verify that a net.Listener is a tsnet.listener by type asserting against this Server method, as well as providing access to the underlying Server. This is initially being added to support the caddy integration in caddyserver/caddy#5002. Signed-off-by: Will Norris <will@tailscale.com>
This commit is contained in:
parent
a0bae4dac8
commit
3344c3b89b
@ -541,6 +541,9 @@ func (ln *listener) Close() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Server returns the tsnet Server associated with the listener.
|
||||||
|
func (ln *listener) Server() *Server { return ln.s }
|
||||||
|
|
||||||
type addr struct{ ln *listener }
|
type addr struct{ ln *listener }
|
||||||
|
|
||||||
func (a addr) Network() string { return a.ln.key.network }
|
func (a addr) Network() string { return a.ln.key.network }
|
||||||
|
18
tsnet/tsnet_test.go
Normal file
18
tsnet/tsnet_test.go
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
// Copyright (c) 2022 Tailscale Inc & AUTHORS All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package tsnet
|
||||||
|
|
||||||
|
import "testing"
|
||||||
|
|
||||||
|
// TestListener_Server ensures that the listener type always keeps the Server
|
||||||
|
// method, which is used by some external applications to identify a tsnet.Listener
|
||||||
|
// from other net.Listeners, as well as access the underlying Server.
|
||||||
|
func TestListener_Server(t *testing.T) {
|
||||||
|
s := &Server{}
|
||||||
|
ln := listener{s: s}
|
||||||
|
if ln.Server() != s {
|
||||||
|
t.Errorf("listener.Server() returned %v, want %v", ln.Server(), s)
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user