diff --git a/discover/v5_udp.go b/discover/v5_udp.go index d4e6a2e..dea1293 100644 --- a/discover/v5_udp.go +++ b/discover/v5_udp.go @@ -29,12 +29,13 @@ import ( "sync" "time" + "github.com/waku-org/go-discover/discover/v5wire" + "github.com/ethereum/go-ethereum/common/mclock" "github.com/ethereum/go-ethereum/log" "github.com/ethereum/go-ethereum/p2p/enode" "github.com/ethereum/go-ethereum/p2p/enr" "github.com/ethereum/go-ethereum/p2p/netutil" - "github.com/waku-org/go-discover/discover/v5wire" ) const ( @@ -846,6 +847,17 @@ func packNodes(reqid []byte, nodes []*enode.Node) []*v5wire.Nodes { return resp } +func (t *UDPv5) SetFallbackNodes(nodes []*enode.Node) error { + err := t.tab.setFallbackNodes(nodes) + if err != nil { + return err + } + refreshDone := make(chan struct{}) + t.tab.doRefresh(refreshDone) + <-refreshDone + return nil +} + // handleTalkRequest runs the talk request handler of the requested protocol. func (t *UDPv5) handleTalkRequest(p *v5wire.TalkRequest, fromID enode.ID, fromAddr *net.UDPAddr) { t.trlock.Lock()