feat: handler ip in the closure

This commit is contained in:
pengzhen 2024-12-10 17:09:51 +08:00 committed by fearlessfe
parent 9bccaac318
commit 41b6e3c7c4
1 changed files with 12 additions and 9 deletions

View File

@ -71,20 +71,23 @@ func (s stun) ExternalIP() (net.IP, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
var response *stunV2.Event
var responseError error
var mappedAddr stunV2.XORMappedAddress
err = conn.Do(message, func(event stunV2.Event) { err = conn.Do(message, func(event stunV2.Event) {
response = &event if event.Error != nil {
responseError = event.Error
return
}
if err := mappedAddr.GetFrom(event.Message); err != nil {
responseError = err
}
}) })
if err != nil { if err != nil {
return nil, err return nil, err
} }
if response.Error != nil { if responseError != nil {
return nil, response.Error return nil, responseError
}
var mappedAddr stunV2.XORMappedAddress
if err := mappedAddr.GetFrom(response.Message); err != nil {
return nil, err
} }
return mappedAddr.IP, nil return mappedAddr.IP, nil