func setupExternalPort(igd *upnp.IGD, port int) int { // We seed the random number generator with the device ID to get a // repeatable sequence of random external ports. rnd := rand.NewSource(certSeed(cert.Certificate[0])) for i := 0; i < 10; i++ { r := 1024 + int(rnd.Int63()%(65535-1024)) err := igd.AddPortMapping(upnp.TCP, r, port, "syncthing", cfg.Options().UPnPLease*60) if err == nil { return r } } return 0 }
func setupExternalPort(igd *upnp.IGD, port int) int { if igd == nil { return 0 } for i := 0; i < 10; i++ { r := 1024 + predictableRandom.Intn(65535-1024) err := igd.AddPortMapping(upnp.TCP, r, port, fmt.Sprintf("syncthing-%d", r), cfg.Options().UPnPLease*60) if err == nil { return r } } return 0 }