feat(nathole): use serverUDPPort in nathole discovery when available (#3382)

This commit is contained in:
fatedier
2023-03-30 21:49:12 +08:00
committed by GitHub
parent a22d6c9504
commit 3faae194d0
3 changed files with 153 additions and 99 deletions

View File

@@ -16,8 +16,11 @@ package nathole
import (
"bytes"
"net"
"strconv"
"github.com/fatedier/golib/crypto"
"github.com/pion/stun"
"github.com/fatedier/frp/pkg/msg"
)
@@ -46,3 +49,17 @@ func DecodeMessageInto(data, key []byte, m msg.Message) error {
}
return nil
}
type ChangedAddress struct {
IP net.IP
Port int
}
func (s *ChangedAddress) GetFrom(m *stun.Message) error {
a := (*stun.MappedAddress)(s)
return a.GetFromAs(m, stun.AttrChangedAddress)
}
func (s *ChangedAddress) String() string {
return net.JoinHostPort(s.IP.String(), strconv.Itoa(s.Port))
}