diff options
author | vitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-19 06:07:04 +0000 |
---|---|---|
committer | vitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-19 06:07:04 +0000 |
commit | 7604fa226a3bf185c257b4068d0135087a5a2f51 (patch) | |
tree | 1c63c00f1455572bdb4faf5e2b01f03cb2208b42 /net/dns | |
parent | 7b09d04b19b6eefb7e715ede32fc4692949885a1 (diff) | |
download | chromium_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.cc | 29 | ||||
-rw-r--r-- | net/dns/mdns_client.h | 3 | ||||
-rw-r--r-- | net/dns/mdns_client_impl.cc | 17 | ||||
-rw-r--r-- | net/dns/mdns_client_impl.h | 2 |
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_; |