feat: handler ip in the closure
This commit is contained in:
parent
9bccaac318
commit
41b6e3c7c4
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue