From: Russ Cox Date: Thu, 11 Feb 2010 00:35:35 +0000 (-0800) Subject: net: use slightly less predictable dns request id X-Git-Tag: weekly.2010-02-17~38 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=c312d0e0cacb419a414578a7eb3fb56ceb3964e3;p=gostls13.git net: use slightly less predictable dns request id not trying to be secure, just not repetitive (sending with the same id repeatedly makes some resolvers stop replying.) eventually we'll replace this with linking against the system's native resolver. R=p CC=golang-dev https://golang.org/cl/207051 --- diff --git a/src/pkg/net/dnsclient.go b/src/pkg/net/dnsclient.go index 7820244b28..0a6fca0115 100644 --- a/src/pkg/net/dnsclient.go +++ b/src/pkg/net/dnsclient.go @@ -17,6 +17,8 @@ package net import ( "once" "os" + "rand" + "time" ) // DNSError represents a DNS lookup error. @@ -44,7 +46,7 @@ func _Exchange(cfg *_DNS_Config, c Conn, name string) (m *_DNS_Msg, err os.Error return nil, &DNSError{"name too long", name, ""} } out := new(_DNS_Msg) - out.id = 0x1234 + out.id = uint16(rand.Int()) ^ uint16(time.Nanoseconds()) out.question = []_DNS_Question{ _DNS_Question{name, _DNS_TypeA, _DNS_ClassINET}, }