From 41b6e3c7c4c20249a70bceef7a7f60ddef0784a7 Mon Sep 17 00:00:00 2001 From: pengzhen Date: Tue, 10 Dec 2024 17:09:51 +0800 Subject: [PATCH] feat: handler ip in the closure --- p2p/nat/nat_stun.go | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/p2p/nat/nat_stun.go b/p2p/nat/nat_stun.go index 690610a65e..6716d52487 100644 --- a/p2p/nat/nat_stun.go +++ b/p2p/nat/nat_stun.go @@ -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