go.crypto/ssh: seed random generator, so auto port allocation is truly random.
R=agl, dave
CC=golang-dev
https://golang.org/cl/12027043
diff --git a/ssh/tcpip.go b/ssh/tcpip.go
index 5abd690..f198554 100644
--- a/ssh/tcpip.go
+++ b/ssh/tcpip.go
@@ -44,6 +44,8 @@
const openSSHPrefix = "OpenSSH_"
+var portRandomizer = rand.New(rand.NewSource(time.Now().UnixNano()))
+
// isBrokenOpenSSHVersion returns true if the given version string
// specifies a version of OpenSSH that is known to have a bug in port
// forwarding.
@@ -71,7 +73,7 @@
const tries = 10
for i := 0; i < tries; i++ {
addr := *laddr
- addr.Port = 1024 + rand.Intn(60000)
+ addr.Port = 1024 + portRandomizer.Intn(60000)
sshListener, err = c.ListenTCP(&addr)
if err == nil {
laddr.Port = addr.Port