cmd/tailscale/cli,ipn,all: make peer relay server port a *uint16
In preparation for exposing its configuration via ipn.ConfigVAlpha,
change {Masked}Prefs.RelayServerPort from *int to *uint16. This takes a
defensive stance against invalid inputs at JSON decode time.
'tailscale set --relay-server-port' is currently the only input to this
pref, and has always sanitized input to fit within a uint16.
Updates tailscale/corp#34591
Signed-off-by: Jordan Whited <jordan@tailscale.com>
This commit is contained in:
committed by
Jordan Whited
parent
53476ce872
commit
824027305a
@@ -309,7 +309,7 @@ func (e *serverEndpoint) isBound() bool {
|
||||
// onlyStaticAddrPorts is true, then dynamic addr:port discovery will be
|
||||
// disabled, and only addr:port's set via [Server.SetStaticAddrPorts] will be
|
||||
// used.
|
||||
func NewServer(logf logger.Logf, port int, onlyStaticAddrPorts bool) (s *Server, err error) {
|
||||
func NewServer(logf logger.Logf, port uint16, onlyStaticAddrPorts bool) (s *Server, err error) {
|
||||
s = &Server{
|
||||
logf: logf,
|
||||
disco: key.NewDisco(),
|
||||
@@ -526,9 +526,9 @@ func trySetUDPSocketOptions(pconn nettype.PacketConn, logf logger.Logf) {
|
||||
// [magicsock.RebindingConn], which would also remove the need for
|
||||
// [singlePacketConn], as [magicsock.RebindingConn] also handles fallback to
|
||||
// single packet syscall operations.
|
||||
func (s *Server) listenOn(port int) error {
|
||||
func (s *Server) listenOn(port uint16) error {
|
||||
for _, network := range []string{"udp4", "udp6"} {
|
||||
uc, err := net.ListenUDP(network, &net.UDPAddr{Port: port})
|
||||
uc, err := net.ListenUDP(network, &net.UDPAddr{Port: int(port)})
|
||||
if err != nil {
|
||||
if network == "udp4" {
|
||||
return err
|
||||
|
||||
@@ -14,8 +14,9 @@ import (
|
||||
type ServerStatus struct {
|
||||
// UDPPort is the UDP port number that the peer relay server forwards over,
|
||||
// as configured by the user with 'tailscale set --relay-server-port=<PORT>'.
|
||||
// If the port has not been configured, UDPPort will be nil.
|
||||
UDPPort *int
|
||||
// If the port has not been configured, UDPPort will be nil. A non-nil zero
|
||||
// value signifies the user has opted for a random unused port.
|
||||
UDPPort *uint16
|
||||
// Sessions is a slice of detailed status information about each peer
|
||||
// relay session that this node's peer relay server is involved with. It
|
||||
// may be empty.
|
||||
|
||||
Reference in New Issue
Block a user