- t.logger.Printf("got holepunch connect from %v for %v", sender, msg.AddrPort)
- rz, ok := t.utHolepunchRendezvous[msg.AddrPort]
- if ok {
- delete(rz.relays, sender)
- rz.gotConnect.Set()
- rz.relayCond.Broadcast()
- } else {
- // If the rendezvous was removed because we timed out or already got a connect signal,
- // it doesn't hurt to try again.
- t.initiateConn(PeerInfo{
- Addr: msg.AddrPort,
- Source: PeerSourceUtHolepunch,
- }, false, true, true, true)
+ holepunchAddr := msg.AddrPort
+ t.logger.Printf("got holepunch connect request for %v from %p", holepunchAddr, sender)
+ if g.MapContains(t.cl.undialableWithoutHolepunch, holepunchAddr) {
+ setAdd(&t.cl.undialableWithoutHolepunchDialedAfterHolepunchConnect, holepunchAddr)
+ if g.MapContains(t.cl.accepted, holepunchAddr) {
+ setAdd(&t.cl.probablyOnlyConnectedDueToHolepunch, holepunchAddr)
+ }