mirror of
https://github.com/simon-ding/polaris.git
synced 2026-06-09 03:27:39 +08:00
chore: update
This commit is contained in:
@@ -60,33 +60,30 @@ func (s *NatTraversal) StunAddr() (*stun.XORMappedAddress, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("send binding request: %w", err)
|
return nil, fmt.Errorf("send binding request: %w", err)
|
||||||
}
|
}
|
||||||
select {
|
message, ok := <-s.messageChan
|
||||||
case message, ok := <-s.messageChan:
|
if !ok {
|
||||||
if !ok {
|
continue
|
||||||
|
}
|
||||||
|
if stun.IsMessage(message) {
|
||||||
|
m := new(stun.Message)
|
||||||
|
m.Raw = message
|
||||||
|
decErr := m.Decode()
|
||||||
|
if decErr != nil {
|
||||||
|
log.Warnf("decode:", decErr)
|
||||||
|
|
||||||
|
break
|
||||||
|
}
|
||||||
|
var xorAddr stun.XORMappedAddress
|
||||||
|
if getErr := xorAddr.GetFrom(m); getErr != nil {
|
||||||
|
log.Warnf("getFrom:", getErr)
|
||||||
|
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if stun.IsMessage(message) {
|
if s.stunAddr == nil || s.stunAddr.String() != xorAddr.String() {
|
||||||
m := new(stun.Message)
|
log.Warnf("My public address: %s\n", xorAddr)
|
||||||
m.Raw = message
|
s.stunAddr = &xorAddr
|
||||||
decErr := m.Decode()
|
|
||||||
if decErr != nil {
|
|
||||||
log.Warnf("decode:", decErr)
|
|
||||||
|
|
||||||
break
|
|
||||||
}
|
|
||||||
var xorAddr stun.XORMappedAddress
|
|
||||||
if getErr := xorAddr.GetFrom(m); getErr != nil {
|
|
||||||
log.Warnf("getFrom:", getErr)
|
|
||||||
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
if s.stunAddr == nil || s.stunAddr.String() != xorAddr.String() {
|
|
||||||
log.Warnf("My public address: %s\n", xorAddr)
|
|
||||||
s.stunAddr = &xorAddr
|
|
||||||
}
|
|
||||||
return &xorAddr, nil
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
return &xorAddr, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -110,7 +107,7 @@ func (s *NatTraversal) StartProxy(targetAddr string) error {
|
|||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
case <-s.cancel:
|
case <-s.cancel:
|
||||||
log.Infof("cancelled")
|
log.Infof("stun nat proxy cancelled")
|
||||||
return nil
|
return nil
|
||||||
case m := <-s.messageChan:
|
case m := <-s.messageChan:
|
||||||
//log.Infof("Received message: %d", len(m))
|
//log.Infof("Received message: %d", len(m))
|
||||||
|
|||||||
Reference in New Issue
Block a user