+func (s *pexConnState) updateRemoteLiveConns(rx pp.PexMsg) (errs []error) {
+ for _, dropped := range rx.Dropped {
+ addrPort, _ := ipv4AddrPortFromKrpcNodeAddr(dropped)
+ delete(s.remoteLiveConns, addrPort)
+ }
+ for _, dropped := range rx.Dropped6 {
+ addrPort, _ := ipv6AddrPortFromKrpcNodeAddr(dropped)
+ delete(s.remoteLiveConns, addrPort)
+ }
+ for i, added := range rx.Added {
+ addr := netip.AddrFrom4(*(*[4]byte)(added.IP.To4()))
+ addrPort := netip.AddrPortFrom(addr, uint16(added.Port))
+ flags := g.SliceGet(rx.AddedFlags, i)
+ g.MakeMapIfNilAndSet(&s.remoteLiveConns, addrPort, flags)
+ }
+ for i, added := range rx.Added6 {
+ addr := netip.AddrFrom16(*(*[16]byte)(added.IP.To16()))
+ addrPort := netip.AddrPortFrom(addr, uint16(added.Port))
+ flags := g.SliceGet(rx.Added6Flags, i)
+ g.MakeMapIfNilAndSet(&s.remoteLiveConns, addrPort, flags)
+ }
+ return
+}
+