// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef NET_NQE_NETWORK_QUALITY_ESTIMATOR_UTIL_H_
#define NET_NQE_NETWORK_QUALITY_ESTIMATOR_UTIL_H_

#include "net/base/net_export.h"
#include "starboard/types.h"

namespace net {

class HostPortPair;
class HostResolver;

namespace nqe {

namespace internal {

// A unified compact representation of an IPv6 or an IPv4 address.
typedef uint64_t IPHash;

// Returns true if the host contained in |host_port_pair| is a host in a
// private Internet as defined by RFC 1918 or if the requests to
// |host_port_pair| are not expected to generate useful network quality
// information. This includes localhost, hosts on private subnets, and
// hosts on subnets that are reserved for specific usage, and are unlikely
// to be used by public web servers.
// To make this determination, IsPrivateHost() makes the best
// effort estimate including trying to resolve the host in the
// |host_port_pair|. The method is synchronous.
// |host_resolver| must not be null.
NET_EXPORT_PRIVATE bool IsPrivateHost(HostResolver* host_resolver,
                                      const HostPortPair& host_port_pair);

}  // namespace internal

}  // namespace nqe

}  // namespace net

#endif  // NET_NQE_NETWORK_QUALITY_ESTIMATOR_UTIL_H_
