summaryrefslogtreecommitdiffstats
path: root/net/dns
diff options
context:
space:
mode:
authorvitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-19 06:07:04 +0000
committervitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-19 06:07:04 +0000
commit7604fa226a3bf185c257b4068d0135087a5a2f51 (patch)
tree1c63c00f1455572bdb4faf5e2b01f03cb2208b42 /net/dns
parent7b09d04b19b6eefb7e715ede32fc4692949885a1 (diff)
downloadchromium_src-7604fa226a3bf185c257b4068d0135087a5a2f51.zip
chromium_src-7604fa226a3bf185c257b4068d0135087a5a2f51.tar.gz
chromium_src-7604fa226a3bf185c257b4068d0135087a5a2f51.tar.bz2
Detect privet traffic before starting utility process.
Simple PrivetTrafficDetector listens mDns port for specific sub-string and starts notification only if privet-like traffic detected. This allows to avoid ruining additional process for users without such devices on network. BUG=292754 TBR=jln,jschuh Review URL: https://chromiumcodereview.appspot.com/23702043 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@224052 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/dns')
-rw-r--r--net/dns/mdns_client.cc29
-rw-r--r--net/dns/mdns_client.h3
-rw-r--r--net/dns/mdns_client_impl.cc17
-rw-r--r--net/dns/mdns_client_impl.h2
4 files changed, 34 insertions, 17 deletions
diff --git a/net/dns/mdns_client.cc b/net/dns/mdns_client.cc
index 631b01a..d0273c5 100644
--- a/net/dns/mdns_client.cc
+++ b/net/dns/mdns_client.cc
@@ -4,14 +4,43 @@
#include "net/dns/mdns_client.h"
+#include "net/dns/dns_protocol.h"
#include "net/dns/mdns_client_impl.h"
namespace net {
+namespace {
+
+const char kMDnsMulticastGroupIPv4[] = "224.0.0.251";
+const char kMDnsMulticastGroupIPv6[] = "FF02::FB";
+
+IPEndPoint GetMDnsIPEndPoint(const char* address) {
+ IPAddressNumber multicast_group_number;
+ bool success = ParseIPLiteralToNumber(address,
+ &multicast_group_number);
+ DCHECK(success);
+ return IPEndPoint(multicast_group_number,
+ dns_protocol::kDefaultPortMulticast);
+}
+
+} // namespace
+
// static
scoped_ptr<MDnsClient> MDnsClient::CreateDefault() {
return scoped_ptr<MDnsClient>(
new MDnsClientImpl(MDnsConnection::SocketFactory::CreateDefault()));
}
+IPEndPoint GetMDnsIPEndPoint(AddressFamily address_family) {
+ switch (address_family) {
+ case ADDRESS_FAMILY_IPV4:
+ return GetMDnsIPEndPoint(kMDnsMulticastGroupIPv4);
+ case ADDRESS_FAMILY_IPV6:
+ return GetMDnsIPEndPoint(kMDnsMulticastGroupIPv6);
+ default:
+ NOTREACHED();
+ return IPEndPoint();
+ }
+}
+
} // namespace net
diff --git a/net/dns/mdns_client.h b/net/dns/mdns_client.h
index f12c6e2..71006d6 100644
--- a/net/dns/mdns_client.h
+++ b/net/dns/mdns_client.h
@@ -9,6 +9,7 @@
#include <vector>
#include "base/callback.h"
+#include "net/base/ip_endpoint.h"
#include "net/dns/dns_query.h"
#include "net/dns/dns_response.h"
#include "net/dns/record_parsed.h"
@@ -154,5 +155,7 @@ class NET_EXPORT MDnsClient {
static scoped_ptr<MDnsClient> CreateDefault();
};
+IPEndPoint NET_EXPORT GetMDnsIPEndPoint(AddressFamily address_family);
+
} // namespace net
#endif // NET_DNS_MDNS_CLIENT_H_
diff --git a/net/dns/mdns_client_impl.cc b/net/dns/mdns_client_impl.cc
index d8e5e9b..4a30468 100644
--- a/net/dns/mdns_client_impl.cc
+++ b/net/dns/mdns_client_impl.cc
@@ -24,8 +24,6 @@
namespace net {
namespace {
-const char kMDnsMulticastGroupIPv4[] = "224.0.0.251";
-const char kMDnsMulticastGroupIPv6[] = "FF02::FB";
const unsigned MDnsTransactionTimeoutSeconds = 3;
}
@@ -99,11 +97,9 @@ int MDnsConnection::SocketHandler::Bind() {
MDnsConnection::MDnsConnection(MDnsConnection::SocketFactory* socket_factory,
MDnsConnection::Delegate* delegate)
- : socket_handler_ipv4_(this,
- GetMDnsIPEndPoint(kMDnsMulticastGroupIPv4),
+ : socket_handler_ipv4_(this, GetMDnsIPEndPoint(ADDRESS_FAMILY_IPV4),
socket_factory),
- socket_handler_ipv6_(this,
- GetMDnsIPEndPoint(kMDnsMulticastGroupIPv6),
+ socket_handler_ipv6_(this, GetMDnsIPEndPoint(ADDRESS_FAMILY_IPV6),
socket_factory),
delegate_(delegate) {
}
@@ -146,15 +142,6 @@ void MDnsConnection::OnError(SocketHandler* loop,
delegate_->OnConnectionError(error);
}
-IPEndPoint MDnsConnection::GetMDnsIPEndPoint(const char* address) {
- IPAddressNumber multicast_group_number;
- bool success = ParseIPLiteralToNumber(address,
- &multicast_group_number);
- DCHECK(success);
- return IPEndPoint(multicast_group_number,
- dns_protocol::kDefaultPortMulticast);
-}
-
void MDnsConnection::OnDatagramReceived(
DnsResponse* response,
const IPEndPoint& recv_addr,
diff --git a/net/dns/mdns_client_impl.h b/net/dns/mdns_client_impl.h
index 86a7ba9..cbb9f6d 100644
--- a/net/dns/mdns_client_impl.h
+++ b/net/dns/mdns_client_impl.h
@@ -85,8 +85,6 @@ class NET_EXPORT_PRIVATE MDnsConnection {
void OnError(SocketHandler* loop, int error);
- IPEndPoint GetMDnsIPEndPoint(const char* address);
-
SocketHandler socket_handler_ipv4_;
SocketHandler socket_handler_ipv6_;