diff options
author | Russ Cox <rsc@golang.org> | 2010-02-10 16:35:35 -0800 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2010-02-10 16:35:35 -0800 |
commit | c312d0e0cacb419a414578a7eb3fb56ceb3964e3 (patch) | |
tree | eeadebea6b2c1356b4140d80b4c26f54f51f7645 | |
parent | 66cdc699b28c44a448a6a502b0ee69c9a942f959 (diff) | |
download | go-c312d0e0cacb419a414578a7eb3fb56ceb3964e3.tar.gz go-c312d0e0cacb419a414578a7eb3fb56ceb3964e3.zip |
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
-rw-r--r-- | src/pkg/net/dnsclient.go | 4 |
1 files changed, 3 insertions, 1 deletions
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}, } |