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 {
return nil, err
}
var response *stunV2.Event
var responseError error
var mappedAddr stunV2.XORMappedAddress
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 {
return nil, err
}
if response.Error != nil {
return nil, response.Error
}
var mappedAddr stunV2.XORMappedAddress
if err := mappedAddr.GetFrom(response.Message); err != nil {
return nil, err
if responseError != nil {
return nil, responseError
}
return mappedAddr.IP, nil