summaryrefslogtreecommitdiffstats
path: root/net/dns
diff options
context:
space:
mode:
authorszym@chromium.org <szym@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-24 07:20:37 +0000
committerszym@chromium.org <szym@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-24 07:20:37 +0000
commit01136d3273334fb5736b1f20b734d49e84f43507 (patch)
tree9db9a31f37fc70bd9858e613aca274aa8cc7fde3 /net/dns
parent89b295d8b04b744486649da67cb8f9ab784f858b (diff)
downloadchromium_src-01136d3273334fb5736b1f20b734d49e84f43507.zip
chromium_src-01136d3273334fb5736b1f20b734d49e84f43507.tar.gz
chromium_src-01136d3273334fb5736b1f20b734d49e84f43507.tar.bz2
[net/dns] Don't bind to random ports on Windows to keep the firewall happy.
BUG=107413 TEST=Run with --enable-async-dns on Windows. Experience no firewall warning. Review URL: http://codereview.chromium.org/9836041 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@128713 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/dns')
-rw-r--r--net/dns/dns_transaction.cc10
1 files changed, 9 insertions, 1 deletions
diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc
index 77d1e59..ba13ef5 100644
--- a/net/dns/dns_transaction.cc
+++ b/net/dns/dns_transaction.cc
@@ -389,9 +389,17 @@ class DnsTransactionImpl : public DnsTransaction, public base::NonThreadSafe {
int MakeAttempt() {
unsigned attempt_number = attempts_.size();
+#if defined(OS_WIN)
+ // Avoid the Windows firewall warning about explicit UDP binding.
+ // TODO(szym): Reuse a pool of pre-bound sockets. http://crbug.com/107413
+ DatagramSocket::BindType bind_type = DatagramSocket::DEFAULT_BIND;
+#else
+ DatagramSocket::BindType bind_type = DatagramSocket::RANDOM_BIND;
+#endif
+
scoped_ptr<DatagramClientSocket> socket(
session_->socket_factory()->CreateDatagramClientSocket(
- DatagramSocket::RANDOM_BIND,
+ bind_type,
base::Bind(&base::RandInt),
net_log_.net_log(),
net_log_.source()));